From 5ce072de78ae263b52dc0e2be5c7391b23c093cf Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 27 Apr 2025 18:29:22 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java |  541 +++++++++++++++++------------------------------------
 1 files changed, 174 insertions(+), 367 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
index f5637cb..85f1f7c 100644
--- a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -5,6 +5,7 @@
 import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,8 +13,12 @@
 import com.github.pagehelper.PageInfo;
 import com.nq.common.ServerResponse;
 import com.nq.dao.*;
+import com.nq.enums.EConfigKey;
+import com.nq.enums.EUserAssets;
 import com.nq.pojo.*;
 import com.nq.service.*;
+import com.nq.utils.KeyUtils;
+import com.nq.utils.stock.GeneratePosition;
 import com.nq.utils.timeutil.DateTimeUtil;
 import com.nq.utils.PropertiesUtil;
 import com.nq.utils.redis.JsonUtil;
@@ -46,390 +51,192 @@
     @Autowired
     private IUserService iUserService;
     @Autowired
-    private IUserPositionService iUserPositionService;
+    private IUserAssetsServices iUserAssetsServices;
     @Autowired
-    private SiteTaskLogMapper siteTaskLogMapper;
+    ISiteProductService iSiteProductService;
     @Autowired
-    private UserMapper userMapper;
+    IStockConfigServices iStockConfigServices;
     @Autowired
-    private StockIndexMapper stockIndexMapper;
+    IPriceServices priceServices;
     @Autowired
-    private IStockIndexService iStockIndexService;
-    @Autowired
-    private IUserIndexPositionService iUserIndexPositionService;
-    @Autowired
-    private IStockCoinService iStockCoinService;
-    @Autowired
-    private IStockFuturesService iStockFuturesService;
-    @Autowired
-    private ISiteSettingService iSiteSettingService;
-    @Autowired
-    private UserPositionMapper userPositionMapper;
-
+    ITradingHourService tradingHourService;
     @Override
-    public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice, HttpServletRequest request) {
+    public ServerResponse addOrder(Integer stockId, Integer buyNum, Integer buyType,
+                                   Integer lever, BigDecimal profitTarget,
+                                   BigDecimal stopTarget,String targetPrice, HttpServletRequest request) {
+        SiteProduct siteProduct = iSiteProductService.getProductSetting();
+
         User user = this.iUserService.getCurrentRefreshUser(request);
+        synchronized (user.getId()){
+            if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
+                return ServerResponse.createByErrorMsg("订单失败,请先实名认证", request);
+            }
+            // 手续费率
+            BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
 
-        if (user == null) {
-            return ServerResponse.createByErrorMsg("Please log in first");
-        }
-        SiteSetting siteSetting = this.iSiteSettingService.getSiteSetting();
-        if (buyNum.intValue() < siteSetting.getBuyMinNum().intValue()) {
-            return ServerResponse.createByErrorMsg("The pending order failed, and the purchased quantity was less than" + siteSetting
-                    .getBuyMinNum() + "stocks");
-        }
-        if (buyNum.intValue() > siteSetting.getBuyMaxNum().intValue()) {
-            return ServerResponse.createByErrorMsg("The pending order failed because the purchased quantity was greater than" + siteSetting
-                    .getBuyMaxNum() + "stocks");
-        }
-        UserPendingorder userPendingorder = userPendingorderMapper.selectOne(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()).eq("stock_id", stockId).eq("status", 0));
-        if (userPendingorder != null) {
-            return ServerResponse.createByErrorMsg("Please do not repeat the order");
-        }
+            if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
+                return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定", request);
+            }
 
