From 297c6e35c4b65348a609bf28cfe4a19ed6b0ee72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 20 Nov 2025 15:22:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=80=9A=E8=BF=87=E9=97=A8=E5=BA=97Code?= =?UTF-8?q?=20=E6=9F=A5=E8=AF=A2=E5=AD=98=E9=87=8F=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E5=BC=80=E9=80=9A=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/dao/wallet/OpenBankInfoDAO.java | 34 + .../dao/wallet/TempOpenWalletInfoDAO.java | 35 + .../mapper/wallet/OpenBankInfoMapper.java | 26 + .../wallet/TempOpenWalletInfoMapper.java | 18 + .../mapper/wallet/OpenBankInfoMapper.xml | 94 +++ .../wallet/TempOpenWalletInfoMapper.xml | 40 ++ .../store/dto/wallet/OpenBasicInfoDTO.java | 113 ++++ .../store/entity/wallet/OpenBankInfoDO.java | 436 +++++++++++++ .../entity/wallet/TempOpenWalletInfoDO.java | 599 ++++++++++++++++++ .../wallet/CoolOpenBasicInfoRequest.java | 128 ++++ .../wallet/OldStoreAccountCreateRequest.java | 5 +- .../store/service/wallet/WalletService.java | 15 + .../wallet/impl/WalletServiceImpl.java | 103 ++- .../controller/webc/MiniWalletController.java | 13 + 14 files changed, 1652 insertions(+), 7 deletions(-) create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/OpenBankInfoDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/TempOpenWalletInfoDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/OpenBankInfoMapper.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/TempOpenWalletInfoMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/wallet/OpenBankInfoMapper.xml create mode 100644 coolstore-partner-dao/src/main/resources/mapper/wallet/TempOpenWalletInfoMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/OpenBasicInfoDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/OpenBankInfoDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/TempOpenWalletInfoDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolOpenBasicInfoRequest.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/OpenBankInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/OpenBankInfoDAO.java new file mode 100644 index 000000000..2ce16e542 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/OpenBankInfoDAO.java @@ -0,0 +1,34 @@ +package com.cool.store.dao.wallet; + +import com.cool.store.entity.wallet.OpenBankInfoDO; +import com.cool.store.mapper.wallet.OpenBankInfoMapper; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2025/11/20 10:37 + * @Version 1.0 + */ +@Repository +public class OpenBankInfoDAO { + + + @Resource + private OpenBankInfoMapper openBankInfoMapper; + + public int insertSelective(OpenBankInfoDO openBankInfoDO){ + return openBankInfoMapper.insertSelective(openBankInfoDO); + } + + public int updateByStoreCode(OpenBankInfoDO openBankInfoDO){ + return openBankInfoMapper.updateByStoreCode(openBankInfoDO); + } + + public OpenBankInfoDO getOpenBankInfo(String storeCode){ + return openBankInfoMapper.getOpenBankInfo(storeCode); + } + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/TempOpenWalletInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/TempOpenWalletInfoDAO.java new file mode 100644 index 000000000..2b3a440a9 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/TempOpenWalletInfoDAO.java @@ -0,0 +1,35 @@ +package com.cool.store.dao.wallet; + +import com.cool.store.entity.wallet.TempOpenWalletInfoDO; +import com.cool.store.mapper.wallet.TempOpenWalletInfoMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2025/11/20 10:03 + * @Version 1.0 + */ +@Repository +@RequiredArgsConstructor +public class TempOpenWalletInfoDAO { + + @Resource + private TempOpenWalletInfoMapper tempOpenWalletInfoMapper; + + /** + * 根据门店编号查询临时开通钱包信息 + * @param StoreCode + * @return + */ + public TempOpenWalletInfoDO getTempOpenWalletInfoByStoreCode(String StoreCode) { + if (StoreCode == null){ + return null; + } + return tempOpenWalletInfoMapper.getTempOpenWalletInfoByStoreCode(StoreCode); + } + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/OpenBankInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/OpenBankInfoMapper.java new file mode 100644 index 000000000..fd70937e1 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/OpenBankInfoMapper.java @@ -0,0 +1,26 @@ +package com.cool.store.mapper.wallet; + +import com.cool.store.entity.wallet.OpenBankInfoDO; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +public interface OpenBankInfoMapper extends Mapper { + + + /** + * 查询门店开户信息 + * @param storeCode + * @return + */ + OpenBankInfoDO getOpenBankInfo(@Param("storeCode") String storeCode); + + /** + * 根据门店编码更新 + * @param openBankInfoDO + * @return + */ + Integer updateByStoreCode(@Param("dto") OpenBankInfoDO openBankInfoDO); + + + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/TempOpenWalletInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/TempOpenWalletInfoMapper.java new file mode 100644 index 000000000..398685bed --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/TempOpenWalletInfoMapper.java @@ -0,0 +1,18 @@ +package com.cool.store.mapper.wallet; + +import com.cool.store.entity.wallet.TempOpenWalletInfoDO; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +public interface TempOpenWalletInfoMapper extends Mapper { + + /** + * 根据StoreCode查询临时开放钱包信息 + * @param StoreCode + * @return + */ + TempOpenWalletInfoDO getTempOpenWalletInfoByStoreCode(@Param("StoreCode") String StoreCode); + + + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/wallet/OpenBankInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/wallet/OpenBankInfoMapper.xml new file mode 100644 index 000000000..a6e8ef04c --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/wallet/OpenBankInfoMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE zxjp_open_bank_info + + + signer_name = #{dto.signerName}, + + + signer_id_card = #{dto.signerIdCard}, + + + signer_phone = #{dto.signerPhone}, + + + signer_id_card_front = #{dto.signerIdCardFront}, + + + signer_id_card_back = #{dto.signerIdCardBack}, + + + business_license_name = #{dto.businessLicenseName}, + + + business_license_code = #{dto.businessLicenseCode}, + + + business_license_photo = #{dto.businessLicensePhoto}, + + + legal_is_signer = #{dto.legalIsSigner}, + + + legal_name = #{dto.legalName}, + + + legal_id_card = #{dto.legalIdCard}, + + + legal_phone = #{dto.legalPhone}, + + + legal_id_card_front = #{dto.legalIdCardFront}, + + + legal_id_card_back = #{dto.legalIdCardBack}, + + + settlement_card = #{dto.settlementCard}, + + + bank_branch_name = #{dto.bankBranchName}, + + + bank_branch_code = #{dto.bankBranchCode}, + + + bank_reserved_phone = #{dto.bankReservedPhone}, + + + WHERE store_code = #{dto.storeCode} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/wallet/TempOpenWalletInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/wallet/TempOpenWalletInfoMapper.xml new file mode 100644 index 000000000..faca192af --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/wallet/TempOpenWalletInfoMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/OpenBasicInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/OpenBasicInfoDTO.java new file mode 100644 index 000000000..c7316a388 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/OpenBasicInfoDTO.java @@ -0,0 +1,113 @@ +package com.cool.store.dto.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 开通网商需要的基本信息 + * @Author suzhuhong + * @Date 2025/11/20 10:49 + * @Version 1.0 + */ +@Data +public class OpenBasicInfoDTO { + + @ApiModelProperty(value = "门店编号") + private String storeCode; + + /** + * 签约人名称 + */ + @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 = "营业执照名字") + private String businessLicenseName; + + /** + * 营业执照社会信用代码 + */ + @ApiModelProperty(value = "营业执照社会信用代码") + private String businessLicenseCode; + + /** + * 营业执照照片 + */ + @ApiModelProperty(value = "营业执照照片") + private String businessLicensePhoto; + + /** + * 法人是否签约人 + */ + @ApiModelProperty(value = "法人是否签约人") + private Integer legalIsSigner; + + /** + * 法人身份证正面 + */ + @ApiModelProperty(value = "法人身份证正面") + private String legalIdCardFront; + + /** + * 法人身份证反面 + */ + @ApiModelProperty(value = "法人身份证反面") + private String legalIdCardBack; + + /** + * 结算卡 + */ + @ApiModelProperty(value = "结算卡") + private String settlementCard; + + /** + * 开户支行名称 + */ + @ApiModelProperty(value = "开户支行名称") + private String bankBranchName; + + /** + * 开户支行编号 + */ + @ApiModelProperty(value = "开户支行编号") + private String bankBranchCode; + + /** + * 银行预留手机号 + */ + @ApiModelProperty(value = "银行预留手机号") + private String bankReservedPhone; + + + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/OpenBankInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/OpenBankInfoDO.java new file mode 100644 index 000000000..17cf0c560 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/OpenBankInfoDO.java @@ -0,0 +1,436 @@ +package com.cool.store.entity.wallet; + + +import javax.persistence.*; + +@Table(name = "zxjp_open_bank_info") +public class OpenBankInfoDO { + /** + * 门店编号 + */ + @Column(name = "store_code") + private String storeCode; + + /** + * 签约人名称 + */ + @Column(name = "signer_name") + private String signerName; + + /** + * 签约人身份证号码 + */ + @Column(name = "signer_id_card") + private String signerIdCard; + + /** + * 签约人手机号 + */ + @Column(name = "signer_phone") + private String signerPhone; + + /** + * 签约人身份证正面 + */ + @Column(name = "signer_id_card_front") + private String signerIdCardFront; + + /** + * 签约人身份证反面 + */ + @Column(name = "signer_id_card_back") + private String signerIdCardBack; + + /** + * 营业执照名字 + */ + @Column(name = "business_license_name") + private String businessLicenseName; + + /** + * 营业执照社会信用代码 + */ + @Column(name = "business_license_code") + private String businessLicenseCode; + + /** + * 营业执照照片 + */ + @Column(name = "business_license_photo") + private String businessLicensePhoto; + + /** + * 法人名称 + */ + @Column(name = "legal_name") + private String legalName; + + /** + * 法人身份证号码 + */ + @Column(name = "legal_id_card") + private String legalIdCard; + + /** + * 法人手机号 + */ + @Column(name = "legal_phone") + private String legalPhone; + + /** + * 法人是否签约人 + */ + @Column(name = "legal_is_signer") + private Integer legalIsSigner; + + /** + * 法人身份证正面 + */ + @Column(name = "legal_id_card_front") + private String legalIdCardFront; + + /** + * 法人身份证反面 + */ + @Column(name = "legal_id_card_back") + private String legalIdCardBack; + + /** + * 结算卡 + */ + @Column(name = "settlement_card") + private String settlementCard; + + /** + * 开户支行名称 + */ + @Column(name = "bank_branch_name") + private String bankBranchName; + + /** + * 开户支行编号 + */ + @Column(name = "bank_branch_code") + private String bankBranchCode; + + /** + * 银行预留手机号 + */ + @Column(name = "bank_reserved_phone") + private String bankReservedPhone; + + + public String getLegalName() { + return legalName; + } + + public void setLegalName(String legalName) { + this.legalName = legalName; + } + + public String getLegalIdCard() { + return legalIdCard; + } + + public void setLegalIdCard(String legalIdCard) { + this.legalIdCard = legalIdCard; + } + + public String getLegalPhone() { + return legalPhone; + } + + public void setLegalPhone(String legalPhone) { + this.legalPhone = legalPhone; + } + + /** + * 获取门店编号 + * + * @return store_code - 门店编号 + */ + public String getStoreCode() { + return storeCode; + } + + /** + * 设置门店编号 + * + * @param storeCode 门店编号 + */ + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + /** + * 获取签约人名称 + * + * @return signer_name - 签约人名称 + */ + public String getSignerName() { + return signerName; + } + + /** + * 设置签约人名称 + * + * @param signerName 签约人名称 + */ + public void setSignerName(String signerName) { + this.signerName = signerName; + } + + /** + * 获取签约人身份证号码 + * + * @return signer_id_card - 签约人身份证号码 + */ + public String getSignerIdCard() { + return signerIdCard; + } + + /** + * 设置签约人身份证号码 + * + * @param signerIdCard 签约人身份证号码 + */ + public void setSignerIdCard(String signerIdCard) { + this.signerIdCard = signerIdCard; + } + + /** + * 获取签约人手机号 + * + * @return signer_phone - 签约人手机号 + */ + public String getSignerPhone() { + return signerPhone; + } + + /** + * 设置签约人手机号 + * + * @param signerPhone 签约人手机号 + */ + public void setSignerPhone(String signerPhone) { + this.signerPhone = signerPhone; + } + + /** + * 获取签约人身份证正面 + * + * @return signer_id_card_front - 签约人身份证正面 + */ + public String getSignerIdCardFront() { + return signerIdCardFront; + } + + /** + * 设置签约人身份证正面 + * + * @param signerIdCardFront 签约人身份证正面 + */ + public void setSignerIdCardFront(String signerIdCardFront) { + this.signerIdCardFront = signerIdCardFront; + } + + /** + * 获取签约人身份证反面 + * + * @return signer_id_card_back - 签约人身份证反面 + */ + public String getSignerIdCardBack() { + return signerIdCardBack; + } + + /** + * 设置签约人身份证反面 + * + * @param signerIdCardBack 签约人身份证反面 + */ + public void setSignerIdCardBack(String signerIdCardBack) { + this.signerIdCardBack = signerIdCardBack; + } + + /** + * 获取营业执照名字 + * + * @return business_license_name - 营业执照名字 + */ + public String getBusinessLicenseName() { + return businessLicenseName; + } + + /** + * 设置营业执照名字 + * + * @param businessLicenseName 营业执照名字 + */ + public void setBusinessLicenseName(String businessLicenseName) { + this.businessLicenseName = businessLicenseName; + } + + /** + * 获取营业执照社会信用代码 + * + * @return business_license_code - 营业执照社会信用代码 + */ + public String getBusinessLicenseCode() { + return businessLicenseCode; + } + + /** + * 设置营业执照社会信用代码 + * + * @param businessLicenseCode 营业执照社会信用代码 + */ + public void setBusinessLicenseCode(String businessLicenseCode) { + this.businessLicenseCode = businessLicenseCode; + } + + /** + * 获取营业执照照片 + * + * @return business_license_photo - 营业执照照片 + */ + public String getBusinessLicensePhoto() { + return businessLicensePhoto; + } + + /** + * 设置营业执照照片 + * + * @param businessLicensePhoto 营业执照照片 + */ + public void setBusinessLicensePhoto(String businessLicensePhoto) { + this.businessLicensePhoto = businessLicensePhoto; + } + + /** + * 获取法人是否签约人 + * + * @return legal_is_signer - 法人是否签约人 + */ + public Integer getLegalIsSigner() { + return legalIsSigner; + } + + /** + * 设置法人是否签约人 + * + * @param legalIsSigner 法人是否签约人 + */ + public void setLegalIsSigner(Integer legalIsSigner) { + this.legalIsSigner = legalIsSigner; + } + + /** + * 获取法人身份证正面 + * + * @return legal_id_card_front - 法人身份证正面 + */ + public String getLegalIdCardFront() { + return legalIdCardFront; + } + + /** + * 设置法人身份证正面 + * + * @param legalIdCardFront 法人身份证正面 + */ + public void setLegalIdCardFront(String legalIdCardFront) { + this.legalIdCardFront = legalIdCardFront; + } + + /** + * 获取法人身份证反面 + * + * @return legal_id_card_back - 法人身份证反面 + */ + public String getLegalIdCardBack() { + return legalIdCardBack; + } + + /** + * 设置法人身份证反面 + * + * @param legalIdCardBack 法人身份证反面 + */ + public void setLegalIdCardBack(String legalIdCardBack) { + this.legalIdCardBack = legalIdCardBack; + } + + /** + * 获取结算卡 + * + * @return settlement_card - 结算卡 + */ + public String getSettlementCard() { + return settlementCard; + } + + /** + * 设置结算卡 + * + * @param settlementCard 结算卡 + */ + public void setSettlementCard(String settlementCard) { + this.settlementCard = settlementCard; + } + + /** + * 获取开户支行名称 + * + * @return bank_branch_name - 开户支行名称 + */ + public String getBankBranchName() { + return bankBranchName; + } + + /** + * 设置开户支行名称 + * + * @param bankBranchName 开户支行名称 + */ + public void setBankBranchName(String bankBranchName) { + this.bankBranchName = bankBranchName; + } + + /** + * 获取开户支行编号 + * + * @return bank_branch_code - 开户支行编号 + */ + public String getBankBranchCode() { + return bankBranchCode; + } + + /** + * 设置开户支行编号 + * + * @param bankBranchCode 开户支行编号 + */ + public void setBankBranchCode(String bankBranchCode) { + this.bankBranchCode = bankBranchCode; + } + + /** + * 获取银行预留手机号 + * + * @return bank_reserved_phone - 银行预留手机号 + */ + public String getBankReservedPhone() { + return bankReservedPhone; + } + + /** + * 设置银行预留手机号 + * + * @param bankReservedPhone 银行预留手机号 + */ + public void setBankReservedPhone(String bankReservedPhone) { + this.bankReservedPhone = bankReservedPhone; + } + + +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/TempOpenWalletInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/TempOpenWalletInfoDO.java new file mode 100644 index 000000000..36f34c2ff --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/TempOpenWalletInfoDO.java @@ -0,0 +1,599 @@ +package com.cool.store.entity.wallet; + +import java.util.Date; +import javax.persistence.*; + +@Table(name = "zxjp_temp_open_wallet_info") +public class TempOpenWalletInfoDO { + /** + * 门店编号 + */ + @Column(name = "store_code") + private String storeCode; + + /** + * 门店名称 + */ + @Column(name = "store_name") + private String storeName; + + /** + * 门店模式 + */ + @Column(name = "store_mode") + private String storeMode; + + /** + * 台账名称 + */ + @Column(name = "ledger_name") + private String ledgerName; + + /** + * 台账状态 + */ + @Column(name = "ledger_status") + private String ledgerStatus; + + /** + * 工商类型 + */ + @Column(name = "business_type") + private String businessType; + + /** + * 工商注册名称 + */ + @Column(name = "business_reg_name") + private String businessRegName; + + /** + * 营业执照编号 + */ + @Column(name = "business_license_no") + private String businessLicenseNo; + + /** + * 工商地址 + */ + @Column(name = "business_address") + private String businessAddress; + + /** + * 省 + */ + private String province; + + /** + * 市 + */ + private String city; + + /** + * 区 + */ + private String district; + + /** + * 法人名称 + */ + @Column(name = "legal_person_name") + private String legalPersonName; + + /** + * 法人证件号 + */ + @Column(name = "legal_person_id_no") + private String legalPersonIdNo; + + /** + * 身份证开始时间 + */ + @Column(name = "legal_id_start_date") + private Date legalIdStartDate; + + /** + * 身份证过期时间 + */ + @Column(name = "legal_id_expire_date") + private Date legalIdExpireDate; + + /** + * 结算人 + */ + @Column(name = "settler_name") + private String settlerName; + + /** + * 结算人证件号 + */ + @Column(name = "settler_id_no") + private String settlerIdNo; + + /** + * 结算人身份证开始时间 + */ + @Column(name = "settler_id_start_date") + private Date settlerIdStartDate; + + /** + * 结算人身份证过期时间 + */ + @Column(name = "settler_id_expire_date") + private Date settlerIdExpireDate; + + /** + * 开户支行名称 + */ + @Column(name = "bank_branch_name") + private String bankBranchName; + + /** + * 开户支行编号 + */ + @Column(name = "bank_branch_no") + private String bankBranchNo; + + /** + * 结算卡 + */ + @Column(name = "settlement_card_no") + private String settlementCardNo; + + /** + * 银行预留手机号 + */ + @Column(name = "bank_reserved_phone") + private String bankReservedPhone; + + /** + * 分账关系 + */ + @Column(name = "accounting_relation") + private String accountingRelation; + + /** + * 获取门店编号 + * + * @return store_id - 门店编号 + */ + public String getStoreCode() { + return storeCode; + } + + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + /** + * 获取门店名称 + * + * @return store_name - 门店名称 + */ + public String getStoreName() { + return storeName; + } + + /** + * 设置门店名称 + * + * @param storeName 门店名称 + */ + public void setStoreName(String storeName) { + this.storeName = storeName; + } + + /** + * 获取门店模式 + * + * @return store_mode - 门店模式 + */ + public String getStoreMode() { + return storeMode; + } + + /** + * 设置门店模式 + * + * @param storeMode 门店模式 + */ + public void setStoreMode(String storeMode) { + this.storeMode = storeMode; + } + + /** + * 获取台账名称 + * + * @return ledger_name - 台账名称 + */ + public String getLedgerName() { + return ledgerName; + } + + /** + * 设置台账名称 + * + * @param ledgerName 台账名称 + */ + public void setLedgerName(String ledgerName) { + this.ledgerName = ledgerName; + } + + /** + * 获取台账状态 + * + * @return ledger_status - 台账状态 + */ + public String getLedgerStatus() { + return ledgerStatus; + } + + /** + * 设置台账状态 + * + * @param ledgerStatus 台账状态 + */ + public void setLedgerStatus(String ledgerStatus) { + this.ledgerStatus = ledgerStatus; + } + + /** + * 获取工商类型 + * + * @return business_type - 工商类型 + */ + public String getBusinessType() { + return businessType; + } + + /** + * 设置工商类型 + * + * @param businessType 工商类型 + */ + public void setBusinessType(String businessType) { + this.businessType = businessType; + } + + /** + * 获取工商注册名称 + * + * @return business_reg_name - 工商注册名称 + */ + public String getBusinessRegName() { + return businessRegName; + } + + /** + * 设置工商注册名称 + * + * @param businessRegName 工商注册名称 + */ + public void setBusinessRegName(String businessRegName) { + this.businessRegName = businessRegName; + } + + /** + * 获取营业执照编号 + * + * @return business_license_no - 营业执照编号 + */ + public String getBusinessLicenseNo() { + return businessLicenseNo; + } + + /** + * 设置营业执照编号 + * + * @param businessLicenseNo 营业执照编号 + */ + public void setBusinessLicenseNo(String businessLicenseNo) { + this.businessLicenseNo = businessLicenseNo; + } + + /** + * 获取工商地址 + * + * @return business_address - 工商地址 + */ + public String getBusinessAddress() { + return businessAddress; + } + + /** + * 设置工商地址 + * + * @param businessAddress 工商地址 + */ + public void setBusinessAddress(String businessAddress) { + this.businessAddress = businessAddress; + } + + /** + * 获取省 + * + * @return province - 省 + */ + public String getProvince() { + return province; + } + + /** + * 设置省 + * + * @param province 省 + */ + public void setProvince(String province) { + this.province = province; + } + + /** + * 获取市 + * + * @return city - 市 + */ + public String getCity() { + return city; + } + + /** + * 设置市 + * + * @param city 市 + */ + public void setCity(String city) { + this.city = city; + } + + /** + * 获取区 + * + * @return district - 区 + */ + public String getDistrict() { + return district; + } + + /** + * 设置区 + * + * @param district 区 + */ + public void setDistrict(String district) { + this.district = district; + } + + /** + * 获取法人名称 + * + * @return legal_person_name - 法人名称 + */ + public String getLegalPersonName() { + return legalPersonName; + } + + /** + * 设置法人名称 + * + * @param legalPersonName 法人名称 + */ + public void setLegalPersonName(String legalPersonName) { + this.legalPersonName = legalPersonName; + } + + /** + * 获取法人证件号 + * + * @return legal_person_id_no - 法人证件号 + */ + public String getLegalPersonIdNo() { + return legalPersonIdNo; + } + + /** + * 设置法人证件号 + * + * @param legalPersonIdNo 法人证件号 + */ + public void setLegalPersonIdNo(String legalPersonIdNo) { + this.legalPersonIdNo = legalPersonIdNo; + } + + /** + * 获取身份证开始时间 + * + * @return legal_id_start_date - 身份证开始时间 + */ + public Date getLegalIdStartDate() { + return legalIdStartDate; + } + + /** + * 设置身份证开始时间 + * + * @param legalIdStartDate 身份证开始时间 + */ + public void setLegalIdStartDate(Date legalIdStartDate) { + this.legalIdStartDate = legalIdStartDate; + } + + /** + * 获取身份证过期时间 + * + * @return legal_id_expire_date - 身份证过期时间 + */ + public Date getLegalIdExpireDate() { + return legalIdExpireDate; + } + + /** + * 设置身份证过期时间 + * + * @param legalIdExpireDate 身份证过期时间 + */ + public void setLegalIdExpireDate(Date legalIdExpireDate) { + this.legalIdExpireDate = legalIdExpireDate; + } + + /** + * 获取结算人 + * + * @return settler_name - 结算人 + */ + public String getSettlerName() { + return settlerName; + } + + /** + * 设置结算人 + * + * @param settlerName 结算人 + */ + public void setSettlerName(String settlerName) { + this.settlerName = settlerName; + } + + /** + * 获取结算人证件号 + * + * @return settler_id_no - 结算人证件号 + */ + public String getSettlerIdNo() { + return settlerIdNo; + } + + /** + * 设置结算人证件号 + * + * @param settlerIdNo 结算人证件号 + */ + public void setSettlerIdNo(String settlerIdNo) { + this.settlerIdNo = settlerIdNo; + } + + /** + * 获取结算人身份证开始时间 + * + * @return settler_id_start_date - 结算人身份证开始时间 + */ + public Date getSettlerIdStartDate() { + return settlerIdStartDate; + } + + /** + * 设置结算人身份证开始时间 + * + * @param settlerIdStartDate 结算人身份证开始时间 + */ + public void setSettlerIdStartDate(Date settlerIdStartDate) { + this.settlerIdStartDate = settlerIdStartDate; + } + + /** + * 获取结算人身份证过期时间 + * + * @return settler_id_expire_date - 结算人身份证过期时间 + */ + public Date getSettlerIdExpireDate() { + return settlerIdExpireDate; + } + + /** + * 设置结算人身份证过期时间 + * + * @param settlerIdExpireDate 结算人身份证过期时间 + */ + public void setSettlerIdExpireDate(Date settlerIdExpireDate) { + this.settlerIdExpireDate = settlerIdExpireDate; + } + + /** + * 获取开户支行名称 + * + * @return bank_branch_name - 开户支行名称 + */ + public String getBankBranchName() { + return bankBranchName; + } + + /** + * 设置开户支行名称 + * + * @param bankBranchName 开户支行名称 + */ + public void setBankBranchName(String bankBranchName) { + this.bankBranchName = bankBranchName; + } + + /** + * 获取开户支行编号 + * + * @return bank_branch_no - 开户支行编号 + */ + public String getBankBranchNo() { + return bankBranchNo; + } + + /** + * 设置开户支行编号 + * + * @param bankBranchNo 开户支行编号 + */ + public void setBankBranchNo(String bankBranchNo) { + this.bankBranchNo = bankBranchNo; + } + + /** + * 获取结算卡 + * + * @return settlement_card_no - 结算卡 + */ + public String getSettlementCardNo() { + return settlementCardNo; + } + + /** + * 设置结算卡 + * + * @param settlementCardNo 结算卡 + */ + public void setSettlementCardNo(String settlementCardNo) { + this.settlementCardNo = settlementCardNo; + } + + /** + * 获取银行预留手机号 + * + * @return bank_reserved_phone - 银行预留手机号 + */ + public String getBankReservedPhone() { + return bankReservedPhone; + } + + /** + * 设置银行预留手机号 + * + * @param bankReservedPhone 银行预留手机号 + */ + public void setBankReservedPhone(String bankReservedPhone) { + this.bankReservedPhone = bankReservedPhone; + } + + /** + * 获取分账关系 + * + * @return accounting_relation - 分账关系 + */ + public String getAccountingRelation() { + return accountingRelation; + } + + /** + * 设置分账关系 + * + * @param accountingRelation 分账关系 + */ + public void setAccountingRelation(String accountingRelation) { + this.accountingRelation = accountingRelation; + } +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolOpenBasicInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolOpenBasicInfoRequest.java new file mode 100644 index 000000000..3e1153c9e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/CoolOpenBasicInfoRequest.java @@ -0,0 +1,128 @@ +package com.cool.store.request.wallet; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/11/20 13:38 + * @Version 1.0 + */ +@Data +public class CoolOpenBasicInfoRequest { + + @ApiModelProperty(value = "门店编号") + private String storeCode; + + /** + * 签约人名称 + */ + @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 = "营业执照名字") + private String businessLicenseName; + + /** + * 营业执照社会信用代码 + */ + @ApiModelProperty(value = "营业执照社会信用代码") + private String businessLicenseCode; + + /** + * 营业执照照片 + */ + @ApiModelProperty(value = "营业执照照片") + private String businessLicensePhoto; + + /** + * 法人是否签约人 + */ + @ApiModelProperty(value = "法人是否签约人") + private Integer legalIsSigner; + + + /** + * 法人名称 + */ + @ApiModelProperty(value = "法人名称") + private String legalName; + + /** + * 法人身份证号码 + */ + @ApiModelProperty(value = "法人身份证号码") + private String legalIdCard; + + /** + * 法人手机号 + */ + @ApiModelProperty(value = "法人手机号") + private String legalPhone; + + + /** + * 法人身份证正面 + */ + @ApiModelProperty(value = "法人身份证正面") + private String legalIdCardFront; + + /** + * 法人身份证反面 + */ + @ApiModelProperty(value = "法人身份证反面") + private String legalIdCardBack; + + /** + * 结算卡 + */ + @ApiModelProperty(value = "结算卡") + private String settlementCard; + + /** + * 开户支行名称 + */ + @ApiModelProperty(value = "开户支行名称") + private String bankBranchName; + + /** + * 开户支行编号 + */ + @ApiModelProperty(value = "开户支行编号") + private String bankBranchCode; + + /** + * 银行预留手机号 + */ + @ApiModelProperty(value = "银行预留手机号") + private String bankReservedPhone; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/OldStoreAccountCreateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/OldStoreAccountCreateRequest.java index 4a7e5af72..eb70eee21 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/OldStoreAccountCreateRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/OldStoreAccountCreateRequest.java @@ -20,9 +20,6 @@ public class OldStoreAccountCreateRequest { @ApiModelProperty(value = "结算卡业务类型 枚举值:1:对公 2:对私(结算类型)", required = true, example = "1") private Integer accountType; - @ApiModelProperty(value = "开户类型:1企业 2个体工商户 3个人(小微商户)", required = true, example = "1") - private Integer businessType; - @ApiModelProperty(value = "营业执照号码,与企业证件类型对应的企业注册号(企业与个体户必传)") private String licenseNo; @@ -80,4 +77,6 @@ public class OldStoreAccountCreateRequest { @ApiModelProperty(value = "签约人证件国徽面图片链接", required = true) private String signatoryPhotoB; + + } 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 39b1070a4..5212f66a1 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 @@ -157,4 +157,19 @@ public interface WalletService { * @return */ PageInfo getTradeRecordList(CoolTradeRecodePageRequest request); + + + /** + * 通过门店Code 查询存量客户开通基本信息 + * @param storeCode + * @return + */ + OpenBasicInfoDTO getOpenBasicInfo(String storeCode); + + /** + * 开通网商银行 + * @param request + * @return + */ + Boolean openOnlineBankAccount(CoolOpenBasicInfoRequest 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 06df62dfd..fb9a255af 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 @@ -5,9 +5,15 @@ import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.constants.RedisConstant; import com.cool.store.dao.*; +import com.cool.store.dao.store.StoreMasterSignerInfoDAO; +import com.cool.store.dao.wallet.OpenBankInfoDAO; +import com.cool.store.dao.wallet.TempOpenWalletInfoDAO; import com.cool.store.dao.wallet.WalletPaymentOrderDAO; import com.cool.store.dto.wallet.*; import com.cool.store.entity.*; +import com.cool.store.entity.store.StoreMasterSignerInfoDO; +import com.cool.store.entity.wallet.OpenBankInfoDO; +import com.cool.store.entity.wallet.TempOpenWalletInfoDO; import com.cool.store.entity.wallet.WalletPaymentOrderDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.point.ShopSubStageEnum; @@ -31,16 +37,14 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.sql.Date; import java.text.MessageFormat; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -63,6 +67,10 @@ public class WalletServiceImpl implements WalletService { private final LineInfoDAO lineInfoDAO; private final RedisUtilPool redisUtilPool; private final QualificationsInfoDAO qualificationsInfoDAO; + private final StoreDao storeDao; + private final StoreMasterSignerInfoDAO storeMasterSignerInfoDAO; + private final TempOpenWalletInfoDAO tempOpenWalletInfoDAO; + private final OpenBankInfoDAO openBankInfoDAO; private final static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -407,6 +415,93 @@ public class WalletServiceImpl implements WalletService { return toPageInfo(tradeRecordListDTO.getPageData(), TradeRecordDTO.class, tradeRecordListDTO.getPage()); } + @Override + public OpenBasicInfoDTO getOpenBasicInfo(String storeCode) { + OpenBasicInfoDTO openBasicInfoDTO = new OpenBasicInfoDTO(); + //非首次提交 获取上次提交的信息 其他情况走主数据与营账通开通数据 + OpenBankInfoDO openBankInfo = openBankInfoDAO.getOpenBankInfo(storeCode); + if (Objects.nonNull(openBankInfo)){ + openBasicInfoDTO.setSignerName(openBankInfo.getSignerName()); + openBasicInfoDTO.setSignerIdCard(openBankInfo.getSignerIdCard()); + openBasicInfoDTO.setSignerPhone(openBankInfo.getSignerPhone()); + openBasicInfoDTO.setSignerIdCardFront(openBankInfo.getSignerIdCardFront()); + openBasicInfoDTO.setSignerIdCardBack(openBankInfo.getSignerIdCardBack()); + openBasicInfoDTO.setBusinessLicenseName(openBankInfo.getBusinessLicenseName()); + openBasicInfoDTO.setBusinessLicenseCode(openBankInfo.getBusinessLicenseCode()); + openBasicInfoDTO.setSettlementCard(openBankInfo.getSettlementCard()); + openBasicInfoDTO.setBankBranchName(openBankInfo.getBankBranchName()); + openBasicInfoDTO.setBankBranchCode(openBankInfo.getBankBranchCode()); + openBasicInfoDTO.setBankReservedPhone(openBankInfo.getBankReservedPhone()); + return openBasicInfoDTO; + } + //先查询当前门店 + StoreDO store = storeDao.getByStoreNum(storeCode); + if (Objects.isNull( store)){ + return null; + } + Map signerMapByStoreIds = storeMasterSignerInfoDAO.getSignerMapByStoreIds(Collections.singletonList(store.getStoreId())); + StoreMasterSignerInfoDO signerInfoDO = signerMapByStoreIds.get(store.getStoreId()); + + if (Objects.nonNull(signerInfoDO)){ + openBasicInfoDTO.setSignerName(signerInfoDO.getSigner1Name()); + openBasicInfoDTO.setSignerIdCard(signerInfoDO.getSigner1IdCardNo()); + openBasicInfoDTO.setSignerPhone(signerInfoDO.getSigner1Mobile()); + openBasicInfoDTO.setSignerIdCardFront(signerInfoDO.getSigner1IdCardFront()); + openBasicInfoDTO.setSignerIdCardBack(signerInfoDO.getSigner1IdCardBack()); + } + TempOpenWalletInfoDO tempOpenWalletInfoByStoreCode = tempOpenWalletInfoDAO.getTempOpenWalletInfoByStoreCode(storeCode); + if (Objects.nonNull(tempOpenWalletInfoByStoreCode)){ + openBasicInfoDTO.setBusinessLicenseName(tempOpenWalletInfoByStoreCode.getBusinessRegName()); + openBasicInfoDTO.setBusinessLicenseCode(tempOpenWalletInfoByStoreCode.getBusinessLicenseNo()); + openBasicInfoDTO.setSettlementCard(tempOpenWalletInfoByStoreCode.getSettlementCardNo()); + openBasicInfoDTO.setBankBranchName(tempOpenWalletInfoByStoreCode.getBankBranchName()); + openBasicInfoDTO.setBankBranchCode(tempOpenWalletInfoByStoreCode.getBankBranchNo()); + openBasicInfoDTO.setBankReservedPhone(tempOpenWalletInfoByStoreCode.getBankReservedPhone()); + } + return openBasicInfoDTO; + } + + + @Override + public Boolean openOnlineBankAccount(CoolOpenBasicInfoRequest request) { + //首先存储提交的信息 + OpenBankInfoDO openBankInfoDO = new OpenBankInfoDO(); + BeanUtil.copyProperties(request, openBankInfoDO); + //查询是否有提交过 + OpenBankInfoDO openBankInfo = openBankInfoDAO.getOpenBankInfo(request.getStoreCode()); + if (Objects.isNull(openBankInfo)){ + openBankInfoDAO.insertSelective(openBankInfoDO); + }else { + openBankInfoDAO.updateByStoreCode(openBankInfoDO); + } + OldStoreAccountCreateRequest oldStoreAccountCreateRequest = new OldStoreAccountCreateRequest(); + StoreDO store = storeDao.getByStoreNum(request.getStoreCode()); + oldStoreAccountCreateRequest.setOutStoreId(store.getStoreId()); + oldStoreAccountCreateRequest.setPhoneNumber(request.getSignerPhone()); + oldStoreAccountCreateRequest.setAccountType(2); + oldStoreAccountCreateRequest.setLicenseNo(request.getBusinessLicenseCode()); + oldStoreAccountCreateRequest.setLicenseName(request.getBusinessLicenseName()); + oldStoreAccountCreateRequest.setLegalName(request.getLegalName()); + oldStoreAccountCreateRequest.setLegalNo(request.getLegalIdCard()); + oldStoreAccountCreateRequest.setLegalPhone(request.getLegalPhone()); + //账户简称使用营业执照名称 + oldStoreAccountCreateRequest.setAccountAliasName(request.getBusinessLicenseName()); + oldStoreAccountCreateRequest.setAccountCardNo(request.getSettlementCard()); + oldStoreAccountCreateRequest.setAccountPhone(request.getBankReservedPhone()); + oldStoreAccountCreateRequest.setBankNo(request.getBankBranchCode()); + oldStoreAccountCreateRequest.setBankName(request.getBankBranchName()); + oldStoreAccountCreateRequest.setCertPhotoA(request.getLegalIdCardFront()); + oldStoreAccountCreateRequest.setCertPhotoB(request.getLegalIdCardBack()); + oldStoreAccountCreateRequest.setLicensePhoto(request.getBusinessLicensePhoto()); + oldStoreAccountCreateRequest.setSignatoryName(request.getSignerName()); + oldStoreAccountCreateRequest.setSignatoryPhone(request.getSignerPhone()); + oldStoreAccountCreateRequest.setSignatoryNo(request.getSignerIdCard()); + oldStoreAccountCreateRequest.setSignatoryPhotoA(request.getSignerIdCardFront()); + oldStoreAccountCreateRequest.setSignatoryPhotoB(request.getSignerIdCardBack()); + walletApiService.oldStoreOpenAccount(oldStoreAccountCreateRequest); + return Boolean.TRUE; + } + 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 581e8c17d..699abc191 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 @@ -1,6 +1,7 @@ package com.cool.store.controller.webc; import com.cool.store.dto.wallet.BillDetailDTO; +import com.cool.store.dto.wallet.OpenBasicInfoDTO; import com.cool.store.request.wallet.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.wallet.WalletService; @@ -108,4 +109,16 @@ public class MiniWalletController { public ResponseResult withDrawer(@RequestBody @Validated WalletWithDrawerRequest request) { return ResponseResult.success(walletService.withDrawer(request)); } + @ApiOperation("根据门店编码查询开通基础信息") + @GetMapping("/getOpenBasicInfo") + public ResponseResult getOpenBasicInfo(@NotBlank(message = "门店编码不能为空") String storeCode) { + return ResponseResult.success(walletService.getOpenBasicInfo(storeCode)); + } + + @ApiOperation("提交开通") + @PostMapping("/openOnlineBankAccount") + public ResponseResult openOnlineBankAccount(@RequestBody @Validated CoolOpenBasicInfoRequest request) { + return ResponseResult.success(walletService.openOnlineBankAccount(request)); + } + }