From 70b41d67832b51ed4e1f73a3bfeff207009cabef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=9D=9E=E5=87=A1?= Date: Fri, 13 Mar 2026 14:28:55 +0000 Subject: [PATCH] Merge #62 into master from cc_20260313_ws_wallet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 网商 * cc_20260313_ws_wallet: (3 commits squashed) - fix:新店开通网商钱包 - fix:网商钱包开通回调修改 - fix Signed-off-by: 王非凡 Merged-by: 正新 CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/62 --- .../store/enums/point/ShopSubStageEnum.java | 2 +- .../enums/point/ShopSubStageStatusEnum.java | 2 +- .../store/dto/wallet/WsPayAccountDTO.java | 28 +++++++ .../wallet/NewStoreAccountCreateRequest.java | 51 ++++++++++++ .../wallet/NewWsCreateAccountRequest.java | 77 +++++++++++++++++++ .../service/wallet/WalletApiService.java | 14 ++++ .../store/service/wallet/WalletService.java | 10 +++ .../wallet/impl/WalletServiceImpl.java | 36 +++++++++ .../controller/webc/MiniWalletController.java | 11 +++ 9 files changed, 229 insertions(+), 2 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/WsPayAccountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewStoreAccountCreateRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewWsCreateAccountRequest.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java index 1692a2756..04deb1c89 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java @@ -41,7 +41,7 @@ public enum ShopSubStageEnum { SHOP_STAGE_22(ShopStageEnum.SHOP_STAGE_3, 220, "快手", null), SHOP_STAGE_25(ShopStageEnum.SHOP_STAGE_3, 250, "京东外卖", null), - SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 260, "开通门店平安钱包", 1), + SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 260, "开通门店网商钱包", 1), SHOP_STAGE_27(ShopStageEnum.SHOP_STAGE_2, 270, "开业验收", 1), SHOP_STAGE_28(ShopStageEnum.SHOP_STAGE_2, 280, "选择标准店型", 1), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java index 610bda606..d3d5e10da 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java @@ -36,7 +36,7 @@ public enum ShopSubStageStatusEnum { SHOP_SUB_STAGE_STATUS_50(ShopSubStageEnum.SHOP_STAGE_5, 500, "登记中", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_51(ShopSubStageEnum.SHOP_STAGE_5, 510, "已完成", Boolean.TRUE), - //开通门店平安钱包 + //开通门店网商钱包 SHOP_SUB_STAGE_STATUS_60(ShopSubStageEnum.SHOP_STAGE_6, 2600, "未开通", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_61(ShopSubStageEnum.SHOP_STAGE_6, 2610, "已完成", Boolean.TRUE), diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/WsPayAccountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/WsPayAccountDTO.java new file mode 100644 index 000000000..6e7290fff --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/WsPayAccountDTO.java @@ -0,0 +1,28 @@ +package com.cool.store.dto.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 网商充值账户 + *

