Explorar o código

钱包开户及增加返回的字段

xucaiqin %!s(int64=2) %!d(string=hai) anos
pai
achega
cf961034c8

+ 22 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/WalletController.java

@@ -23,6 +23,16 @@ public class WalletController {
     @Resource
     @Resource
     private WalletService walletService;
     private WalletService walletService;
 
 
+    /**
+     * 开户
+     *
+     * @return
+     */
+    @PostMapping("createUser")
+    public HttpResult createUser(CreateUserReq createUserReq) {
+        return HttpResult.ok(walletService.createUser(createUserReq));
+    }
+
     /**
     /**
      * 钱包总览信息
      * 钱包总览信息
      *
      *
@@ -214,6 +224,7 @@ public class WalletController {
     public HttpResult prePayAppendCheck(@RequestBody @Valid AppendPayCheck appendPayCheck) {
     public HttpResult prePayAppendCheck(@RequestBody @Valid AppendPayCheck appendPayCheck) {
         return HttpResult.ok(walletService.appendCheck(appendPayCheck));
         return HttpResult.ok(walletService.appendCheck(appendPayCheck));
     }
     }
+
     /**
     /**
      * 预付追加
      * 预付追加
      *
      *
@@ -258,4 +269,15 @@ public class WalletController {
     public HttpResult refund(@RequestBody @Valid RefundReq refundReq) {
     public HttpResult refund(@RequestBody @Valid RefundReq refundReq) {
         return HttpResult.ok(walletService.launchRefund(refundReq));
         return HttpResult.ok(walletService.launchRefund(refundReq));
     }
     }
+
+    /**
+     * 驳回退款
+     *
+     * @param refundReq
+     * @return
+     */
+    @PostMapping("back")
+    public HttpResult back(@RequestBody @Valid RefundBackReq refundReq) {
+        return HttpResult.ok(walletService.backRefund(refundReq));
+    }
 }
 }

+ 5 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/dto/WalletInfoDto.java

@@ -48,5 +48,10 @@ public class WalletInfoDto implements MoneyChange, Serializable {
      */
      */
     private BigDecimal money;
     private BigDecimal money;
 
 
+    /**
+     * 退款金额
+     */
+    private BigDecimal refundMoney;
+
 
 
 }
 }

+ 4 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/PrePayWalletVo.java

