xucaiqin 2 viikkoa sitten
vanhempi
commit
f028a1e40c

+ 38 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/task/TradeOrderTask.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.LogisticsOrderV1Enum;
+import com.sckw.core.utils.DateUtils;
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.order.dao.KwoTradeOrderGoodsMapper;
 import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.dao.KwoTradeOrderUnitMapper;
@@ -25,6 +27,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -97,7 +100,8 @@ public class TradeOrderTask {
                         walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
                         walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
                         log.info("结算 {}", JSONObject.toJSONString(walletFreeze));
-                        paymentDubboService.dealMoney(walletFreeze);
+                        BaseResult<Boolean> booleanBaseResult = paymentDubboService.dealMoney(walletFreeze);
+                        log.info("结算结果:{}", JSONObject.toJSONString(booleanBaseResult));
 
                         kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
                         kwoTradeOrderMapper.updateById(kwoTradeOrder);
@@ -109,6 +113,38 @@ public class TradeOrderTask {
             }
 
         }
-
+        List<KwoTradeOrder> kwoTradeOrders2 = kwoTradeOrderMapper.selectList(new LambdaQueryWrapper<KwoTradeOrder>()
+                .eq(KwoTradeOrder::getStatus, List.of(TradeOrderStatusEnum.AUDIT.getCode(), TradeOrderStatusEnum.ING.getCode()))
+                .lt(KwoTradeOrder::getEndTime, DateUtils.getEndOfDay(new Date()))
+                .eq(KwoTradeOrder::getDelFlag, Global.UN_DELETED)
+        );
+        if (CollUtil.isNotEmpty(kwoTradeOrders2)) {
+            threadPoolExecutor.execute(() -> {
+                Map<Integer, List<KwoTradeOrder>> collect = kwoTradeOrders2.stream().collect(Collectors.groupingBy(KwoTradeOrder::getStatus));
+                for (Map.Entry<Integer, List<KwoTradeOrder>> one : collect.entrySet()) {
+                    List<KwoTradeOrder> value = one.getValue();
+                    if (CollUtil.isEmpty(value)) {
+                        continue;
+                    }
+                    if (Objects.equals(one.getKey(), TradeOrderStatusEnum.AUDIT.getCode())) {
+                        for (KwoTradeOrder kwoTradeOrder : value) {
+                            WalletFreeze walletFreeze = new WalletFreeze();
+                            walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
+                            walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
+                            BaseResult<Boolean> booleanBaseResult = paymentDubboService.unfreezeMoney(walletFreeze);
+                            log.info("解冻结果:{}", JSONObject.toJSONString(booleanBaseResult));
+                            kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
+                            kwoTradeOrderMapper.updateById(kwoTradeOrder);
+                        }
+                    }
+                    if (Objects.equals(one.getKey(), TradeOrderStatusEnum.ING.getCode())) {
+                        for (KwoTradeOrder kwoTradeOrder : value) {
+                            kwoTradeOrder.setStatus(TradeOrderStatusEnum.DEAL.getCode());
+                            kwoTradeOrderMapper.updateById(kwoTradeOrder);
+                        }
+                    }
+                }
+            });
+        }
     }
 }