+ * + * @author wangff + * @since 2026/3/13 + */ +@Data +public class WsPayAccountDTO { + + @ApiModelProperty("门店id") + private String outStoreId; + + @ApiModelProperty("收款账号") + private String payeeAccNo; + + @ApiModelProperty("收款账户名称") + private String payeeAccName; + + @ApiModelProperty("收款银行名称") + private String payeeBankName; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewStoreAccountCreateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewStoreAccountCreateRequest.java new file mode 100644 index 000000000..715119228 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewStoreAccountCreateRequest.java @@ -0,0 +1,51 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * 网商新店开通网商自然人账户Request + *

+ * + * @author wangff + * @since 2026/3/13 + */ +@Data +public class NewStoreAccountCreateRequest { + @ApiModelProperty(value = "CRM门店编号", required = true) + public String outStoreId; + + @ApiModelProperty(value = "联系电话", required = true) + private String phoneNumber; + + @ApiModelProperty(value = "账户简称", required = true) + private String accountAliasName; + + @ApiModelProperty("法人姓名") + private String legalName; + + @ApiModelProperty("法人证件号码") + private String legalNo; + + @ApiModelProperty("法人联系电话") + private String legalPhone; + + @ApiModelProperty("法人银行卡号") + private String legalAccountCardNo; + + @ApiModelProperty("法人银行预留手机号") + private String legalAccountPhone; + + @ApiModelProperty("法人银行卡开户支行") + private String legalBankNo; + + @ApiModelProperty("法人银行卡开户支行名称") + private String legalBankName; + + @ApiModelProperty("法人代表证件人像面图片链接") + private String certPhotoA; + + @ApiModelProperty("法人代表证件国徽面图片链接") + private String certPhotoB; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewWsCreateAccountRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewWsCreateAccountRequest.java new file mode 100644 index 000000000..8d566d85e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/NewWsCreateAccountRequest.java @@ -0,0 +1,77 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Author suzhuhong + * @Date 2025/11/20 13:38 + * @Version 1.0 + */ +@Data +public class NewWsCreateAccountRequest { + @ApiModelProperty("门店id") + @NotNull(message = "门店id不能为空") + private Long shopId; + + /** + * 签约人名称 + */ + @ApiModelProperty(value = "签约人名称") + private String signerName; + + /** + * 签约人身份证号码 + */ + @ApiModelProperty(value = "签约人身份证号码") + private String signerIdCard; + + /** + * 签约人手机号 + */ + @ApiModelProperty(value = "签约人手机号") + private String signerPhone; + + /** + * 签约人身份证正面 + */ + @ApiModelProperty(value = "签约人身份证正面") + private String signerIdCardFront; + + /** + * 签约人身份证反面 + */ + @ApiModelProperty(value = "签约人身份证反面") + private String signerIdCardBack; + + /** + * 结算卡 + */ + @ApiModelProperty(value = "结算卡") + @NotBlank(message = "结算卡不能为空") + private String settlementCard; + + /** + * 开户支行名称 + */ + @ApiModelProperty(value = "开户支行名称") + @NotBlank(message = "开户支行名称不能为空") + private String bankBranchName; + + /** + * 开户支行编号 + */ + @ApiModelProperty(value = "开户支行编号") + @NotBlank(message = "开户支行编号不能为空") + private String bankBranchCode; + + /** + * 银行预留手机号 + */ + @ApiModelProperty(value = "银行预留手机号") + @NotBlank(message = "银行预留手机号不能为空") + private String bankReservedPhone; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java index 7ae3eb37e..6d19028a6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletApiService.java @@ -222,6 +222,13 @@ public class WalletApiService { return walletHttpClientRest.postWithSign(walletBaseUrl+"/open/crm/account/ws/v2/create", request, StoreIdDTO.class); } + /** + * 新店创建门店网商账户 + */ + public StoreIdDTO newStoreOpenAccount(NewStoreAccountCreateRequest request) { + return walletHttpClientRest.postWithSign(walletBaseUrl + "/open/crm/account/ws/v1/createIndividualAccount", request, StoreIdDTO.class); + } + /** * 获取交易记录列表 * @param request @@ -261,4 +268,11 @@ public class WalletApiService { } return null; } + + /** + * 网商充值账户查询 + */ + public WsPayAccountDTO wsPayAccountQuery(OutStoreIdRequest request) { + return walletHttpClientRest.postWithSign(walletBaseUrl + "/open/crm/account/ws/v1/queryCollectionAccount", request, WsPayAccountDTO.class); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java index b2fc01b07..3b7c9eaf4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java @@ -180,6 +180,11 @@ public interface WalletService { */ Boolean openOnlineBankAccount(CoolOpenBasicInfoRequest request); + /** + * 新店开通网商银行 + */ + Boolean newStoreOpenOnlineBankAccount(NewWsCreateAccountRequest request); + /** * 网商发送激活短信 * @param request 门店idRequest @@ -192,4 +197,9 @@ public interface WalletService { * @return */ List findBankHeadName(); + + /** + * 网商充值账户查询 + */ + WsPayAccountDTO wsPayAccountQuery(OutStoreIdRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java index e45225d51..961cab09d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java @@ -334,6 +334,14 @@ public class WalletServiceImpl implements WalletService { if (Integer.valueOf(5).equals(request.getAccountStatus())) { redisUtilPool.setString(key, request.getFailReason()); } else { + // 开通成功,判断是否为新开店,如果是进行阶段流转 + ShopInfoDO shopInfo = shopInfoDAO.getShopInfoByStoreId(request.getOutStoreId()); + if (Objects.nonNull(shopInfo)) { + ShopStageInfoDO payStage = shopStageInfoDAO.getShopSubStageInfo(shopInfo.getId(), ShopSubStageEnum.SHOP_STAGE_6); + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_60.getShopSubStageStatus().equals(payStage.getShopSubStageStatus())) { + walletOpenComplete(shopInfo); + } + } redisUtilPool.delKey(key); } // 如果创建成功,删除网商开通失败标识 @@ -672,6 +680,29 @@ public class WalletServiceImpl implements WalletService { return Boolean.TRUE; } + @Override + public Boolean newStoreOpenOnlineBankAccount(NewWsCreateAccountRequest request) { + ShopInfoDO store = shopInfoDAO.getShopInfo(request.getShopId()); + if (Objects.isNull(store)) { + throw new ServiceException(ErrorCodeEnum.STORE_NOT_EXIST); + } + NewStoreAccountCreateRequest walletRequest = new NewStoreAccountCreateRequest(); + walletRequest.setOutStoreId(store.getStoreId()); + walletRequest.setPhoneNumber(request.getSignerPhone()); + walletRequest.setAccountAliasName(request.getSignerName() + UUIDUtils.get8UUID()); + walletRequest.setLegalName(request.getSignerName()); + walletRequest.setLegalNo(request.getSignerIdCard()); + walletRequest.setLegalPhone(request.getSignerPhone()); + walletRequest.setLegalAccountCardNo(request.getSettlementCard()); + walletRequest.setLegalAccountPhone(request.getBankReservedPhone()); + walletRequest.setLegalBankNo(request.getBankBranchCode()); + walletRequest.setLegalBankName(request.getBankBranchName()); + walletRequest.setCertPhotoA(request.getSignerIdCardFront()); + walletRequest.setCertPhotoB(request.getSignerIdCardBack()); + walletApiService.newStoreOpenAccount(walletRequest); + return true; + } + /** * 获取开店流程网商银行开通失败标记 */ @@ -714,6 +745,11 @@ public class WalletServiceImpl implements WalletService { return walletApiService.findBankHeadName(); } + @Override + public WsPayAccountDTO wsPayAccountQuery(OutStoreIdRequest request) { + return walletApiService.wsPayAccountQuery(request); + } + public String getStoreId(StoreShopRequest request) { String storeId = request.getStoreId(); if (StringUtils.isBlank(storeId) && Objects.nonNull(request.getShopId())) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java index 5d6d70a3c..bb3290086 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java @@ -135,6 +135,11 @@ public class MiniWalletController { return ResponseResult.success(walletService.openOnlineBankAccount(request)); } + @ApiOperation("新店网商钱包提交开通") + @PostMapping("/newOpenOnlineBankAccount") + public ResponseResult newStoreOpenOnlineBankAccount(@RequestBody @Validated NewWsCreateAccountRequest request) { + return ResponseResult.success(walletService.newStoreOpenOnlineBankAccount(request)); + } @ApiOperation("网商账户激活") @PostMapping("/onlineBankActive") @@ -147,4 +152,10 @@ public class MiniWalletController { public ResponseResult> findBankHeadName() { return ResponseResult.success(walletService.findBankHeadName()); } + + @ApiOperation("网商充值账户查询") + @PostMapping("/wsPayAccountQuery") + public ResponseResult wsPayAccountQuery(@RequestBody @Validated OutStoreIdRequest request) { + return ResponseResult.success(walletService.wsPayAccountQuery(request)); + } }