From 8a3f4a7f9df7d215bfa6048f01fe1d1d28e7d0dc Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 04 Sep 2024 16:15:30 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/utils/task/stock/OrderTask.java               |   50 ++++++++++++
 src/main/resources/mapper/UserPositionMapper.xml                   |    4 
 src/main/java/com/nq/controller/backend/AdminPendingorder.java     |   17 +++-
 src/main/java/com/nq/controller/protol/UserWithdrawController.java |    4 
 src/main/java/com/nq/pojo/UserBank.java                            |    1 
 src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java     |   17 +++-
 src/main/java/com/nq/vo/position/UserPendingorderVO.java           |    1 
 src/main/java/com/nq/service/IUserWithdrawService.java             |    2 
 src/main/java/com/nq/service/UserPendingorderService.java          |    4 
 src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java |  125 ++++++++++++++++++++-----------
 10 files changed, 166 insertions(+), 59 deletions(-)

diff --git a/src/main/java/com/nq/controller/backend/AdminPendingorder.java b/src/main/java/com/nq/controller/backend/AdminPendingorder.java
index f330f0a..8d136fc 100644
--- a/src/main/java/com/nq/controller/backend/AdminPendingorder.java
+++ b/src/main/java/com/nq/controller/backend/AdminPendingorder.java
@@ -5,10 +5,7 @@
 import com.nq.service.UserPendingorderService;
 import com.nq.vo.position.UserPendingorderVO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -28,7 +25,7 @@
      * @return
      */
     @GetMapping({"orderList.do"})
-    public ServerResponse orderList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,@RequestParam(value = "keywords", required = false) String keywords,@RequestParam(value = "status", required = false) String status, HttpServletRequest request) {
+    public ServerResponse orderList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,@RequestParam(value = "keywords", required = false) String keywords,@RequestParam(value = "status", required = false) Integer status, HttpServletRequest request) {
         return userPendingorderService.orderListByAdmin( pageNum,  pageSize, keywords, status, request);
     }
 
