feat(supplier): 添加银行名称字段并完善供应商信息
- 在SupplierCreateCmd中添加银行名称字段并设置为必填 - 更新OrderSupplier相关DTO和实体类,添加银行名称字段 - 在SupplierVO和OrderSupplierVO中增加银行名称属性 - 完善WxMaOcrBankCardVO,添加银行名称字段支持 - 在数据库实体OrderSupplierDO和SupplierDO中增加银行名称映射 - 更新SupplierCreateCmd中的收款人姓名和手机号为必填字段 - 在Mapper XML文件中添加银行名称字段映射 - 实现微信OCR银行卡识别时通过API获取银行名称功能 - 添加微信银行信息查询相关的请求和响应数据结构
This commit is contained in:
parent
3824c80899
commit
6d5b4e001c
@ -55,6 +55,11 @@ public class OrderSupplier extends DTO {
|
||||
*/
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -41,6 +41,11 @@ public class Supplier extends DTO {
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -53,6 +53,7 @@ public class OrderSupplierDO extends BaseDO<OrderSupplierDO> {
|
||||
/**
|
||||
* 收款人姓名
|
||||
*/
|
||||
@TableField(value = "payee_name")
|
||||
private String payeeName;
|
||||
|
||||
/**
|
||||
@ -61,6 +62,12 @@ public class OrderSupplierDO extends BaseDO<OrderSupplierDO> {
|
||||
@TableField(value = "id_card")
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@TableField(value = "bank_name")
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -47,6 +47,12 @@ public class SupplierDO extends BaseDO<SupplierDO> {
|
||||
@TableField(value = "phone")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@TableField(value = "bank_name")
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
<result property="name" column="name"/>
|
||||
<result property="payeeName" column="payee_name"/>
|
||||
<result property="idCard" column="id_card"/>
|
||||
<result property="bankName" column="bank_name"/>
|
||||
<result property="bankCard" column="bank_card"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="wechatQr" column="wechat_qr"/>
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<result property="payeeName" column="payee_name"/>
|
||||
<result property="idCard" column="id_card"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="bankName" column="bank_name"/>
|
||||
<result property="bankCard" column="bank_card"/>
|
||||
<result property="wechatQr" column="wechat_qr"/>
|
||||
<result property="type" column="type"/>
|
||||
|
||||
@ -1,15 +1,24 @@
|
||||
package com.xunhong.erp.turbo.facade.app.executor.cmd;
|
||||
|
||||
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.xunhong.erp.turbo.api.facade.dto.vo.WxMaOcrBankCardVO;
|
||||
import com.xunhong.erp.turbo.api.infra.api.SettingServiceI;
|
||||
import com.xunhong.erp.turbo.facade.app.executor.common.WxCmdExe;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.SneakyThrows;
|
||||
import me.chanjar.weixin.common.bean.ocr.WxOcrBankCardResult;
|
||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author shenyifei
|
||||
*/
|
||||
@ -29,6 +38,65 @@ public class WxMaOcrBankCardCmdExe extends WxCmdExe {
|
||||
wxMaOcrBankCardVO.setNumber(number);
|
||||
wxMaOcrBankCardVO.setOcrUrl(ocrUrl);
|
||||
|
||||
GetBankByNumRequest getBankByNumRequest = new GetBankByNumRequest();
|
||||
getBankByNumRequest.setSetAccountNumber(number);
|
||||
|
||||
String responseContent = wxMaService.post("https://api.weixin.qq.com/shop/funds/getbankbynum", getBankByNumRequest);
|
||||
WxGetBankByNumResult wxGetBankByNumResult = WxGetBankByNumResult.fromJson(responseContent);
|
||||
List<BankInfo> data = wxGetBankByNumResult.getData();
|
||||
if (CollUtil.isNotEmpty(data)) {
|
||||
wxMaOcrBankCardVO.setBankName(data.getFirst().getBankName());
|
||||
}
|
||||
return wxMaOcrBankCardVO;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class GetBankByNumRequest implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SerializedName("account_number")
|
||||
private String setAccountNumber;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class WxGetBankByNumResult implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SerializedName("total_count")
|
||||
private Integer totalCount;
|
||||
private List<BankInfo> data;
|
||||
|
||||
public static WxGetBankByNumResult fromJson(String json) {
|
||||
return WxGsonBuilder.create().fromJson(json, WxGetBankByNumResult.class);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return WxGsonBuilder.create().toJson(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class BankInfo implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@SerializedName("bank_code")
|
||||
private String bankCode;
|
||||
|
||||
@SerializedName("bank_id")
|
||||
private String bankId;
|
||||
|
||||
@SerializedName("bank_name")
|
||||
private String bankName;
|
||||
|
||||
@SerializedName("need_branch")
|
||||
private Boolean needBranch;
|
||||
|
||||
@SerializedName("account_bank")
|
||||
private String accountBank;
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ public class SupplierCreateCmd extends Command {
|
||||
/**
|
||||
* 收款人姓名
|
||||
*/
|
||||
@Schema(title = "收款人姓名")
|
||||
@Schema(title = "收款人姓名", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String payeeName;
|
||||
|
||||
/**
|
||||
@ -42,9 +42,16 @@ public class SupplierCreateCmd extends Command {
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@Schema(title = "手机号")
|
||||
@Schema(title = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bankName;
|
||||
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -57,6 +57,12 @@ public class OrderSupplier extends Command {
|
||||
@Schema(title = "身份证号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -59,6 +59,12 @@ public class OrderSupplierVO extends DTO {
|
||||
@Schema(title = "身份证号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String idCard;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -31,7 +31,7 @@ public class SupplierVO extends DTO {
|
||||
/**
|
||||
* 收款人姓名
|
||||
*/
|
||||
@Schema(title = "收款人姓名")
|
||||
@Schema(title = "收款人姓名", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String payeeName;
|
||||
|
||||
/**
|
||||
@ -43,9 +43,15 @@ public class SupplierVO extends DTO {
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@Schema(title = "手机号")
|
||||
@Schema(title = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
@Schema(title = "银行名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
|
||||
@ -16,6 +16,9 @@ public class WxMaOcrBankCardVO extends DTO {
|
||||
@Schema(title = "银行卡号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String number;
|
||||
|
||||
@Schema(title = "银行名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bankName;
|
||||
|
||||
@Schema(title = "银行卡图片", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String ocrUrl;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user