From fa8a94210436f609def68e8d244609af75e09290 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Sun, 01 Mar 2026 18:40:30 +0800
Subject: [PATCH] 合约

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java         |   27 +++++++++++--
 trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java |   15 -------
 trading-order-bean/src/main/java/com/yami/trading/bean/model/RealNameAuthRecord.java                      |    7 +++
 trading-order-admin/src/main/java/com/yami/trading/api/model/ApplyRealNameAuthModel.java                  |   10 ++++-
 trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java           |   18 ++++++++-
 trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java                 |    2 
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java    |    4 +-
 trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java                       |    5 ++
 trading-order-admin/src/main/resources/config/system.properties                                           |    4 +-
 trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java      |    2 
 10 files changed, 65 insertions(+), 29 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java
index d2f2e69..e9809a6 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/contract/ContractOrderController.java
@@ -136,21 +136,6 @@
         return Result.succeed("success");
     }
 
-    @GetMapping("addDepositOpen.action")
-    @ApiOperation(value = "追加保证金")
-    public Result<String> addDepositOpen(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal addDepositOpen) throws IOException {
-        try {
-            ContractOrder order = this.contractOrderService.findByOrderNo(orderNo);
-            if (order != null && order.getState().equals(ContractOrder.STATE_CREATED)) {
-                order.setAddDepositOpen(order.getAddDepositOpen().add(addDepositOpen));
-                contractOrderService.update(order);
-            }
-        } catch (Exception e) {
-            log.error("追加保证金异常", e);
-            throw new YamiShopBindException("追加保证金异常");
-        }
-        return Result.succeed("success");
-    }
 
     /**
      * 新线程处理,直接拿到订单锁处理完成后退出
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
index bb144e5..23c1eed 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractApplyOrderController.java
@@ -298,8 +298,8 @@
         order.setOrderPriceType(openAction.getPrice_type());
         order.setState(ContractApplyOrder.STATE_SUBMITTED);
         order.setMoney(openAction.getAmount());
-        order.setLocationType(openAction.getLocationType());
-
+        //order.setLocationType(openAction.getLocationType());
+        order.setLocationType(0);
         contractApplyOrderService.saveCreate(order);
     }
 
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
index aafba17..293895d 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiContractOrderController.java
@@ -3,25 +3,26 @@
 import com.yami.trading.bean.contract.domain.ContractOrder;
 import com.yami.trading.bean.data.domain.Realtime;
 import com.yami.trading.bean.item.domain.Item;
+import com.yami.trading.bean.model.Wallet;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.YamiShopBindException;
 import com.yami.trading.common.lang.LangUtils;
 import com.yami.trading.common.util.StringUtils;
 import com.yami.trading.common.util.ThreadUtils;
 import com.yami.trading.security.common.util.SecurityUtils;
+import com.yami.trading.service.WalletService;
 import com.yami.trading.service.contract.ContractLockService;
 import com.yami.trading.service.contract.ContractOrderService;
 import com.yami.trading.service.data.DataService;
 import com.yami.trading.service.item.ItemService;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-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;
+import javax.validation.constraints.NotBlank;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -44,6 +45,9 @@
     @Autowired
     private ContractLockService contractLockService;
 
+    @Autowired
+    WalletService walletService;
+
     private final String action = "/api/contractOrder!";
 
     /**
@@ -65,6 +69,21 @@
         return Result.succeed("平仓成功");
     }
 
+    @GetMapping(action + "addDepositOpen.action")
+    @ApiOperation(value = "追加保证金")
+    public Result<String> addDepositOpen(@RequestParam @NotBlank String orderNo, @RequestParam @NotBlank BigDecimal addDepositOpen) {
+        try {
+            ContractOrder order = this.contractOrderService.findByOrderNo(orderNo);
+            if (order != null && order.getState().equals(ContractOrder.STATE_SUBMITTED)) {
+                contractOrderService.addDepositOpen(order, addDepositOpen);
+            }
+        } catch (Exception e) {
+            log.error("追加保证金异常", e);
+            throw new YamiShopBindException("追加保证金异常");
+        }
+        return Result.succeed("success");
+    }
+
     /**
      * 一键平仓
      */
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/model/ApplyRealNameAuthModel.java b/trading-order-admin/src/main/java/com/yami/trading/api/model/ApplyRealNameAuthModel.java
index d1ba753..414e12b 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/model/ApplyRealNameAuthModel.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/model/ApplyRealNameAuthModel.java
@@ -35,17 +35,23 @@
     @NotBlank
     @ApiModelProperty("实名姓名")
     private String name;
+
+    @ApiModelProperty("firstname")
+    private String firstName;
+
+    @ApiModelProperty("生日")
+    private String birth;
     /**
      * 证件正面照
      */
     @ApiModelProperty("证件正面照")
