Sfoglia il codice sorgente

解决用户新增时,同步到本地时的cardId和cardNo重新生成的问题

xiari 1 anno fa
parent
commit
146158be0f

+ 4 - 0
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteUserAccountBo.java

@@ -111,4 +111,8 @@ public class RemoteUserAccountBo implements Serializable {
      */
     @NotBlank(message = "账户状态,见sys_normal_disable字典类型不能为空", groups = { AddGroup.class, EditGroup.class })
     private String status;
+
+    private Long cardId;
+
+    private Long cardNo;
 }

+ 5 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/accouunt/UserAccountBusiness.java

@@ -45,7 +45,11 @@ public class UserAccountBusiness {
             bagService.initAccountBag(bo.getUserId());
             //钱包表初始化成功,同时发虚拟卡
             PtCardBo cardBo = BeanUtil.copyProperties(bo, PtCardBo.class);
-            return cardBusiness.openVirtualCard(cardBo);
+            R<String> rs = cardBusiness.openVirtualCard(cardBo);
+            //--------- 设置 流水号和主键id set 到 cardBo
+            bo.setCardId(cardBo.getCardId());
+            bo.setCardNo(cardBo.getCardNo());
+            return rs;
         }
         return R.fail(MessageFormat.format("[一卡通开户]-[失败]-[写账户表失败,开户Id:{0}]", bo.getUserId()));
     }

+ 6 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/card/CardBusiness.java

@@ -59,11 +59,16 @@ public class CardBusiness {
             PtCardBo addBo = BeanUtil.copyProperties(cardBo, PtCardBo.class);
             addBo.setMainCard("Y");
             addBo.setStatus(CardStatusEnum.NORMAL.code().toString());
-            addBo.setCardNo(cardNoBusiness.getCardNo());
+            if(addBo.getCardNo()==null){
+                addBo.setCardNo(cardNoBusiness.getCardNo());
+            }
             addBo.setFactoryId(0L);
             addBo.setChangeTime(DateUtil.date());
 
             if(ptCardService.insertByBo(addBo)){
+                //--------- 设置 流水号和主键id set 到 cardBo
+                cardBo.setCardId(addBo.getCardId());
+                cardBo.setCardNo(addBo.getCardNo());
                 //写卡片表成功,检查一下是否还需要初始化钱包表
                 PtBagBo bagBo = new PtBagBo();
                 bagBo.setUserId(cardBo.getUserId());

+ 9 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/domain/bo/PtUserAccountBo.java

@@ -11,6 +11,8 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
+
+import java.io.Serial;
 import java.util.Date;
 import java.util.List;
 
@@ -30,6 +32,8 @@ import org.dromara.common.tenant.core.TenantEntity;
 @AutoMapper(target = PtUserAccount.class, reverseConvertGenerate = false)
 public class PtUserAccountBo extends TenantEntity {
 
+    @Serial
+    private static final long serialVersionUID = 7820605694495403719L;
     /**
      * 账户Id,主键
      */
@@ -213,6 +217,11 @@ public class PtUserAccountBo extends TenantEntity {
      */
     private List<Long> excludeDeptsAndChildren;
 
+
+    private Long cardId;
+
+    private Long cardNo;
+
     // 构建器类
     public static class Builder {
         private Long userId;

+ 4 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/dubbo/RemoteUserAccountServiceImpl.java

@@ -50,7 +50,10 @@ public class RemoteUserAccountServiceImpl implements RemoteUserAccountService {
     @Override
     public R<String> openAccount(RemoteUserAccountBo bo) {
         PtUserAccountBo ptUserAccountBo = BeanUtil.copyProperties(bo, PtUserAccountBo.class);
-        return userAccountBusiness.openAccount(ptUserAccountBo);
+        R<String> rs = userAccountBusiness.openAccount(ptUserAccountBo);
+        bo.setCardId(ptUserAccountBo.getCardId());
+        bo.setCardNo(ptUserAccountBo.getCardNo());
+        return rs;
     }
 
     @Override

+ 4 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@@ -167,6 +167,10 @@ public class SysUserBo extends TenantEntity {
      */
     private String excludeUserIds;
 
+    private Long cardId;
+
+    private Long cardNo;
+
     public SysUserBo(Long userId) {
         this.userId = userId;
     }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -372,6 +372,8 @@ public class SysUserServiceImpl implements ISysUserService {
                 remoteUserAccountBo.setAccountStatus("1");
                 R<String> result = remoteUserAccountService.openAccount(remoteUserAccountBo);
                 if (result.getCode() == HttpStatus.SUCCESS) {
+                    user.setCardId(remoteUserAccountBo.getCardId());
+                    user.setCardNo(remoteUserAccountBo.getCardNo());
                     return rows;
                 } else {
                     throw new UserException(result.getMsg());