-        userPendingorder = new UserPendingorder();
-        userPendingorder.setUserId(user.getId());
-        userPendingorder.setStockId(stockId);
-        userPendingorder.setBuyNum(buyNum);
-        userPendingorder.setBuyType(buyType);
-        userPendingorder.setLever(lever);
-        userPendingorder.setProfitTarget(profitTarget);
-        userPendingorder.setStopTarget(stopTarget);
-        userPendingorder.setNowPrice(new BigDecimal(0));
-        userPendingorder.setTargetPrice(targetPrice);
-        userPendingorder.setAddTime(new Date());
-        userPendingorder.setStatus(0);
-        int ret = userPendingorderMapper.insert(userPendingorder);
-        if (ret > 0) {
-            return ServerResponse.createBySuccessMsg("If the pending order is successfully added, the order will be automatically placed if the order conditions are met");
-        }
-        return ServerResponse.createByErrorMsg("Add failure");
+            Stock stock = stockMapper.selectByPrimaryKey(stockId);
+            if (stock == null) {
+                return ServerResponse.createByErrorMsg("订单失败,股票代码不存在", request);
+            }
+            //判断股票是否在可交易时间段
+            Boolean b = tradingHourService.timeCheck(stock.getStockCode());
+            if (!b) {
+                return ServerResponse.createByErrorMsg("订单失败,不在交易时间之内", request);
+            }
 
+
+            StockConfig mainBuyConfig =  iStockConfigServices.queryByKey(EConfigKey.MIN_BUY.getCode());
+
+            if(buyNum<Integer.parseInt(mainBuyConfig.getCValue())){
+                return ServerResponse.createByErrorMsg("最低购买数量"+mainBuyConfig.getCValue(), request);
+            }
+
+            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
+            StockConfig maxBuyConfig =  iStockConfigServices.queryByKey(EConfigKey.MAX_BUY.getCode());
+            if(buyNum<Integer.parseInt(mainBuyConfig.getCValue())){
+                return ServerResponse.createByErrorMsg("最高购买数量"+maxBuyConfig.getCValue(), request);
+            }
+            if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+                return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
+            }
+            if (stock.getIsLock() != 0) {
+                return ServerResponse.createByErrorMsg("订单失败,股票被锁定", request);
+            }
+
+            if (!priceServices.isLimitUpBuy(stock.getStockCode())) {
+                return ServerResponse.createByErrorMsg("暂无配额", request);
+            }
+
+            //股票类型 现价 数据源的处理
+            BigDecimal nowPrice = new BigDecimal(targetPrice);
+
+            if (nowPrice.compareTo(new BigDecimal("0")) == 0) {
+                return ServerResponse.createByErrorMsg("报价0,请稍后再试", request);
+            }
+
+            BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
+            BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
+
+            BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
+            BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
+            if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
+                return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
+            }
+            UserPendingorder userPendingorder = new UserPendingorder();
+            if (profitTarget != null && profitTarget.compareTo(new BigDecimal("0")) > 0) {
+                userPendingorder.setProfitTargetPrice(profitTarget);
+            }
+            if (stopTarget != null && stopTarget.compareTo(new BigDecimal("0")) > 0) {
+                userPendingorder.setStopTargetPrice(stopTarget);
+            }
+            userPendingorder.setPositionType(1);
+            userPendingorder.setPositionSn(KeyUtils.getUniqueKey());
+            userPendingorder.setUserId(user.getId());
+            userPendingorder.setNickName(user.getRealName());
+            userPendingorder.setAgentId(user.getAgentId());
+            userPendingorder.setStockCode(stock.getStockCode());
+            userPendingorder.setStockName(stock.getStockName());
+            userPendingorder.setStockGid(stock.getStockType());
+            userPendingorder.setStockSpell(stock.getStockSpell());
+            userPendingorder.setBuyOrderId(GeneratePosition.getPositionId());
+            userPendingorder.setBuyOrderTime(new Date());
+            userPendingorder.setBuyOrderPrice(nowPrice);
+            userPendingorder.setOrderDirection((buyType.intValue() == 0) ? "买涨" : "买跌");
+            userPendingorder.setOrderNum(buyNum);
+            if (stock.getStockPlate() != null) {
+                userPendingorder.setStockPlate(stock.getStockPlate());
+            }
+            userPendingorder.setIsLock(Integer.valueOf(0));
+            userPendingorder.setOrderLever(lever);
+            userPendingorder.setOrderTotalPrice(buyAmt);
+            // 手续费
+
+            userPendingorder.setOrderFee(orderFree);
+            userPendingorder.setOrderSpread(BigDecimal.ZERO);
+            userPendingorder.setSpreadRatePrice(BigDecimal.ZERO);
+            BigDecimal profit_and_lose = new BigDecimal("0");
+            userPendingorder.setProfitAndLose(profit_and_lose);
+            userPendingorder.setAllProfitAndLose(profit_and_lose.add(orderFree));
+            userPendingorder.setOrderStayDays(Integer.valueOf(0));
+            userPendingorder.setOrderStayFee(BigDecimal.ZERO);
+            userPendingorderMapper.insert(userPendingorder);
+            return ServerResponse.createBySuccessMsg("挂单成功", request);
+        }
     }
 
     @Override
