wujiefeng 1 год назад
Родитель
Сommit
a5bd41121d

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/model/pay/ChinaumsSenselessSrcReserve.java

@@ -15,4 +15,6 @@ public class ChinaumsSenselessSrcReserve {
     private String orderNo;
 
     private String refundOrderNo;
+
+    private String prefix;
 }

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/ChinaumsSenselessPayService.java

@@ -317,7 +317,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         shareOrder.setShareOrderType(ShareOrderType.Pay);
         shareOrder.setShareOrderNo(shareOrderNo);
         shareOrderDao.save(shareOrder);
-        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo)));
+        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo, "prefix", projectConf.getOrderNoPrefix())));
         payProductParameter.setMeta(BeanUtil.bean2Map(request));
 
         stopWatch.stop();
@@ -397,7 +397,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         shareOrder.setShareOrderNo(shareOrderNo);
         shareOrder.setOriShareOrderNo(shareOrder.getShareOrderNo());
         shareOrderDao.save(refundShareOrder);
-        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo, "refundOrderNo", refundOrderNo)));
+        request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo, "prefix", projectConf.getOrderNoPrefix())));
         payProductParameter.setMeta(BeanUtil.bean2Map(request));
         com.github.microservice.pay.client.ret.ResultContent<Object> refundResultContent = senselessPayService.refund(payProductParameter);
         if (!refundResultContent.getState().equals(ResultState.Success)) {

+ 9 - 9
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/pay/SettleService.java

@@ -50,15 +50,15 @@ public class SettleService {
         queryModel.setEndTime(endTime);
         queryModel.setGeneralLedgerId(new String[]{waitSettleAccount.getLedgerId()});
         //过滤出对应支付渠道的账单
-//        queryModel.setFilter(Map.of("meta.paymentType", paymentType, "meta.settleStatus", SettleStatus.WaitSettle));
-        queryModel.setFilter(Map.of("meta.paymentType", paymentType, "$or", Arrays.asList(
-                new Document()
-                        .append("meta.settleStatus", new Document()
-                                .append("$exists", false)
-                        ),
-                new Document()
-                        .append("meta.settleStatus", "WaitSettle")
-        )));
+        queryModel.setFilter(Map.of("meta.paymentType", paymentType, "meta.settleStatus", SettleStatus.WaitSettle));
+//        queryModel.setFilter(Map.of("meta.paymentType", paymentType, "$or", Arrays.asList(
+//                new Document()
+//                            .append("meta.settleStatus", new Document()
+//                                .append("$exists", false)
+//                        ),
+//                new Document()
+//                        .append("meta.settleStatus", "WaitSettle")
+//        )));
         ResultContent<TransactionLogAggregateRetModel> aggregateResult = transactionLogService.aggregate(queryModel);
         if (!aggregateResult.getState().equals(ResultState.Success)){
             log.info("资金结算:查询待结算账单失败");

+ 9 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/stream/ChinaumsSenselessPayStream.java

@@ -43,13 +43,20 @@ public class ChinaumsSenselessPayStream extends StreamConsumer<ChinaSenselessPay
         String srcReserveStr = chinaSenselessPayRet.getSrcReverse();
         ChinaumsSenselessSrcReserve srcReserve = JsonUtil.toObject(srcReserveStr, ChinaumsSenselessSrcReserve.class);
         String merOrderId = srcReserve.getOrderNo();
-        OrderNoType orderNoType = orderNoInfoService.getOrderNoType(merOrderId);
         String status = chinaSenselessPayRet.getStatus();
+        String refundOrderId = chinaSenselessPayRet.getRefundOrderId();
+
         UnionFrictionlessPayFinishModel unionFrictionlessPayFinishModel = new UnionFrictionlessPayFinishModel();
+        if (refundOrderId.startsWith(srcReserve.getPrefix())){
+            String refundOrderNo = refundOrderId.substring(srcReserve.getPrefix().length());
+            unionFrictionlessPayFinishModel.setRefundOrderId(refundOrderNo);
+        }
+
         unionFrictionlessPayFinishModel.setMerOrderId(merOrderId);
         unionFrictionlessPayFinishModel.setStatus(status);
         unionFrictionlessPayFinishModel.setTargetOrderId(chinaSenselessPayRet.getTargetOrderId());
-        unionFrictionlessPayFinishModel.setRefundOrderId(srcReserve.getRefundOrderNo());
+
+        OrderNoType orderNoType = orderNoInfoService.getOrderNoType(merOrderId);
         if (orderNoType.equals(OrderNoType.Pay)){
 
             if (status.equals("TRADE_SUCCESS")){