@@ -35,6 +35,10 @@ public class PrePayWalletVo implements Serializable {
 
 
     @JSONField(name = "channel")
     @JSONField(name = "channel")
     private String channel;
     private String channel;
+    /**
+     * 字典渠道
+     */
+    private String channelDict;
 
 
     @JSONField(name = "channel_label")
     @JSONField(name = "channel_label")
     private String channelLabel;
     private String channelLabel;

+ 16 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/req/CreateUserReq.java

@@ -0,0 +1,16 @@
+package com.sckw.payment.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author xucaiqin
+ * @date 2023-09-18 16:19:31
+ */
+@Getter
+@Setter
+public class CreateUserReq {
+    @NotBlank(message = "支付渠道不能为空")
+    private String channel;
+}

+ 26 - 0
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/model/vo/req/RefundBackReq.java

@@ -0,0 +1,26 @@
+package com.sckw.payment.model.vo.req;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 退款驳回
+ *
+ * @author xucaiqin
+ * @date 2023-08-29 09:14:04
+ */
+@Getter
+@Setter
+public class RefundBackReq {
+    @NotBlank(message = "当前企业不能为空")
+    private String uid;
+    /**
+     * 支付通道字典值
+     */
+    @NotBlank(message = "支付通道不能为空")
+    private String channel;
+
+    @NotBlank(message = "合作企业不能为空")
+    private String filter;
+}

+ 64 - 4
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/WalletService.java

@@ -109,7 +109,7 @@ public class WalletService {
             Long entId = LoginUserHolder.getEntId();
             Long entId = LoginUserHolder.getEntId();
             List<FindEntCooperateResVo> allCooperateEnt = remoteManageService.findAllCooperateEnt(entId);
             List<FindEntCooperateResVo> allCooperateEnt = remoteManageService.findAllCooperateEnt(entId);
             if (!CollectionUtils.isEmpty(allCooperateEnt)) {
             if (!CollectionUtils.isEmpty(allCooperateEnt)) {
-                List<Long> collect = allCooperateEnt.stream().filter(a -> StringUtils.contains(a.getEntName(), entName)).map(FindEntCooperateResVo::getEntId).collect(Collectors.toList());
+                List<Long> collect = allCooperateEnt.stream().filter(a -> StringUtils.contains(a.getEntName(), entName)).map(FindEntCooperateResVo::getEntId).toList();
                 List<String> res = new ArrayList<>();
                 List<String> res = new ArrayList<>();
                 for (Long aLong : collect) {
                 for (Long aLong : collect) {
                     String relation = walletRelationService.getRelation(aLong);
                     String relation = walletRelationService.getRelation(aLong);
@@ -163,9 +163,7 @@ public class WalletService {
         } else {
         } else {
             wrapper.eq(KwpWalletRefund::getUid, prePayWallet.getUid()).eq(KwpWalletRefund::getFilter, prePayWallet.getFilter());
             wrapper.eq(KwpWalletRefund::getUid, prePayWallet.getUid()).eq(KwpWalletRefund::getFilter, prePayWallet.getFilter());
         }
         }
-        wrapper.eq(KwpWalletRefund::getChannel, prePayWallet.getChannel())
-                .orderByDesc(KwpWalletRefund::getCreateTime)
-                .last("limit 1");
+        wrapper.eq(KwpWalletRefund::getChannel, prePayWallet.getChannel()).orderByDesc(KwpWalletRefund::getCreateTime).last("limit 1");
         KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
         KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
         if (Objects.nonNull(kwpWalletRefund)) {
         if (Objects.nonNull(kwpWalletRefund)) {
             prePayWalletVo.setRefundApMoney(df.format(kwpWalletRefund.getActualMoney()));
             prePayWalletVo.setRefundApMoney(df.format(kwpWalletRefund.getActualMoney()));
@@ -703,6 +701,8 @@ public class WalletService {
                 for (PrePayWallet row : data.getRows()) {
                 for (PrePayWallet row : data.getRows()) {
                     prePayWalletVo = new PrePayWalletVo();
                     prePayWalletVo = new PrePayWalletVo();
                     BeanUtils.copyProperties(row, prePayWalletVo);
                     BeanUtils.copyProperties(row, prePayWalletVo);
+                    ChannelEnum byChannel = ChannelEnum.getByChannel(row.getChannel());
+                    prePayWalletVo.setChannelDict(Objects.nonNull(byChannel) ? byChannel.getValue() : "");
                     prePayWalletVo.setApMoney(dfMoney(row.getApMoney()));
                     prePayWalletVo.setApMoney(dfMoney(row.getApMoney()));
                     prePayWalletVo.setUidName(getFirmName(row.getUid()));
                     prePayWalletVo.setUidName(getFirmName(row.getUid()));
                     prePayWalletVo.setUidEnt(getEnt(row.getUid()));
                     prePayWalletVo.setUidEnt(getEnt(row.getUid()));
@@ -808,6 +808,8 @@ public class WalletService {
                 for (PrePayWallet row : data.getRows()) {
                 for (PrePayWallet row : data.getRows()) {
                     prePayWalletVo = new PrePayWalletVo();
                     prePayWalletVo = new PrePayWalletVo();
                     BeanUtils.copyProperties(row, prePayWalletVo);
                     BeanUtils.copyProperties(row, prePayWalletVo);
+                    ChannelEnum byChannel = ChannelEnum.getByChannel(row.getChannel());
+                    prePayWalletVo.setChannelDict(Objects.nonNull(byChannel) ? byChannel.getValue() : "");
                     prePayWalletVo.setApMoney(dfMoney(row.getApMoney()));
                     prePayWalletVo.setApMoney(dfMoney(row.getApMoney()));
                     prePayWalletVo.setUidName(getFirmName(row.getUid()));
                     prePayWalletVo.setUidName(getFirmName(row.getUid()));
                     prePayWalletVo.setUidEnt(getEnt(row.getUid()));
                     prePayWalletVo.setUidEnt(getEnt(row.getUid()));
@@ -1047,6 +1049,13 @@ public class WalletService {
      * @return
      * @return
      */
      */
     public Object refundCheck(RefundCheckReq refundReq) {
     public Object refundCheck(RefundCheckReq refundReq) {
+        LambdaQueryWrapper<KwpWalletRefund> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwpWalletRefund::getChannel, refundReq.getChannel());
+        wrapper.eq(KwpWalletRefund::getUid, refundReq.getUid()).eq(KwpWalletRefund::getFilter, refundReq.getFilter()).eq(KwpWalletRefund::getStatus, RefundEnum.APPLY.getStatus()).last("limit 1");
+        KwpWalletRefund kwpWalletRefund = kwpWalletRefundMapper.selectOne(wrapper);
+        if (Objects.isNull(kwpWalletRefund)) {
+            throw new BusinessException("未找到待完成的退款订单");
+        }
         ChannelEnum channelEnum = ChannelEnum.getByChannel(refundReq.getChannel());
         ChannelEnum channelEnum = ChannelEnum.getByChannel(refundReq.getChannel());
         if (Objects.isNull(channelEnum)) {
         if (Objects.isNull(channelEnum)) {
             throw new BusinessException("支付通道不存在");
             throw new BusinessException("支付通道不存在");
@@ -1074,6 +1083,7 @@ public class WalletService {
         walletInfoDto.setApMoney(walletInfoDto.smallMoney(data.getApMoney()));
         walletInfoDto.setApMoney(walletInfoDto.smallMoney(data.getApMoney()));
         walletInfoDto.setWdMoney(walletInfoDto.smallMoney(data.getWdMoney()));
         walletInfoDto.setWdMoney(walletInfoDto.smallMoney(data.getWdMoney()));
         walletInfoDto.setMoney(walletInfoDto.smallMoney(data.getMoney()));
         walletInfoDto.setMoney(walletInfoDto.smallMoney(data.getMoney()));
+        walletInfoDto.setRefundMoney(kwpWalletRefund.getMoney());
         return walletInfoDto;
         return walletInfoDto;
     }
     }
 
 
@@ -1107,6 +1117,56 @@ public class WalletService {
         return walletInfoDto;
         return walletInfoDto;
     }
     }
 
 
+    /**
+     * 渠道开通
+     *
+     * @param createUserReq
+     * @return
+     */
+    public Object createUser(CreateUserReq createUserReq) {
+        Long entId = LoginUserHolder.getEntId();
+        String uid = walletRelationService.getRelation(entId);
+        if (StringUtils.isBlank(uid)) {
+            throw new BusinessException("您暂未开通电子钱包");
+        }
+        //字典
+        ChannelEnum channelEnum = ChannelEnum.getByChannel(createUserReq.getChannel());
+        if (Objects.isNull(channelEnum)) {
+            throw new BusinessException("支付通道不存在");
+        }
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(entId);
+        if (Objects.isNull(entCacheResDto)) {
+            throw new BusinessException("未找到企业信息");
+        }
+        MemberCreate memberCreate = new MemberCreate();
+        memberCreate.setCompanyName(entCacheResDto.getFirmName());
+        memberCreate.setLicense(entCacheResDto.getBusiness());
+        memberCreate.setLegalName("");
+        memberCreate.setLegalPhone("");
+        memberCreate.setLegalIds("");
+        memberCreate.setAccountNo("");
+        memberCreate.setParentBankName("");
+        memberCreate.setUnionBank("");
+        memberCreate.setBankName("");
+        memberCreate.setChannel("");
+        //开通用户
+        R<MemberRes> memberResR = payCenterService.memberIndex(memberCreate);
+        if (!memberResR.getStatus()) {
+            throw new BusinessException(StringUtils.isNotBlank(memberResR.getMsg()) ? memberResR.getMsg() : "开户失败");
+        }
+        return memberResR.getData();
+    }
+
+    /**
+     * 驳回退款
+     *
+     * @param refundReq
+     * @return
+     */
+    public String backRefund(RefundBackReq refundReq) {
+        return null;
+    }
+
     /**
     /**
      * 退款处理
      * 退款处理
      *
      *