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

+ 4 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/pay/ChinaumsSenselessUserSignInfoDao.java

@@ -1,12 +1,15 @@
 package com.zhongshu.card.server.core.dao.pay;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.client.type.ContractState;
 import com.zhongshu.card.server.core.dao.pay.extend.ChinaumsSenselessUserSignInfoDaoExtend;
 import com.zhongshu.card.server.core.domain.pay.ChinaumsSenselessUserSignInfo;
 
 public interface ChinaumsSenselessUserSignInfoDao extends MongoDao<ChinaumsSenselessUserSignInfo>, ChinaumsSenselessUserSignInfoDaoExtend {
 
-    ChinaumsSenselessUserSignInfo findTopByUserIdAndMid(String userId, String mid);
+    ChinaumsSenselessUserSignInfo findTopByUserIdAndMidAndExpire(String userId, String mid, boolean expire);
 
     ChinaumsSenselessUserSignInfo findTopByContractNo(String contractNo);
+
+    ChinaumsSenselessUserSignInfo findTopByUserIdAndMidAndContractStateNot(String userId, String mid, ContractState contractState);
 }

+ 5 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/pay/ChinaumsSenselessUserSignInfo.java

@@ -84,4 +84,9 @@ public class ChinaumsSenselessUserSignInfo extends SuperEntity {
      * 云闪付小程序path
      */
     private String cqpMpPath;
+
+    /**
+     * 失效标志
+     */
+    private Boolean expire;
 }

+ 12 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/pay/WithdrawOrder.java

@@ -0,0 +1,12 @@
+package com.zhongshu.card.server.core.domain.pay;
+
+import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+@Data
+@Document
+public class WithdrawOrder extends SuperEntity {
+
+
+}

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

@@ -86,7 +86,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         ChinaumsSenselessConf conf = (ChinaumsSenselessConf) accountModelResultContent.getContent().getConf();
         String mid = conf.getMchId();
 
-        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMid(userId, mid);
+        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMidAndExpire(userId, mid, false);
         param.setContractNo(CommonUtil.UUID());
 
         if (userSignInfo!=null && userSignInfo.getContractState()!=null){
@@ -98,12 +98,14 @@ public class ChinaumsSenselessPayService extends SuperService {
                     return signApply(param, accountName, userId, mid);
                 }
                 case RESCISSION ->{
-                    chinaumsSenselessUserSignInfoDao.deleteById(userSignInfo.getId());
+                    userSignInfo.setExpire(true);
+                    chinaumsSenselessUserSignInfoDao.save(userSignInfo);
                     return signApply(param, accountName, userId, mid);
                 }
                 case APPLY -> {
                     if (System.currentTimeMillis() >= userSignInfo.getExpireTime()){
-                        chinaumsSenselessUserSignInfoDao.deleteById(userSignInfo.getId());
+                        userSignInfo.setExpire(true);
+                        chinaumsSenselessUserSignInfoDao.save(userSignInfo);
                         ChinaumsSenselessUserSignInfo newUserSignInfo = new ChinaumsSenselessUserSignInfo();
                         newUserSignInfo.setContractState(ContractState.UNSIGNED);
                         return ResultContent.buildContent(newUserSignInfo);
@@ -176,7 +178,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         ChinaumsSenselessConf conf = (ChinaumsSenselessConf) accountModelResultContent.getContent().getConf();
         String mid = conf.getMchId();
 
-        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMid(userId, mid);
+        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMidAndExpire(userId, mid, false);
         if (userSignInfo==null){
             return ResultContent.buildFail("用户与该商户未签约");
         }
@@ -199,7 +201,7 @@ public class ChinaumsSenselessPayService extends SuperService {
                 Map resultMap = JsonUtil.toObject(json, Map.class);
                 String errMsg = (String) resultMap.get("errMsg");
                 if ("success".equals(errMsg)){
-                    userSignInfo.setContractState(ContractState.DELETING_CONTRACT);
+                    userSignInfo.setContractState(ContractState.RESCISSION);
                     chinaumsSenselessUserSignInfoDao.save(userSignInfo);
                     return ResultContent.buildSuccess();
                 }
@@ -231,7 +233,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         ChinaumsSenselessConf conf = (ChinaumsSenselessConf) accountModelResultContent.getContent().getConf();
         String mid = conf.getMchId();
 
-        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMid(userId, mid);
+        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMidAndExpire(userId, mid, false);
         if (userSignInfo==null){
             ChinaumsSenselessUserSignInfoModel model = new ChinaumsSenselessUserSignInfoModel();
             model.setUserId(userId);
@@ -256,7 +258,7 @@ public class ChinaumsSenselessPayService extends SuperService {
         String mid = conf.getMchId();
 
         //获取用户签约协议号
-        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMid(userId, mid);
+        ChinaumsSenselessUserSignInfo userSignInfo = chinaumsSenselessUserSignInfoDao.findTopByUserIdAndMidAndExpire(userId, mid, false);
         if (userSignInfo==null || !userSignInfo.getContractState().equals(ContractState.SIGNED)){
             return ResultContent.buildFail("用户未签约或状态未知");
         }