-    public ServerResponse orderList(HttpServletRequest request) {
+    public ServerResponse hjyyAddOrder(String name, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopLoss, String targetPrice, HttpServletRequest request) {
+        SiteProduct siteProduct = iSiteProductService.getProductSetting();
 
-        String property = PropertiesUtil.getProperty("user.cookie.name");
-        String header = request.getHeader(property);
-//        log.info("header:{}",header);
-        if (header != null) {
-            String userJson = RedisShardedPoolUtils.get(header);
-            User user = (User) JsonUtil.string2Obj(userJson, User.class);
-//            log.info("user:{}",user);
-            if (user != null) {
-                List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()));
-
-                List UserPendingorderList = new ArrayList();
-
-
-                for (UserPendingorder userPendingorder : userPendingorders) {
-                    UserPendingorderVO userPendingorderVO = new UserPendingorderVO();
-                    //挂单-指数
-                    //挂单-股票
-                    Stock stock = stockMapper.findStockByCode(userPendingorder.getStockId());
-                    StockListVO stockListVO = new StockListVO();
-                    stockListVO = StockApi.getStockRealTime(
-                            stock);
-                    String nowPrice = stockListVO.getNowPrice();
-                    if (nowPrice == null) {
-                        nowPrice = String.valueOf(0);
-                    }
-                    userPendingorderVO.setNowPrice(new BigDecimal(nowPrice));
-                    userPendingorderVO.setStockName(stock.getStockName());
-                    userPendingorderVO.setStockId(stock.getStockCode());
-                    userPendingorderVO.setBuyNum(userPendingorder.getBuyNum());
-                    userPendingorderVO.setBuyType(userPendingorder.getBuyType());
-                    userPendingorderVO.setLever(userPendingorder.getLever());
-                    userPendingorderVO.setProfitTarget(userPendingorder.getProfitTarget());
-                    userPendingorderVO.setStopTarget(userPendingorder.getStopTarget());
-                    userPendingorderVO.setTargetPrice(userPendingorder.getTargetPrice());
-                    userPendingorderVO.setAddTime(userPendingorder.getAddTime());
-                    userPendingorderVO.setStatus(userPendingorder.getStatus());
-                    userPendingorderVO.setId(userPendingorder.getId());
-                    UserPendingorderList.add(userPendingorderVO);
-                }
-                return ServerResponse.createBySuccess(UserPendingorderList);
+        User user = this.iUserService.getCurrentRefreshUser(request);
+        synchronized (user.getId()){
+            if (siteProduct.getRealNameDisplay() && user.getIsActive() != 2) {
+                return ServerResponse.createByErrorMsg("订单失败,请先实名认证", request);
             }
-        }
-        return ServerResponse.createByErrorMsg("数据异常");
+            // 手续费率
+            BigDecimal siteSettingBuyFee = new BigDecimal(iStockConfigServices.queryByKey(EConfigKey.BUY_HANDLING_CHARGE.getCode()).getCValue()) ;
 
+            if (siteProduct.getRealNameDisplay() && user.getIsLock().intValue() == 1) {
+                return ServerResponse.createByErrorMsg("订单失败,帐户已被锁定", request);
+            }
+
+            BigDecimal price = new BigDecimal(targetPrice);
+
+            UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId("USDT", user.getId());
+
+            if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
+                return ServerResponse.createByErrorMsg("挂单失败,请先缴清待补资金", request);
+            }
+
+            if (price.compareTo(new BigDecimal("0")) == 0) {
+                return ServerResponse.createByErrorMsg("报价0,请稍后再试", request);
+            }
+
+            BigDecimal buyAmt = price.multiply(new BigDecimal(buyNum)).divide(new BigDecimal(lever));
+            BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
+
+            BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
+            BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
+            if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
+                return ServerResponse.createByErrorMsg("订单失败,配资不足", request);
+            }
+            UserPendingorder userPendingorder = new UserPendingorder();
+            userPendingorder.setPositionType(1);
+            userPendingorder.setPositionSn(KeyUtils.getUniqueKey());
+            userPendingorder.setUserId(user.getId());
+            userPendingorder.setNickName(user.getRealName());
+            userPendingorder.setAgentId(user.getAgentId());
+            userPendingorder.setStockCode("HJYY");
+            userPendingorder.setStockName(name);
+            userPendingorder.setStockGid("HJYY");
+            userPendingorder.setStockSpell(name);
+            userPendingorder.setBuyOrderId(GeneratePosition.getPositionId());
+            userPendingorder.setBuyOrderTime(new Date());
+            userPendingorder.setBuyOrderPrice(price);
+            userPendingorder.setOrderDirection((buyType.intValue() == 0) ? "买涨" : "买跌");
+            userPendingorder.setOrderNum(buyNum);
+            userPendingorder.setIsLock(Integer.valueOf(0));
+            userPendingorder.setOrderLever(lever);
+            userPendingorder.setOrderTotalPrice(buyAmt);
+            // 手续费
+            userPendingorder.setOrderFee(orderFree);
+            userPendingorder.setOrderSpread(BigDecimal.ZERO);
+            userPendingorder.setSpreadRatePrice(BigDecimal.ZERO);
+            BigDecimal profit_and_lose = new BigDecimal("0");
+            userPendingorder.setProfitAndLose(profit_and_lose);
+            userPendingorder.setAllProfitAndLose(profit_and_lose.add(orderFree));
+            userPendingorder.setOrderStayDays(Integer.valueOf(0));
+            userPendingorder.setOrderStayFee(BigDecimal.ZERO);
+            userPendingorderMapper.insert(userPendingorder);
+            iUserAssetsServices.availablebalanceChange("USDT", user.getId(), EUserAssets.BUY, buyAmt.negate(), "", "");
+            return ServerResponse.createBySuccessMsg("下单成功", request);
+        }
     }
 