@@ -44,6 +41,16 @@
     }
 
     /**
+     * 管理员审核挂单
+     * @param id
+     * @return
+     */
+    @PostMapping({"examine.do"})
+    public ServerResponse examine(Integer id,HttpServletRequest request) {
+        return userPendingorderService.examine(id);
+    }
+
+    /**
      * 管理员修改挂单
      * @param UserPendingorder
      * @param request
diff --git a/src/main/java/com/nq/controller/protol/UserWithdrawController.java b/src/main/java/com/nq/controller/protol/UserWithdrawController.java
index 4285ff9..f1c58af 100644
--- a/src/main/java/com/nq/controller/protol/UserWithdrawController.java
+++ b/src/main/java/com/nq/controller/protol/UserWithdrawController.java
@@ -39,11 +39,13 @@
     @ResponseBody
     public ServerResponse outMoney(@RequestParam(value = "amt") String amt,
                                    @RequestParam(value = "assetsType") String accsetType,
+                                   @RequestParam(value = "type") Integer type,
+                                   @RequestParam(value = "walletAddress", required = false) String walletAddress,
                                    HttpServletRequest request) {
         ServerResponse serverResponse = null;
         User user = this.iUserService.getCurrentRefreshUser(request);
         try {
-            serverResponse = this.iUserWithdrawService.outMoney(amt, user.getWithPwd(), accsetType,request);
+            serverResponse = this.iUserWithdrawService.outMoney(amt, user.getWithPwd(), accsetType, walletAddress,type,request);
         } catch (Exception e) {
             log.error("出金异常 e = {}", e);
             serverResponse = ServerResponse.createByErrorMsg("提现异常,请稍后再试",request);
diff --git a/src/main/java/com/nq/pojo/UserBank.java b/src/main/java/com/nq/pojo/UserBank.java
index 1123ba9..63a1d4c 100644
--- a/src/main/java/com/nq/pojo/UserBank.java
+++ b/src/main/java/com/nq/pojo/UserBank.java
@@ -46,5 +46,4 @@
     private String bankPhone;
 
     private Date addTime;
-
 }
\ No newline at end of file
diff --git a/src/main/java/com/nq/service/IUserWithdrawService.java b/src/main/java/com/nq/service/IUserWithdrawService.java
index 025cab8..9a8c0b7 100644
--- a/src/main/java/com/nq/service/IUserWithdrawService.java
+++ b/src/main/java/com/nq/service/IUserWithdrawService.java
@@ -10,7 +10,7 @@
 import javax.servlet.http.HttpServletRequest;
 
 public interface IUserWithdrawService {
-  ServerResponse outMoney(String paramString,String with_Pwd, String assetsType,HttpServletRequest paramHttpServletRequest) throws Exception;
+  ServerResponse outMoney(String paramString,String with_Pwd, String assetsType, String walletAddress,Integer type,HttpServletRequest paramHttpServletRequest) throws Exception;
   
   ServerResponse<PageInfo> findUserWithList(String paramString, HttpServletRequest paramHttpServletRequest, int paramInt1, int paramInt2);
   
diff --git a/src/main/java/com/nq/service/UserPendingorderService.java b/src/main/java/com/nq/service/UserPendingorderService.java
index 4c86362..72511a3 100644
--- a/src/main/java/com/nq/service/UserPendingorderService.java
+++ b/src/main/java/com/nq/service/UserPendingorderService.java
@@ -24,11 +24,13 @@
     ServerResponse delOrder(Integer id, HttpServletRequest request);
 
 
-    ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, String status, HttpServletRequest request);
+    ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, Integer status, HttpServletRequest request);
 
     ServerResponse updateOrderByAdmin(UserPendingorder userPendingorder);
 
     ServerResponse addOrderByAdmin(String phone, String buyNum,String code, String buyType, String lever, String targetPrice, HttpServletRequest request);
 
     ServerResponse delOrderByAdmin(Integer id);
+
+    ServerResponse examine(Integer id);
 }
diff --git a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
index ef7c355..567c498 100644
--- a/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPendingorderServiceImpl.java
@@ -1,10 +1,12 @@
 package com.nq.service.impl;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 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,6 +14,7 @@
 import com.github.pagehelper.PageInfo;
 import com.nq.common.ServerResponse;
 import com.nq.dao.*;
+import com.nq.enums.EStockType;
 import com.nq.pojo.*;
 import com.nq.service.*;
 import com.nq.utils.timeutil.DateTimeUtil;
@@ -65,6 +68,8 @@
     private ISiteSettingService iSiteSettingService;
     @Autowired
     private UserPositionMapper userPositionMapper;
+    @Autowired
+    UserAssetsMapper userAssetsMapper;
 
     @Override
     public ServerResponse addOrder(String stockId, Integer buyNum, Integer buyType, Integer lever, BigDecimal profitTarget, BigDecimal stopTarget, BigDecimal targetPrice, HttpServletRequest request) {
@@ -82,18 +87,18 @@
             return ServerResponse.createByErrorMsg("The pending order failed because the purchased quantity was greater than" + siteSetting
                     .getBuyMaxNum() + "stocks",request);
         }
-//        UserPendingorder userPendingorder = userPendingorderMapper.selectOne(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()).eq("stock_id", stockId).eq("status", 0));
-//        if (userPendingorder != null) {
-//            String lang = request.getHeader("lang");
-//            if(lang.equals("ja")){
-//                String msg = "繰り返しの送信はご遠慮ください";
-//                return ServerResponse.createByErrorMsg(msg);
-//            }else{
-//                return ServerResponse.createByErrorMsg("Please do not repeat the order",request);
-//            }
-//        }
+
+        UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+                .eq(UserAssets::getUserId, user.getId())
+                .eq(UserAssets::getAccectType, "JP")
+        );
+        BigDecimal amount = new BigDecimal(buyNum).multiply(targetPrice).setScale(5, RoundingMode.DOWN);
+        userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount.negate()));
+        userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount));
+        userAssetsMapper.updateById(userAssets);
 
         UserPendingorder userPendingorder = new UserPendingorder();
+        userPendingorder = new UserPendingorder();
         userPendingorder.setUserId(user.getId());
         userPendingorder.setStockId(stockId);
         userPendingorder.setBuyNum(buyNum);
@@ -130,7 +135,7 @@
             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<UserPendingorder> userPendingorders = userPendingorderMapper.selectList(new QueryWrapper<UserPendingorder>().eq("user_id", user.getId()).ne("status",1));
 
                 List UserPendingorderList = new ArrayList();
 
@@ -236,7 +241,7 @@
                     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 (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());
@@ -315,6 +320,14 @@
             }
             int delCount = this.userPendingorderMapper.deleteById(id);
             if (delCount > 0) {
+                UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<UserAssets>()
+                        .eq(UserAssets::getUserId, user.getId())
+                        .eq(UserAssets::getAccectType, "JP")
+                );
+                BigDecimal amount = new BigDecimal(userPendingorder.getBuyNum()).multiply(userPendingorder.getTargetPrice()).setScale(5, RoundingMode.DOWN);
+                userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount));
+                userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount.negate()));
+                userAssetsMapper.updateById(userAssets);
                 return ServerResponse.createByErrorMsg("Successfully deleted",request);
             }
             return ServerResponse.createByErrorMsg("Deletion failure",request);
@@ -325,9 +338,10 @@
 
 
     @Override
-    public ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, String status, HttpServletRequest request) {
+    public ServerResponse orderListByAdmin(int pageNum, int pageSize, String keywords, Integer status, HttpServletRequest request) {
         PageHelper.startPage(pageNum, pageSize);
         QueryWrapper<UserPendingorder> queryWrapper = new QueryWrapper();
+        queryWrapper.eq("buy_type",0);
         if (keywords != null && !keywords.equals("")) {
             queryWrapper.like("stock_id", keywords).or().like("user_id", keywords);
         }
@@ -339,42 +353,37 @@
         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());
-
+            //挂单-股票
+            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 {
-                //挂单-股票
-                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());
+                stockListVO = StockApi.getStockRealTime(
+                        stock);
             }
+            String nowPrice = stockListVO.getNowPrice();
+            if (nowPrice == null) {
+                nowPrice = String.valueOf(0);
+            }
+            userPendingorderVO.setUserId(userPendingorder.getUserId());
+            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());
+            if(null != userPendingorder.getProfitTarget()){
+                userPendingorderVO.setProfitTarget(userPendingorder.getProfitTarget());
+            }
+            if(null != userPendingorder.getStopTarget()){
+                userPendingorderVO.setStopTarget(userPendingorder.getStopTarget());
+            }
+
             userPendingorderVO.setTargetPrice(userPendingorder.getTargetPrice());
             userPendingorderVO.setAddTime(userPendingorder.getAddTime());
             userPendingorderVO.setStatus(userPendingorder.getStatus());
@@ -442,6 +451,34 @@
         }
         return ServerResponse.createByErrorMsg("删除失败");
     }
+
+    @Override
+    public ServerResponse examine(Integer id) {
+
+        try{
+            UserPendingorder userPendingorder = getById(id);
+            if(null != userPendingorder && userPendingorder.getStatus() != 0){
+                return ServerResponse.createByErrorMsg("当前状态无法操作");
+            }
+            userPendingorder.setStatus(1);
+            SiteTaskLog siteTaskLog = new SiteTaskLog();
+            siteTaskLog.setTaskType("股票挂单转持仓");
+            String tasktarget = "此次挂单买入id:" + userPendingorder.getId();
+            siteTaskLog.setTaskTarget(tasktarget);
+            siteTaskLog.setAddTime(new Date());
+            siteTaskLog.setIsSuccess(0);
+            siteTaskLog.setErrorMsg("");
+            this.userPendingorderMapper.updateById(userPendingorder);
+            this.siteTaskLogMapper.insert(siteTaskLog);
+            //当前时间String
+            String buyTime = DateTimeUtil.dateToStr(new Date());
+            this.iUserPositionService.create(userPendingorder.getUserId(), userPendingorder.getStockId(), String.valueOf(userPendingorder.getTargetPrice()), buyTime, userPendingorder.getBuyNum(), userPendingorder.getBuyType(), userPendingorder.getLever(), userPendingorder.getProfitTarget(), userPendingorder.getStopTarget());
+            return ServerResponse.createBySuccessMsg("审核成功,挂单已转持仓");
+        }catch (Exception e){
+            log.error("挂单失败");
+        }
+        return ServerResponse.createByErrorMsg("操作失败");
+    }
 }
 
 
diff --git a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
index e96899c..787e089 100644
--- a/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserWithdrawServiceImpl.java
@@ -92,7 +92,7 @@
     UserAssetsMapper userAssetsMapper;
 
     @Transactional
-    public ServerResponse outMoney(String amt, String with_Pwd,String accsetType,HttpServletRequest request) throws Exception {
+    public ServerResponse outMoney(String amt, String with_Pwd,String accsetType, String walletAddress,Integer type,HttpServletRequest request) throws Exception {
         if (StringUtils.isBlank(amt)) {
             return ServerResponse.createByErrorMsg("The parameter cannot be null");
         }
@@ -114,6 +114,9 @@
             UserBank userBank = this.iUserBankService.findUserBankByUserId(user.getId());
             if (userBank == null) {
                 return ServerResponse.createByErrorMsg("未绑定银行卡",request);
+            }
+            if (type == 1 && StringUtils.isEmpty(walletAddress)) {
+                return ServerResponse.createByErrorMsg("数字货币地址不能为空",request);
             }
             if (user.getAccountType().intValue() == 1) {
                 return ServerResponse.createByErrorMsg("模拟用户无法提取资金",request);
@@ -142,9 +145,15 @@
             userWithdraw.setWithAmt(new BigDecimal(amt));
             userWithdraw.setApplyTime(new Date());
             userWithdraw.setWithName(user.getRealName());
-            userWithdraw.setBankNo(userBank.getBankNo());
-            userWithdraw.setBankName(userBank.getBankName());
-            userWithdraw.setBankAddress(userBank.getBankAddress());
+            if(type == 0){
+                userWithdraw.setBankNo(userBank.getBankNo());
+                userWithdraw.setBankName(userBank.getBankName());
+                userWithdraw.setBankAddress("银行卡");
+            }else{
+                userWithdraw.setBankNo(walletAddress);
+                userWithdraw.setBankName("加密货币");
+                userWithdraw.setBankAddress("加密货币");
+            }
             userWithdraw.setWithStatus(Integer.valueOf(0));
             BigDecimal withfee = siteSetting.getWithFeePercent().multiply(new BigDecimal(amt)).add(new BigDecimal(siteSetting.getWithFeeSingle().intValue()));
             userWithdraw.setWithFee(withfee);
diff --git a/src/main/java/com/nq/utils/task/stock/OrderTask.java b/src/main/java/com/nq/utils/task/stock/OrderTask.java
new file mode 100644
index 0000000..a0cf353
--- /dev/null
+++ b/src/main/java/com/nq/utils/task/stock/OrderTask.java
@@ -0,0 +1,50 @@
+package com.nq.utils.task.stock;
+
+import com.nq.enums.EStockType;
+import com.nq.service.UserPendingorderService;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+/**
+ * @program: dabaogp
+ * @description:
+ * @create: 2024-09-04 14:23
+ **/
+@Component
+@Slf4j
+public class OrderTask {
+
+    private final AtomicBoolean syncINStockData = new AtomicBoolean(false);
+
+    private final Lock syncINStockDataLock = new ReentrantLock();
+
+    @Autowired
+    private UserPendingorderService pendingorderService;
+
+    /**
+     * 挂单
+     */
+    @Scheduled(cron = "0/10 * * * * ?")
+    public void syncINStockData() {
+        if (syncINStockData.get()) { // 判断任务是否在处理中
+            return;
+        }
+        if (syncINStockDataLock.tryLock()) {
+            try {
+                syncINStockData.set(true); // 设置处理中标识为true
+                pendingorderService.orderTask();
+            } finally {
+                syncINStockDataLock.unlock();
+                syncINStockData.set(false); // 设置处理中标识为false
+            }
+        }
+    }
+}
diff --git a/src/main/java/com/nq/vo/position/UserPendingorderVO.java b/src/main/java/com/nq/vo/position/UserPendingorderVO.java
index 99ec059..f1e5b80 100644
--- a/src/main/java/com/nq/vo/position/UserPendingorderVO.java
+++ b/src/main/java/com/nq/vo/position/UserPendingorderVO.java
@@ -17,6 +17,7 @@
 @Data
 public class UserPendingorderVO  {
     private Integer id;
+    private Integer userId;
     private String stockId;
     private String stockName;
 
diff --git a/src/main/resources/mapper/UserPositionMapper.xml b/src/main/resources/mapper/UserPositionMapper.xml
index 1edb775..7ea7077 100644
--- a/src/main/resources/mapper/UserPositionMapper.xml
+++ b/src/main/resources/mapper/UserPositionMapper.xml
@@ -44,7 +44,7 @@
     id, position_type, position_sn, user_id, nick_name, agent_id, stock_name, stock_code, 
     stock_gid, stock_spell, buy_order_id, buy_order_time, buy_order_price, sell_order_id, 
     sell_order_time, sell_order_price, profit_target_price, stop_target_price, order_direction, 
-    order_num, order_lever, order_total_price, order_fee, order_spread, order_stay_fee, 
+    order_num, order_lever, order_total_price, order_fee, order_spread, order_stay_fee,
     order_stay_days, profit_and_lose, all_profit_and_lose,is_lock,lock_msg,stock_plate,spread_rate_price,margin_add
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@@ -65,7 +65,7 @@
       buy_order_price, sell_order_id, sell_order_time, 
       sell_order_price, profit_target_price, stop_target_price, 
       order_direction, order_num, order_lever, 
-      order_total_price, order_fee, order_spread, 
+      order_total_price, order_fee, order_spread,
       order_stay_fee, order_stay_days, profit_and_lose, 
       all_profit_and_lose, is_lock, lock_msg,stock_plate,spread_rate_price)
     values (#{id,jdbcType=INTEGER}, #{positionType,jdbcType=INTEGER}, #{positionSn,jdbcType=VARCHAR}, 

--
Gitblit v1.9.3