From b967bac24b2fd662ac3b8826700fb76c26690aec Mon Sep 17 00:00:00 2001
From: zyy3 <zyy3@zy.com>
Date: Tue, 02 Dec 2025 00:27:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
index 0a16c09..182c375 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/exchange/impl/ExchangeApplyOrderServiceImpl.java
@@ -164,8 +164,7 @@
             log.setContentType(type2 + Constants.MONEYLOG_CONTENT_CANCEL);
             moneyLogService.save(log);
         }
-        double sub = Arith.sub(realValue, order.getFee());
-        double amount = Arith.mul(sub, orderPrice);
+        double amount = Arith.mul(realValue, orderPrice) + order.getFee();
         Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
         double amountBefore = wallet.getMoney().doubleValue();
         String type = itemService.findBySymbol(order.getSymbol()).getType();
@@ -177,7 +176,7 @@
         String type2 = Constants.MONEYLOG_MAP_TYPE.get(type);
         log.setAmountBefore(new BigDecimal(amountBefore));
         log.setAmount(new BigDecimal(amount));
-        log.setAmountAfter(wallet.getMoney().add(BigDecimal.valueOf(amount)));
+        log.setAmountAfter(BigDecimal.valueOf(amountBefore + amount));
         log.setLog(name + type2 + "现货交易卖出委托单成交,订单号[" + order.getOrderNo() + "]");
         log.setUserId(order.getPartyId());
         log.setWalletType(Constants.WALLET);
@@ -186,7 +185,7 @@
         moneyLogService.save(log);
         order.setCloseTime(new Date());
         order.setClosePrice(orderPrice);
-        order.setWalletFee(Arith.mul(order.getFee(), orderPrice));
+        order.setWalletFee(order.getFee());
         order.setState(ExchangeApplyOrder.STATE_CREATED);
         updateById(order);
     }
@@ -217,6 +216,17 @@
         lambdaQueryWrapper.orderByDesc(ExchangeApplyOrder::getCreateTime);
         List<ExchangeApplyOrder> list = list(lambdaQueryWrapper);
         return getSettleList(list);
+    }
+
+    @Override
+    public List<ExchangeSymbolDto> querySpotTradPosition(String userId, String symbol) {
+        LambdaQueryWrapper<ExchangeApplyOrder> lambdaQueryWrapper = Wrappers.<ExchangeApplyOrder>query().lambda();
+        lambdaQueryWrapper.eq(ExchangeApplyOrder::getPartyId, userId);
+        lambdaQueryWrapper.eq(ExchangeApplyOrder::getSymbol, symbol);
+        lambdaQueryWrapper.eq(ExchangeApplyOrder::getState, ExchangeApplyOrder.STATE_CREATED);
+        lambdaQueryWrapper.orderByDesc(ExchangeApplyOrder::getCreateTime);
+        List<ExchangeApplyOrder> list = list(lambdaQueryWrapper);
+        return getDataList(list);
     }
 
     public List<ExchangeSymbolDto> getSettleList(List<ExchangeApplyOrder> dbList) {
@@ -509,8 +519,8 @@
 
     @Override
     public Page<ExchangeApplyOrderDto> listPage(Page page, String rolename, String userName, String orderNo, String state,
-                                                String offset, String symbolType, String userCode, String symbol, List<String> userIds) {
-        return baseMapper.listPage(page, rolename, userName, orderNo, state, offset, symbolType, userCode, symbol, userIds);
+                                                String offset, String symbolType, String userCode, String symbol, String usernameParent, List<String> userIds) {
+        return baseMapper.listPage(page, rolename, userName, orderNo, state, offset, symbolType, userCode, symbol, usernameParent, userIds);
     }
 
     @Override
@@ -626,6 +636,9 @@
     public void saveSpotTradOpen(ExchangeApplyOrder order) {
         order.setOrderNo(DateUtil.getToday("yyMMddHHmmss") + RandomUtil.getRandomNum(8));
         double fee = Arith.mul(order.getVolume(), sysparaService.find("exchange_apply_order_buy_fee").getDouble());
+        if (order.getVolume() < 300) {
+            fee = 1;
+        }
         Wallet wallet = this.walletService.saveWalletByPartyId(order.getPartyId());
         String symbol = order.getSymbol();
         Item item = itemService.findBySymbol(symbol);
@@ -675,12 +688,15 @@
         order.setOrderNo(DateUtil.getToday("yyMMddHHmmss") + RandomUtil.getRandomNum(8));
         order.setCreateTime(new Date());
         order.setFee(Arith.mul(order.getVolume(), sysparaService.find("exchange_apply_order_sell_fee").getDouble()));
+        if (order.getPrice() * order.getSymbolValue() < 300) {
+            order.setFee(1);
+        }
         Item item = itemService.findBySymbol(order.getSymbol());
         // 休市期间,不让下市价卖出单
         if (ExchangeApplyOrder.ORDER_PRICE_TYPE_OPPONENT.equals(order.getOrderPriceType())) {
             boolean isOpen = MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType());
             if (!isOpen) {
-                throw new YamiShopBindException("The current stock market is closed");
+                //throw new YamiShopBindException("The current stock market is closed");
             }
         }
         WalletExtend walletExtend = walletService.saveExtendByPara(order.getPartyId(), order.getSymbol());

--
Gitblit v1.9.3