-    @NotBlank
+    //@NotBlank
     private String idFrontImg;
     /**
      * 证件背面照
      */
     @ApiModelProperty("证件背面照")
-    @NotBlank
+    //@NotBlank
     private String idBackImg;
 
 
diff --git a/trading-order-admin/src/main/resources/config/system.properties b/trading-order-admin/src/main/resources/config/system.properties
index 6163efe..517e62f 100644
--- a/trading-order-admin/src/main/resources/config/system.properties
+++ b/trading-order-admin/src/main/resources/config/system.properties
@@ -3,11 +3,11 @@
 admin_url=https://127.0.0.1:8080/admin
 web_url=http://127.0.0.1:8080/wap/
 
-images_http=https://jysimg.wecnsy.com/
+images_http=https://blueimg.shenliankeji.top/
 loca.images.dir=/www/wwwroot/img
 admin_rest_url=https://enjdhdg.site/api
 
-api_http=https://jysapi.wecnsy.com/
+api_http=https://blueapi.shenliankeji.top/
 
 
 email.host=smtp.gmail.com
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java b/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
index 32edd09..0121f5b 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
@@ -72,7 +72,7 @@
     /**
      * 追加保证金
      */
-    private BigDecimal addDepositOpen ;
+    private BigDecimal addDepositOpen = BigDecimal.ZERO;
     /**
      * 收益
      */
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/model/RealNameAuthRecord.java b/trading-order-bean/src/main/java/com/yami/trading/bean/model/RealNameAuthRecord.java
index 0868cbd..c3d7884 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/model/RealNameAuthRecord.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/model/RealNameAuthRecord.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.yami.trading.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -34,6 +35,12 @@
      * 实名姓名
      */
     private String name;
+
+    @ApiModelProperty("firstname")
+    private String firstName;
+
+    @ApiModelProperty("生日")
+    private String birth;
     /**
      * 证件正面照
      */
diff --git a/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java b/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
index bbc890a..23db7ea 100644
--- a/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
+++ b/trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
@@ -121,6 +121,11 @@
 	 * 永续合约建仓
 	 */
 	public static final String MONEYLOG_CONTENT_CONTRACT_OPEN = "contract_open";
+
+	/**
+	 * 永续合约追加保证金
+	 */
+	public static final String MONEYLOG_CONTENT_CONTRACT_ADD = "contract_add";
 	/**
 	 * 交割合约建仓
 	 */
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
index 4a53390..03b1e32 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractApplyOrderService.java
@@ -211,7 +211,7 @@
 
         List<ItemLeverageDTO> levers = itemLeverageService.findByItemId(item.getUuid());
         log.info("{}  --- order --- {}  --- {}", order.getSymbol(), item.getUuid(), levers.size());
-        checkLever(order, levers);
+        //checkLever(order, levers);
 
         order.setOrderNo(DateUtil.getToday("yyMMddHHmmss") + RandomUtil.getRandomNum(8));
 
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java
index a895cd0..69e6e2d 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/contract/ContractOrderService.java
@@ -817,8 +817,8 @@
         map.put("amount", order.getVolume().multiply(order.getUnitAmount()));
         map.put("amount_open", order.getVolumeOpen().multiply(order.getUnitAmount()));
         map.put("fee", order.getFee());
-        map.put("deposit", order.getDeposit());
-        map.put("deposit_open", order.getDepositOpen());
+        map.put("deposit", order.getDeposit().add(order.getAddDepositOpen()));
+        map.put("deposit_open", order.getDepositOpen().add(order.getAddDepositOpen()));
         map.put("change_ratio", order.getChangeRatio().setScale(2, RoundingMode.HALF_UP));
 
         if(order.getProfit()!=null){
@@ -859,4 +859,18 @@
             RedisUtil.del(ContractRedisKeys.CONTRACT_ASSETS_PROFIT_PARTY_ID + partyId);
         }
     }
+
+
+    public void addDepositOpen(ContractOrder order, BigDecimal addDepositOpen) {
+        Wallet wallet = walletService.findByUserId(order.getPartyId());
+        BigDecimal amountBefore = wallet.getMoney();
+        if (amountBefore.compareTo(addDepositOpen) < 0) {
+            throw new YamiShopBindException("not sufficient funds");
+        }
+        order.setAddDepositOpen(order.getAddDepositOpen().add(addDepositOpen));
+        walletService.updateMoney(order.getSymbol(), order.getPartyId(), BigDecimal.ZERO.subtract(addDepositOpen), BigDecimal.ZERO
+                , Constants.MONEYLOG_CATEGORY_CONTRACT, Constants.WALLET_USDT, Constants.MONEYLOG_CONTENT_CONTRACT_ADD, "委托单追加保证金,订单号[" + order.getOrderNo() + "]"
+        );
+        update(order);
+    }
 }

--
Gitblit v1.9.3