入驻分账比例,如果有值,去掉自动计算。

This commit is contained in:
Jack 2025-09-22 23:43:51 +08:00
parent ec654a3539
commit e21eb8f518

View File

@ -2014,220 +2014,320 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
}
}
/**
* 检查商户入驻信息
*
* @param record 商户入驻记录
* @param checkEmpty 是否检查必填字段
* @param checkFormat 是否检查字段格式
* @return 检查结果Pair对象第一个元素表示是否通过检查第二个元素为错误信息
*/
protected Pair<Boolean, String> checkMchEntryInfo(ShopMchEntry record, boolean checkEmpty, boolean checkFormat) {
log.debug("开始检查商户入驻信息checkEmpty={}, checkFormat={}", checkEmpty, checkFormat);
if (record == null) {
log.warn("商户入驻信息不能为空");
return Pair.of(false, "商户入驻信息不能为空");
}
if (checkEmpty) {
// 检查通用必填字段
if (StringUtils.isEmpty(record.getLogin_mobile())) {
return Pair.of(false, "商家注册手机号不能为空");
}
if (StringUtils.isEmpty(record.getStore_name())) {
return Pair.of(false, "店铺名称不能为空");
}
if (StringUtils.isEmpty(record.getEmail())) {
return Pair.of(false, "商家邮箱不能为空");
}
if (record.getBiz_category() == null) {
return Pair.of(false, "店铺一级分类不能为空");
}
if (StringUtils.isEmpty(record.getStore_longitude())) {
return Pair.of(false, "店铺经度不能为空");
}
if (StringUtils.isEmpty(record.getStore_latitude())) {
return Pair.of(false, "店铺纬度不能为空");
}
if (StringUtils.isEmpty(record.getStore_area())) {
return Pair.of(false, "店铺省市区名称不能为空");
}
if (StringUtils.isEmpty(record.getStore_address())) {
return Pair.of(false, "带省市区店铺的详细地址不能为空");
}
if (StringUtils.isEmpty(record.getFront_facade_image())) {
return Pair.of(false, "店铺门店照片不能为空");
}
if (StringUtils.isEmpty(record.getEnvironment_image())) {
return Pair.of(false, "店铺室内环境照片不能为空");
}
if (record.getEntity_type() == null) {
return Pair.of(false, "入驻类型是企业或个人?");
}
// 根据入驻主体类型检查相应字段
if (record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_QY) {
// 企业类型必填字段检查
if (StringUtils.isEmpty(record.getBiz_license_image())) {
return Pair.of(false, "营业执照图片不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_number())) {
return Pair.of(false, "营业执照编号不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_company())) {
return Pair.of(false, "企业名不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_period_begin())) {
return Pair.of(false, "营业执照开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_period_end())) {
return Pair.of(false, "营业执照截止有效日期不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_images())) {
return Pair.of(false, "法人身份证正面照不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_images2())) {
return Pair.of(false, "法人身份证反面照不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_name())) {
return Pair.of(false, "法人姓名不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_number())) {
return Pair.of(false, "法人身份证号码不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_period_begin())) {
return Pair.of(false, "法人身份证开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_period_end())) {
return Pair.of(false, "法人身份证截止有效日期不能为空");
}
} else if (record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_GR) {
// 个人类型必填字段检查
if (StringUtils.isEmpty(record.getIndividual_id_images())) {
return Pair.of(false, "身份证正面照不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_images2())) {
return Pair.of(false, "身份证反面照不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_name())) {
return Pair.of(false, "个人姓名不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_number())) {
return Pair.of(false, "身份证号码不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_addr())) {
return Pair.of(false, "身份证详细地址不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_period_begin())) {
return Pair.of(false, "身份证开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_period_end())) {
return Pair.of(false, "身份证截止有效日期不能为空");
}
}
// 检查结算信息必填字段
if (StringUtils.isEmpty(record.getBank_area())) {
return Pair.of(false, "结算账号省市区名称不能为空");
}
if (StringUtils.isEmpty(record.getBank_name())) {
return Pair.of(false, "银行名称不能为空");
}
if (StringUtils.isEmpty(record.getOpenning_bank_code())) {
return Pair.of(false, "结算账户开户号不能为空");
}
if (StringUtils.isEmpty(record.getAccount_number())) {
return Pair.of(false, "结算银行卡号不能为空");
log.debug("检查商户入驻必填字段");
Pair<Boolean, String> emptyCheckResult = checkEmptyFields(record);
if (!emptyCheckResult.getFirst()) {
log.warn("必填字段检查失败: {}", emptyCheckResult.getSecond());
return emptyCheckResult;
}
}
if (checkFormat) {
// 检查手机号格式
if (StringUtils.isNotEmpty(record.getLogin_mobile()) && !PhoneNumberUtils.checkPhoneNumber(record.getLogin_mobile())) {
return Pair.of(false, "商家注册手机号格式不正确");
log.debug("检查商户入驻字段格式");
Pair<Boolean, String> formatCheckResult = checkFormatFields(record);
if (!formatCheckResult.getFirst()) {
log.warn("字段格式检查失败: {}", formatCheckResult.getSecond());
return formatCheckResult;
}
}
if (StringUtils.isNotEmpty(record.getLegal_person_mobile()) && !PhoneNumberUtils.checkPhoneNumber(record.getLegal_person_mobile())) {
return Pair.of(false, "法人手机号格式不正确");
log.debug("商户入驻信息检查通过");
return Pair.of(true, "");
}
/**
* 检查商户入驻必填字段
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkEmptyFields(ShopMchEntry record) {
// 检查通用必填字段
Pair<Boolean, String> commonFieldsCheck = checkCommonRequiredFields(record);
if (!commonFieldsCheck.getFirst()) {
return commonFieldsCheck;
}
// 根据入驻主体类型检查相应字段
if (record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_QY) {
// 企业类型必填字段检查
Pair<Boolean, String> enterpriseFieldsCheck = checkEnterpriseRequiredFields(record);
if (!enterpriseFieldsCheck.getFirst()) {
return enterpriseFieldsCheck;
}
// 检查邮箱格式
if (StringUtils.isNotEmpty(record.getEmail()) && !CheckUtil.isEmail(record.getEmail())) {
return Pair.of(false, "商家邮箱格式不正确");
} else if (record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_GR) {
// 个人类型必填字段检查
Pair<Boolean, String> individualFieldsCheck = checkIndividualRequiredFields(record);
if (!individualFieldsCheck.getFirst()) {
return individualFieldsCheck;
}
}
// 检查身份证号格式
if (StringUtils.isNotEmpty(record.getLegal_person_id_number()) && !StringUtils.validateIDCard(record.getLegal_person_id_number())) {
return Pair.of(false, "法人身份证号码格式不正确");
}
// 检查结算信息必填字段
return checkSettlementRequiredFields(record);
}
if (StringUtils.isNotEmpty(record.getIndividual_id_number()) && !StringUtils.validateIDCard(record.getIndividual_id_number())) {
return Pair.of(false, "身份证号码格式不正确");
}
/**
* 检查通用必填字段
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkCommonRequiredFields(ShopMchEntry record) {
if (StringUtils.isEmpty(record.getLogin_mobile())) {
return Pair.of(false, "商家注册手机号不能为空");
}
// 检查日期格式 (yyyy-MM-dd)
if (StringUtils.isNotEmpty(record.getBiz_license_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getBiz_license_period_begin()).getFirst()) {
return Pair.of(false, "营业执照开始有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isEmpty(record.getStore_name())) {
return Pair.of(false, "店铺名称不能为空");
}
if (StringUtils.isNotEmpty(record.getBiz_license_period_end()) && !DateTimeUtils.isValidDateFormat(record.getBiz_license_period_end()).getFirst()) {
return Pair.of(false, "营业执照截止有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isEmpty(record.getEmail())) {
return Pair.of(false, "商家邮箱不能为空");
}
if (StringUtils.isNotEmpty(record.getLegal_person_id_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getLegal_person_id_period_begin()).getFirst()) {
return Pair.of(false, "法人身份证开始有效日期参考yyyy-MM-dd格式");
}
if (record.getBiz_category() == null) {
return Pair.of(false, "店铺一级分类不能为空");
}
if (StringUtils.isNotEmpty(record.getLegal_person_id_period_end()) && !DateTimeUtils.isValidDateFormat(record.getLegal_person_id_period_end()).getFirst()) {
return Pair.of(false, "法人身份证截止有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isEmpty(record.getStore_longitude())) {
return Pair.of(false, "店铺经度不能为空");
}
if (StringUtils.isNotEmpty(record.getIndividual_id_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getIndividual_id_period_begin()).getFirst()) {
return Pair.of(false, "身份证开始有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isEmpty(record.getStore_latitude())) {
return Pair.of(false, "店铺纬度不能为空");
}
if (StringUtils.isNotEmpty(record.getIndividual_id_period_end()) && !DateTimeUtils.isValidDateFormat(record.getIndividual_id_period_end()).getFirst()) {
return Pair.of(false, "身份证截止有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isEmpty(record.getStore_area())) {
return Pair.of(false, "店铺省市区名称不能为空");
}
// 检查银行卡号格式
boolean isQy = record.getEntity_type() != null && record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_QY;
if (StringUtils.isNotEmpty(record.getAccount_number()) && !BankUtil.validateBankCard(record.getAccount_number(), "CN", isQy)) {
return Pair.of(false, "结算银行卡号格式不正确");
}
if (StringUtils.isEmpty(record.getStore_address())) {
return Pair.of(false, "带省市区店铺的详细地址不能为空");
}
// 检查营业执照编号格式
if (StringUtils.isNotEmpty(record.getBiz_license_number()) && !StringUtils.verifyBusinessLicense(record.getBiz_license_number())) {
return Pair.of(false, "营业执照编号格式不正确");
}
if (StringUtils.isEmpty(record.getFront_facade_image())) {
return Pair.of(false, "店铺门店照片不能为空");
}
if (StringUtils.isNotEmpty(record.getStore_latitude()) && !StringUtils.isLatitude(record.getStore_latitude())) {
return Pair.of(false, "店铺纬度格式不正确");
}
if (StringUtils.isEmpty(record.getEnvironment_image())) {
return Pair.of(false, "店铺室内环境照片不能为空");
}
if (StringUtils.isNotEmpty(record.getStore_longitude()) && !StringUtils.isLongitude(record.getStore_longitude())) {
return Pair.of(false, "店铺经度格式不正确");
}
if (record.getEntity_type() == null) {
return Pair.of(false, "入驻类型是企业或个人?");
}
return Pair.of(true, "");
}
/**
* 检查企业类型必填字段
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkEnterpriseRequiredFields(ShopMchEntry record) {
if (StringUtils.isEmpty(record.getBiz_license_image())) {
return Pair.of(false, "营业执照图片不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_number())) {
return Pair.of(false, "营业执照编号不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_company())) {
return Pair.of(false, "企业名不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_period_begin())) {
return Pair.of(false, "营业执照开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getBiz_license_period_end())) {
return Pair.of(false, "营业执照截止有效日期不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_images())) {
return Pair.of(false, "法人身份证正面照不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_images2())) {
return Pair.of(false, "法人身份证反面照不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_name())) {
return Pair.of(false, "法人姓名不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_number())) {
return Pair.of(false, "法人身份证号码不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_period_begin())) {
return Pair.of(false, "法人身份证开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getLegal_person_id_period_end())) {
return Pair.of(false, "法人身份证截止有效日期不能为空");
}
return Pair.of(true, "");
}
/**
* 检查个人类型必填字段
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkIndividualRequiredFields(ShopMchEntry record) {
if (StringUtils.isEmpty(record.getIndividual_id_images())) {
return Pair.of(false, "身份证正面照不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_images2())) {
return Pair.of(false, "身份证反面照不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_name())) {
return Pair.of(false, "个人姓名不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_number())) {
return Pair.of(false, "身份证号码不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_addr())) {
return Pair.of(false, "身份证详细地址不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_period_begin())) {
return Pair.of(false, "身份证开始有效日期不能为空");
}
if (StringUtils.isEmpty(record.getIndividual_id_period_end())) {
return Pair.of(false, "身份证截止有效日期不能为空");
}
return Pair.of(true, "");
}
/**
* 检查结算信息必填字段
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkSettlementRequiredFields(ShopMchEntry record) {
if (StringUtils.isEmpty(record.getBank_area())) {
return Pair.of(false, "结算账号省市区名称不能为空");
}
if (StringUtils.isEmpty(record.getBank_name())) {
return Pair.of(false, "银行名称不能为空");
}
if (StringUtils.isEmpty(record.getOpenning_bank_code())) {
return Pair.of(false, "结算账户开户号不能为空");
}
if (StringUtils.isEmpty(record.getAccount_number())) {
return Pair.of(false, "结算银行卡号不能为空");
}
return Pair.of(true, "");
}
/**
* 检查字段格式
*
* @param record 商户入驻记录
* @return 检查结果Pair对象
*/
private Pair<Boolean, String> checkFormatFields(ShopMchEntry record) {
// 检查手机号格式
if (StringUtils.isNotEmpty(record.getLogin_mobile()) && !PhoneNumberUtils.checkPhoneNumber(record.getLogin_mobile())) {
return Pair.of(false, "商家注册手机号格式不正确");
}
if (StringUtils.isNotEmpty(record.getLegal_person_mobile()) && !PhoneNumberUtils.checkPhoneNumber(record.getLegal_person_mobile())) {
return Pair.of(false, "法人手机号格式不正确");
}
// 检查邮箱格式
if (StringUtils.isNotEmpty(record.getEmail()) && !CheckUtil.isEmail(record.getEmail())) {
return Pair.of(false, "商家邮箱格式不正确");
}
// 检查身份证号格式
if (StringUtils.isNotEmpty(record.getLegal_person_id_number()) && !StringUtils.validateIDCard(record.getLegal_person_id_number())) {
return Pair.of(false, "法人身份证号码格式不正确");
}
if (StringUtils.isNotEmpty(record.getIndividual_id_number()) && !StringUtils.validateIDCard(record.getIndividual_id_number())) {
return Pair.of(false, "身份证号码格式不正确");
}
// 检查日期格式 (yyyy-MM-dd)
if (StringUtils.isNotEmpty(record.getBiz_license_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getBiz_license_period_begin()).getFirst()) {
return Pair.of(false, "营业执照开始有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isNotEmpty(record.getBiz_license_period_end()) && !DateTimeUtils.isValidDateFormat(record.getBiz_license_period_end()).getFirst()) {
return Pair.of(false, "营业执照截止有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isNotEmpty(record.getLegal_person_id_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getLegal_person_id_period_begin()).getFirst()) {
return Pair.of(false, "法人身份证开始有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isNotEmpty(record.getLegal_person_id_period_end()) && !DateTimeUtils.isValidDateFormat(record.getLegal_person_id_period_end()).getFirst()) {
return Pair.of(false, "法人身份证截止有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isNotEmpty(record.getIndividual_id_period_begin()) && !DateTimeUtils.isValidDateFormat(record.getIndividual_id_period_begin()).getFirst()) {
return Pair.of(false, "身份证开始有效日期参考yyyy-MM-dd格式");
}
if (StringUtils.isNotEmpty(record.getIndividual_id_period_end()) && !DateTimeUtils.isValidDateFormat(record.getIndividual_id_period_end()).getFirst()) {
return Pair.of(false, "身份证截止有效日期参考yyyy-MM-dd格式");
}
// 检查银行卡号格式
boolean isQy = record.getEntity_type() != null && record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_QY;
if (StringUtils.isNotEmpty(record.getAccount_number()) && !BankUtil.validateBankCard(record.getAccount_number(), "CN", isQy)) {
return Pair.of(false, "结算银行卡号格式不正确");
}
// 检查营业执照编号格式
if (StringUtils.isNotEmpty(record.getBiz_license_number()) && !StringUtils.verifyBusinessLicense(record.getBiz_license_number())) {
return Pair.of(false, "营业执照编号格式不正确");
}
if (StringUtils.isNotEmpty(record.getStore_latitude()) && !StringUtils.isLatitude(record.getStore_latitude())) {
return Pair.of(false, "店铺纬度格式不正确");
}
if (StringUtils.isNotEmpty(record.getStore_longitude()) && !StringUtils.isLongitude(record.getStore_longitude())) {
return Pair.of(false, "店铺经度格式不正确");
}
return Pair.of(true, "");