| | |
| | | |
| | | import com.google.common.collect.Maps; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.enums.EStockType; |
| | | import com.nq.pojo.ApplyLever; |
| | | import com.nq.pojo.StockSubscribe; |
| | | import com.nq.pojo.UserStockSubscribe; |
| | | import com.nq.service.*; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Map; |
| | | import java.util.concurrent.locks.Lock; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpSession; |
| | | |
| | | import com.nq.vo.stock.UserStockSubscribeAddIn; |
| | | import org.apache.ibatis.annotations.Property; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | @Autowired |
| | | UserPendingorderService userPendingorderService; |
| | | |
| | | @Autowired |
| | | IRateServices rateServices; |
| | | |
| | | @Autowired |
| | | IUserRechargeService iUserRechargeService; |
| | | |
| | | |
| | | |
| | | @Autowired |
| | | IApplyLeverServices iApplyLeverServices; |
| | | |
| | | private static final ThreadLocal<Boolean> orderCreated = ThreadLocal.withInitial(() -> false); |
| | | private final Lock lock = new ReentrantLock(); |
| | | |
| | | private static final ThreadLocal<Boolean> buyOrderCreated = ThreadLocal.withInitial(() -> false); |
| | | private final Lock buyLock = new ReentrantLock(); |
| | | |
| | | //添加到自选股 |
| | | @RequestMapping({"addOption.do"}) |
| | | @ResponseBody |
| | |
| | | @RequestMapping({"queryMyOption.do"}) |
| | | @ResponseBody |
| | | public ServerResponse queryMyOption(@RequestParam("code") String code, HttpServletRequest request) { |
| | | // return this.iUserService.queryMyOption(code, request); |
| | | |
| | | return null; |
| | | return this.iUserService.queryMyOption(code, request); |
| | | } |
| | | |
| | | //用户下单买入股票 |
| | |
| | | @RequestParam("buyType") Integer buyType, |
| | | @RequestParam("lever") Integer lever, |
| | | @RequestParam(value = "profitTarget",required = false) |
| | | BigDecimal profitTarget,@RequestParam(value = "stopTarget",required = false) BigDecimal stopTarget, HttpServletRequest request) { |
| | | ServerResponse serverResponse = null; |
| | | BigDecimal profitTarget,@RequestParam(value = "stopLoss",required = false) BigDecimal stopLoss, HttpServletRequest request) { |
| | | buyLock.lock(); |
| | | try { |
| | | serverResponse = this.iUserPositionService.buy(stockId, buyNum, buyType, lever,profitTarget,stopTarget, request); |
| | | if (buyOrderCreated.get()) { |
| | | return ServerResponse.createByErrorMsg("当前下单人数过多,请稍后重试", request); |
| | | } |
| | | buyOrderCreated.set(true); |
| | | return this.iUserPositionService.buy(stockId, buyNum, buyType, lever,profitTarget,stopLoss, request); |
| | | } catch (Exception e) { |
| | | log.error("用户下单操作 = {}", e); |
| | | e.printStackTrace(); |
| | | return ServerResponse.createByErrorMsg("订单异常,请稍后重试", request); |
| | | } finally{ |
| | | buyLock.unlock(); |
| | | buyOrderCreated.set(false); |
| | | } |
| | | return serverResponse; |
| | | } |
| | | //修改涨跌板 |
| | | @RequestMapping({"updateProfitTarget.do"}) |
| | |
| | | //用户平仓操作 |
| | | @RequestMapping({"sell.do"}) |
| | | @ResponseBody |
| | | public ServerResponse sell(HttpServletRequest request, @RequestParam("positionSn") String positionSn) { |
| | | try { |
| | | return this.iUserPositionService.sell(positionSn, 1); |
| | | } catch (Exception e) { |
| | | return ServerResponse.createByErrorMsg("Sell Fail"); |
| | | } |
| | | public ServerResponse sell(HttpServletRequest request, @RequestParam("positionSn") String positionSn,@RequestParam("number") Integer number) { |
| | | return this.iUserPositionService.sell(positionSn,1,number,request); |
| | | } |
| | | |
| | | |
| | | //用户平仓操作 |
| | | //一键用户平仓操作 |
| | | @RequestMapping({"allsell.do"}) |
| | | @ResponseBody |
| | | public ServerResponse allsell(@RequestParam("stockType") String positionSn,HttpServletRequest request) { |
| | | try { |
| | | return this.iUserPositionService.allSell(request,positionSn); |
| | | } catch (Exception e) { |
| | | return ServerResponse.createByErrorMsg("Sell Fail"); |
| | | return ServerResponse.createByErrorMsg("Sell Fail",request); |
| | | } |
| | | } |
| | | |
| | |
| | | return serverResponse; |
| | | } |
| | | |
| | | @RequestMapping({"buyIndex.do"}) |
| | | @ResponseBody |
| | | public ServerResponse buyIndex(@RequestParam("indexId") Integer indexId, @RequestParam("buyNum") Integer buyNum, @RequestParam("buyType") Integer buyType, @RequestParam("lever") Integer lever,@RequestParam(value = "profitTarget",required = false) BigDecimal profitTarget,@RequestParam(value = "stopTarget",required = false) BigDecimal stopTarget, HttpServletRequest request) { |
| | | ServerResponse serverResponse = null; |
| | | try { |
| | | serverResponse = this.iUserIndexPositionService.buyIndex(indexId, buyNum, buyType, lever,profitTarget,stopTarget, request); |
| | | } catch (Exception e) { |
| | | log.error("用户下单指数操作 = {}", e); |
| | | } |
| | | return serverResponse; |
| | | } |
| | | |
| | | @RequestMapping({"sellIndex.do"}) |
| | | @ResponseBody |
| | | public ServerResponse sellIndex(HttpServletRequest request, @RequestParam("positionSn") String positionSn) { |
| | | ServerResponse serverResponse = null; |
| | | try { |
| | | serverResponse = this.iUserIndexPositionService.sellIndex(positionSn, 1); |
| | | } catch (Exception e) { |
| | | log.error("用户平仓指数操作 = {}", e); |
| | | } |
| | | return serverResponse; |
| | | } |
| | | |
| | | //期货交易 用户下单 |
| | | @RequestMapping({"buyFutures.do"}) |
| | | @ResponseBody |
| | | public ServerResponse buyFutures(@RequestParam("FuturesId") Integer FuturesId, @RequestParam("buyNum") Integer buyNum, @RequestParam("buyType") Integer buyType, @RequestParam("lever") Integer lever, HttpServletRequest request) { |
| | | ServerResponse serverResponse = null; |
| | | try { |
| | | serverResponse = this.iUserFuturesPositionService.buyFutures(FuturesId, buyNum, buyType, lever, request); |
| | | } catch (Exception e) { |
| | | log.error("用户下单 期货 操作 = {}", e); |
| | | } |
| | | return serverResponse; |
| | | } |
| | | |
| | | @RequestMapping({"sellFutures.do"}) |
| | | @ResponseBody |
| | | public ServerResponse sellFutures(HttpServletRequest request, @RequestParam("positionSn") String positionSn) { |
| | | ServerResponse serverResponse = null; |
| | | try { |
| | | serverResponse = this.iUserFuturesPositionService.sellFutures(positionSn, 1); |
| | | } catch (Exception e) { |
| | | log.error("用户平仓 期货 操作 = {}", e); |
| | | } |
| | | return serverResponse; |
| | | } |
| | | |
| | | @Autowired |
| | | IUserRechargeService iUserRechargeService; |
| | | |
| | | |
| | | //查询 用户信息 |
| | | @RequestMapping({"getUserInfo.do"}) |
| | |
| | | return serverResponse; |
| | | } |
| | | |
| | | //资产互转 |
| | | @RequestMapping({"transAmt.do"}) |
| | | @ResponseBody |
| | | public ServerResponse transAmt(@RequestParam("amt") Integer amt, @RequestParam("type") Integer type, HttpServletRequest request) { |
| | | return this.iUserService.transAmt(amt, type, request); |
| | | } |
| | | |
| | | /** |
| | | * 用户新股列表 |
| | | * @param pageNum |
| | | * @param pageSize |
| | | * @param name |
| | | * @param code |
| | | * @param zt |
| | |
| | | */ |
| | | @RequestMapping({"list.do"}) |
| | | @ResponseBody |
| | | public ServerResponse list(@RequestParam(value = "name", required = false) String name,@RequestParam(value = "code", required = false) String code,@RequestParam(value = "zt", required = false) Integer zt,@RequestParam(value = "isLock", required = false) Integer isLock,@RequestParam(value = "type", required = false) Integer type, HttpServletRequest request) { |
| | | return this.iStockSubscribeService.list(name,code,zt,isLock,type,request); |
| | | public ServerResponse list(@RequestParam(value = "name", required = false) String name, |
| | | @RequestParam(value = "code", required = false) String code, |
| | | @RequestParam(value = "zt", required = false) Integer zt, |
| | | @RequestParam(value = "isLock", required = false) Integer isLock, |
| | | @RequestParam(value = "type", required = false) Integer type, |
| | | @RequestParam(value = "getType", required = false) Integer getType, |
| | | HttpServletRequest request) { |
| | | return this.iStockSubscribeService.list(name,code,zt,getType,isLock,type,null,0,request); |
| | | } |
| | | /** |
| | | * 新股申购 添加 |
| | |
| | | */ |
| | | @RequestMapping({"add.do"}) |
| | | @ResponseBody |
| | | public ServerResponse add(UserStockSubscribe model,HttpServletRequest request) throws Exception { |
| | | public ServerResponse add(UserStockSubscribeAddIn model, HttpServletRequest request) throws Exception { |
| | | return this.iUserStockSubscribeService.insert(model,request); |
| | | } |
| | | /*新股申购-用户新股申购数据*/ |
| | |
| | | return this.iUserStockSubscribeService.userSubmit(id,request); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * vip抢筹 (涨停板买入) |
| | | * |
| | | */ |
| | | @RequestMapping({"transfer.do"}) |
| | | @ResponseBody |
| | | public ServerResponse transfer(@RequestParam("fromType") String fromType, @RequestParam("toType") String toType, |
| | | @RequestParam("amt") String amt, HttpServletRequest request) { |
| | | ServerResponse serverResponse = null; |
| | | try { |
| | | serverResponse = this.iUserService.transfer(fromType, toType, amt,request); |
| | | } catch (Exception e) { |
| | | log.error("vip抢筹下单操作出错 = {}", e); |
| | | } |
| | | return serverResponse; |
| | | return iUserService.transfer(fromType, toType, amt,request); |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | @RequestMapping({"buyStockDz.do"}) |
| | | @ResponseBody |
| | | public ServerResponse buyDz(@RequestParam("stockCode") String stockCode, @RequestParam("password") String password,@RequestParam("num") Integer num, HttpServletRequest request) throws Exception { |
| | | return this.iUserPositionService.buyDz(stockCode, password, num, request); |
| | | public ServerResponse buyDz(@RequestParam("dzId") Integer dzId, @RequestParam("password") String password,@RequestParam("num") Integer num, HttpServletRequest request) throws Exception { |
| | | lock.lock(); |
| | | try { |
| | | if (orderCreated.get()) { |
| | | return ServerResponse.createByErrorMsg("当前内幕交易人数过多,请稍后重试", request); |
| | | } |
| | | orderCreated.set(true); |
| | | return this.iUserPositionService.buyDz(dzId, password, num, request); |
| | | } catch (Exception e) { |
| | | return ServerResponse.createByErrorMsg("订单异常,请稍后重试", request); |
| | | } finally{ |
| | | lock.unlock(); |
| | | orderCreated.set(false); |
| | | } |
| | | } |
| | | //大宗下单列表 |
| | | @RequestMapping({"buyStockDzList.do"}) |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping({"getMoenyLog.do"}) |
| | | @ResponseBody |
| | | public ServerResponse getMoenyLog(@RequestParam("type") String stockCode, HttpServletRequest request) { |
| | | return this.iUserService.getMoenyLog(stockCode, request); |
| | | } |
| | | |
| | | |
| | | @RequestMapping({"currencyRate.do"}) |
| | | @ResponseBody |
| | | public ServerResponse currencyRate(@RequestParam("fromType") String stockCode, |
| | | @RequestParam("toType") String toType, HttpServletRequest request) { |
| | | return ServerResponse.createBySuccess(rateServices.currencyRate(EStockType.getEStockTypeByCode(stockCode), EStockType.getEStockTypeByCode(toType))); |
| | | } |
| | | |
| | | |
| | | @RequestMapping({"applyLever.do"}) |
| | | @ResponseBody |
| | | public ServerResponse applyLever(ApplyLever applyLever,HttpServletRequest request) { |
| | | return iApplyLeverServices.applyLever(applyLever,request); |
| | | } |
| | | |
| | | |
| | | } |