package com.nq.controller;
|
|
import com.nq.common.ServerResponse;
|
import com.nq.service.IStockAiService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.ReentrantLock;
|
|
@Controller
|
@RequestMapping({"/api/lnk/"})
|
public class StockInkApiController {
|
|
@Autowired
|
IStockAiService stockAiService;
|
|
private static final ThreadLocal<Boolean> buyOrderCreated = ThreadLocal.withInitial(() -> false);
|
private final Lock buyLock = new ReentrantLock();
|
|
/**
|
* 获取ai交易产品列表
|
* @return
|
*/
|
@RequestMapping("getStockAiList.do")
|
@ResponseBody
|
public ServerResponse getStockAiList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
|
@RequestParam(value = "pageSize", defaultValue = "5") int pageSize) {
|
return stockAiService.getStockAiList(pageNum, pageSize);
|
}
|
|
/**
|
* ai量化交易购买
|
* @param id
|
* @param buyNum 买入金额
|
* @return
|
*/
|
@RequestMapping("buyStockAi.do")
|
@ResponseBody
|
public ServerResponse buyStockAi(@RequestParam(value = "id") Long id,
|
@RequestParam(value = "buyNum") BigDecimal buyNum, HttpServletRequest request) {
|
if (buyNum.compareTo(BigDecimal.ZERO) <= 0) {
|
return ServerResponse.createByErrorMsg("购买金额不能小于0");
|
}
|
buyLock.lock();
|
try {
|
if (buyOrderCreated.get()) {
|
return ServerResponse.createByErrorMsg("当前下单人数过多,请稍后重试");
|
}
|
buyOrderCreated.set(true);
|
return stockAiService.buyStockAi(id, buyNum, request);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return ServerResponse.createByErrorMsg("订单异常,请稍后重试");
|
} finally{
|
buyLock.unlock();
|
buyOrderCreated.set(false);
|
}
|
}
|
|
/**
|
* 获取ai交易产品订单列表
|
* @return
|
*/
|
@RequestMapping("getStockAiOrderList.do")
|
@ResponseBody
|
public ServerResponse getStockAiOrderList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
|
@RequestParam(value = "pageSize", defaultValue = "5") int pageSize,
|
@RequestParam(value = "status") String status,
|
HttpServletRequest request) {
|
return stockAiService.getStockAiOrderList(pageNum, pageSize, status ,request);
|
}
|
}
|