-    @Override
-    public void orderTask() {
-
-        List<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("status", 0));
-        log.info("当前有挂单的用户数量 为 {}", Integer.valueOf(userPendingorders.size()));
-        for (int i = 0; i < userPendingorders.size(); i++) {
-            Integer userId = (Integer) userPendingorders.get(i).getUserId();
-            User user = this.userMapper.selectById(userId);
-            if (user == null) {
-                continue;
-            }
-            List<UserPendingorder> userPendingorderList = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("user_id", userId).eq("status", 0));
-            if (userPendingorderList == null) {
-                continue;
-            }
-            log.info("用户id = {} 姓名 = {} 已挂单数: {}", new Object[]{userId, user.getRealName(), Integer.valueOf(userPendingorders.size())});
-            BigDecimal all_freez_amt = new BigDecimal("0");
-            String nowPrice = "";
-            String code = "";
-            Integer indexId = null;
-            StockListVO stockListVO = new StockListVO();
-            StockCoin stockCoin = new StockCoin();
-            for (UserPendingorder userPendingorder : userPendingorderList) {
-                //指数
-                if (userPendingorder.getStockId().contains("sh") || userPendingorder.getStockId().contains("sz") || userPendingorder.getStockId().contains("hk") || userPendingorder.getStockId().contains("us")) {
-                    StockIndex model = stockIndexMapper.selectIndexByCode(userPendingorder.getStockId().replace("sh", "").replace("sz", "").replace("hk", "").replace("us", ""));
-                    all_freez_amt = (new BigDecimal(model.getDepositAmt().intValue())).multiply(new BigDecimal(userPendingorder.getBuyNum())).divide(new BigDecimal(userPendingorder.getLever())).setScale(4, 2);
-
-//                    if (){
-//
-//                    }else {
-                    MarketVO marketVO = this.iStockIndexService.querySingleIndex(model.getIndexGid());
-                    nowPrice = marketVO.getNowPrice();
-//                    }
-
-                    indexId = model.getId();
-
-                } else {
-                    //股票
-                    Stock stock = stockMapper.findStockByCode(userPendingorder.getStockId());
-                    if ("hk".equals(stock.getStockType())) {
-                        String hk = RedisShardedPoolUtils.get(stock.getStockGid(), 1);
-                        stockListVO = StockApi.otherStockListVO(hk);
-                        //                        stockCoin = iStockCoinService.selectCoinByCode("HKD");
-                        ExchangeVO exchangeVO = this.iStockFuturesService.queryExchangeVO("HKD").getData();
-                        nowPrice = String.valueOf(new BigDecimal(stockListVO.getNowPrice()).multiply(new BigDecimal(exchangeVO.getNowPrice())));
-                    } else if ("us".equals(stock.getStockType())) {
-                        String us = RedisShardedPoolUtils.get(stock.getStockGid(), 2);
-                        stockListVO = StockApi.otherStockListVO(us);
-                        //                        stockCoin = iStockCoinService.selectCoinByCode("USD");
-                        ExchangeVO exchangeVO = this.iStockFuturesService.queryExchangeVO("USD").getData();
-                        nowPrice = String.valueOf(new BigDecimal(stockListVO.getNowPrice()).multiply(new BigDecimal(exchangeVO.getNowPrice())));
-                    } else {
-                        stockListVO = StockApi.getStockRealTime(stock);
-                        nowPrice = stockListVO.getNowPrice();
-                    }
-
-
-                    all_freez_amt = new BigDecimal(nowPrice).multiply(new BigDecimal(userPendingorder.getBuyNum())).divide(new BigDecimal(userPendingorder.getLever()), 2, 4);
-                    code = stock.getStockCode();
-                }
-                if (nowPrice == null) {
-                    nowPrice = String.valueOf(0);
-                }
-                if (userPendingorder.getUserId() != null && userPendingorder.getStockId() != null && userPendingorder.getBuyNum() != null && userPendingorder.getBuyType() != null && userPendingorder.getLever() != null && userPendingorder.getTargetPrice() != null) {
-                    int ret = userPendingorder.getBuyType().intValue() == 0 ? userPendingorder.getTargetPrice().compareTo(new BigDecimal(nowPrice)) : new BigDecimal(nowPrice).compareTo(userPendingorder.getTargetPrice());
-                    //当前时间String
-                    String buyTime = DateTimeUtil.dateToStr(new Date());
-                    if (ret <= 0) {
-                        if (code != null && !"".equals(code)) {
-                            try {
-                                this.iUserPositionService.create(userPendingorder.getUserId(), code, nowPrice, buyTime, userPendingorder.getBuyNum(), userPendingorder.getBuyType(), userPendingorder.getLever(), userPendingorder.getProfitTarget(), userPendingorder.getStopTarget());
-                                userPendingorder.setStatus(1);
-                                this.userPendingorderMapper.updateById(userPendingorder);
-                                SiteTaskLog siteTaskLog = new SiteTaskLog();
-                                siteTaskLog.setTaskType("股票挂单转持仓");
-                                String accountType = (user.getAccountType() == 0) ? "正式用户" : "模拟用户";
-                                String tasktarget = "此次挂单买入id:" + userPendingorder.getId();
-                                siteTaskLog.setTaskTarget(tasktarget);
-                                siteTaskLog.setAddTime(new Date());
-                                siteTaskLog.setIsSuccess(0);
-                                siteTaskLog.setErrorMsg("");
-                                int insertTaskCount = this.siteTaskLogMapper.insert(siteTaskLog);
-                                if (insertTaskCount > 0) {
-                                    log.info("挂单task任务成功");
-                                } else {
-                                    log.info("挂单task任务失败");
-                                }
-                            } catch (Exception e) {
-                                log.error("股票挂单任务失败...");
-                                userPendingorder.setStatus(2);
-                                this.userPendingorderMapper.updateById(userPendingorder);
-                            }
-                        } else if (indexId != null) {
-                            try {
-                                this.iUserIndexPositionService.buyIndexOrder(indexId, userPendingorder.getBuyNum(), userPendingorder.getBuyType(), userPendingorder.getLever(), userPendingorder.getProfitTarget(), userPendingorder.getStopTarget(), userPendingorder.getUserId());
-                                userPendingorder.setStatus(1);
-                                this.userPendingorderMapper.updateById(userPendingorder);
-                                SiteTaskLog siteTaskLog = new SiteTaskLog();
-                                siteTaskLog.setTaskType("指数挂单转持仓");
-                                String accountType = (user.getAccountType() == 0) ? "正式用户" : "模拟用户";
-                                String tasktarget = "此次挂单买入id:" + userPendingorder.getId();
-                                siteTaskLog.setTaskTarget(tasktarget);
-                                siteTaskLog.setAddTime(new Date());
-                                siteTaskLog.setIsSuccess(0);
-                                siteTaskLog.setErrorMsg("");
-                                int insertTaskCount = this.siteTaskLogMapper.insert(siteTaskLog);
-                                if (insertTaskCount > 0) {
-                                    log.info("挂单task任务成功");
-                                    userPendingorder.setStatus(1);
-                                } else {
-                                    log.info("挂单task任务失败");
-                                }
-                            } catch (Exception e) {
-                                log.error("指数挂单任务失败...");
-                                userPendingorder.setStatus(2);
-                                this.userPendingorderMapper.updateById(userPendingorder);
-                            }
-                        }
-
-                    }
-
-                }
-
-            }
-
-        }
-        log.info("===========挂单结束==========");
-    }
-
-    //删除
-    @Override
-    public ServerResponse delOrder(Integer id, HttpServletRequest request) {
-        String property = PropertiesUtil.getProperty("user.cookie.name");
-        String header = request.getHeader(property);
-        if (header != null) {
-            String userJson = RedisShardedPoolUtils.get(header);
-            User user = (User) JsonUtil.string2Obj(userJson, User.class);
-            UserPendingorder userPendingorder = this.userPendingorderMapper.selectById(id);
-            if (userPendingorder == null) {
-                return ServerResponse.createByErrorMsg("The pending order does not exist");
-            }
-            if (user.getId().intValue() != userPendingorder.getUserId().intValue()) {
-                return ServerResponse.createByErrorMsg("The pending order does not belong to you");
-            }
-            int delCount = this.userPendingorderMapper.deleteById(id);
-            if (delCount > 0) {
-                return ServerResponse.createByErrorMsg("Successfully deleted");
-            }
-            return ServerResponse.createByErrorMsg("Deletion failure");
-        }
-
-        return ServerResponse.createByErrorMsg("Please log in");
-    }
-
-
-    @Override
-    public ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, String status, HttpServletRequest request) {
-        PageHelper.startPage(pageNum, pageSize);
-        QueryWrapper<UserPendingorder> queryWrapper = new QueryWrapper();
-        if (keywords != null && !keywords.equals("")) {
-            queryWrapper.like("stock_id", keywords).or().like("user_id", keywords);
-        }
-        if (status != null && !status.equals("")) {
-            queryWrapper.eq("status", status);
-        }
-        queryWrapper.orderByDesc("id");
-        List<UserPendingorder> stockSubscribeList = this.userPendingorderMapper.selectList(queryWrapper);
-        List UserPendingorderList = new ArrayList();
-        for (UserPendingorder userPendingorder : stockSubscribeList) {
-            UserPendingorderVO userPendingorderVO = new UserPendingorderVO();
-            //挂单-指数
-            if (userPendingorder.getStockId().contains("sh") || userPendingorder.getStockId().contains("sz") || userPendingorder.getStockId().contains("hk") || userPendingorder.getStockId().contains("us")) {
-                StockIndex model = stockIndexMapper.selectIndexByCode(userPendingorder.getStockId().replace("sh", "").replace("sz", "").replace("hk", "").replace("us", ""));
-
-                MarketVO marketVO = this.iStockIndexService.querySingleIndex(model.getIndexGid());
-                userPendingorderVO.setNowPrice(new BigDecimal(marketVO.getNowPrice()));
-                userPendingorderVO.setStockName(model.getIndexName());
-                userPendingorderVO.setStockId(model.getIndexGid());
-
-            } else {
-                //挂单-股票
-                Stock stock = stockMapper.findStockByCode(userPendingorder.getStockId());
-                StockListVO stockListVO = new StockListVO();
-                if (stock.getStockType().equals("hk")) {
-                    String hk = RedisShardedPoolUtils.get(stock.getStockGid(), 1);
-                    stockListVO = StockApi.otherStockListVO(hk);
-                } else if (stock.getStockType().equals("us")) {
-                    String us = RedisShardedPoolUtils.get(stock.getStockGid(), 2);
-                    stockListVO = StockApi.otherStockListVO(us);
-                } else {
-                    stockListVO = StockApi.getStockRealTime(
-                            stock);
-                }
-                String nowPrice = stockListVO.getNowPrice();
-                if (nowPrice == null) {
-                    nowPrice = String.valueOf(0);
-                }
-                userPendingorderVO.setNowPrice(new BigDecimal(nowPrice));
-                userPendingorderVO.setStockName(stock.getStockName());
-                userPendingorderVO.setStockId(stock.getStockCode());
-            }
-            userPendingorderVO.setBuyNum(userPendingorder.getBuyNum());
-            userPendingorderVO.setBuyType(userPendingorder.getBuyType());
-            userPendingorderVO.setLever(userPendingorder.getLever());
-            userPendingorderVO.setProfitTarget(userPendingorder.getProfitTarget());
-            userPendingorderVO.setStopTarget(userPendingorder.getStopTarget());
-            userPendingorderVO.setTargetPrice(userPendingorder.getTargetPrice());
-            userPendingorderVO.setAddTime(userPendingorder.getAddTime());
-            userPendingorderVO.setStatus(userPendingorder.getStatus());
-            userPendingorderVO.setId(userPendingorder.getId());
-            UserPendingorderList.add(userPendingorderVO);
-        }
-        PageInfo pageInfo = new PageInfo(stockSubscribeList);
-        pageInfo.setList(UserPendingorderList);
-        return ServerResponse.createBySuccess(pageInfo);
-    }
-
-    @Override
-    public ServerResponse updateOrderByAdmin(UserPendingorder userPendingorder) {
-        if (userPendingorder.getId() == null) {
-            return ServerResponse.createByErrorMsg("id不能为空");
-        }
-        int updateCount = this.userPendingorderMapper.updateById(userPendingorder);
-        if (updateCount > 0) {
-            return ServerResponse.createBySuccessMsg("修改成功");
-        }
-        return ServerResponse.createByErrorMsg("修改失败");
-
-    }
-
-    @Override
-    public ServerResponse addOrderByAdmin(String phone, String buyNum, String code, String buyType, String lever, String targetPrice, HttpServletRequest request) {
-        if (StringUtils.isBlank(phone) || StringUtils.isBlank(buyNum) || StringUtils.isBlank(buyType) || StringUtils.isBlank(lever) || StringUtils.isBlank(targetPrice)) {
-            return ServerResponse.createByErrorMsg("参数不能为空");
-        }
-
-        User user = this.userMapper.selectOne(new QueryWrapper<User>().eq("phone", phone));
-        if (user == null) {
-            return ServerResponse.createByErrorMsg("用户不存在");
-        }
-        Stock stock = stockMapper.findStockByCode(code);
-        if (stock == null) {
-            return ServerResponse.createByErrorMsg("股票不存在");
-        }
-        UserPendingorder userPendingorder = new UserPendingorder();
-        userPendingorder.setUserId(user.getId());
-        userPendingorder.setStockId(code);
-        userPendingorder.setBuyNum(Integer.valueOf(buyNum));
-        userPendingorder.setBuyType(Integer.valueOf(buyType));
-        userPendingorder.setLever(Integer.valueOf(lever));
-        userPendingorder.setTargetPrice(new BigDecimal(targetPrice));
-        userPendingorder.setAddTime(new Date());
-        userPendingorder.setStatus(0);
-        userPendingorder.setNowPrice(new BigDecimal(0));
-        int insert = this.userPendingorderMapper.insert(userPendingorder);
-        if (insert > 0) {
-            return ServerResponse.createBySuccessMsg("添加成功");
-        }
-        return ServerResponse.createByErrorMsg("添加失败");
-
-    }
-
-    @Override
-    public ServerResponse delOrderByAdmin(Integer id) {
-        if (id == null) {
-            return ServerResponse.createByErrorMsg("id不能为空");
-        }
-        int delete = this.userPendingorderMapper.deleteById(id);
-        if (delete > 0) {
-            return ServerResponse.createBySuccessMsg("删除成功");
-        }
-        return ServerResponse.createByErrorMsg("删除失败");
-    }
 }
 
 

--
Gitblit v1.9.3