diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java index ea8458de..90dad086 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopMchEntryServiceImpl.java @@ -2014,220 +2014,320 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl 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 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 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 checkEmptyFields(ShopMchEntry record) { + // 检查通用必填字段 + Pair commonFieldsCheck = checkCommonRequiredFields(record); + if (!commonFieldsCheck.getFirst()) { + return commonFieldsCheck; + } + + // 根据入驻主体类型检查相应字段 + if (record.getEntity_type() == CommonConstant.MCH_ENTITY_TYPE_QY) { + // 企业类型必填字段检查 + Pair 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 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 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 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 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 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 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, "");