入驻分账比例,如果有值,去掉自动计算。
This commit is contained in:
parent
802595efbb
commit
ec654a3539
@ -332,8 +332,8 @@ public class LklTkServiceImpl {
|
||||
|
||||
// 参数校验
|
||||
if (ObjectUtil.isEmpty(mchId)) {
|
||||
logger.warn("商户进件失败:入驻商户Id不能为空");
|
||||
return Pair.of(false, "入驻商户Id不能为空");
|
||||
logger.warn("商户进件失败:入驻编号不能为空");
|
||||
return Pair.of(false, "入驻编号不能为空");
|
||||
}
|
||||
|
||||
String authorization = getLklTkAuthorization();
|
||||
|
||||
@ -122,57 +122,68 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
/**
|
||||
* 商家申请入驻商城平台
|
||||
*
|
||||
* @param shopMerchEntryJSON
|
||||
* @return
|
||||
* @param shopMerchEntryJSON 商户入驻信息JSON对象
|
||||
* @return 申请结果
|
||||
*/
|
||||
@Override
|
||||
public CommonResult shopMerchEntryApply(JSONObject shopMerchEntryJSON) {
|
||||
log.debug("开始处理商家入驻申请");
|
||||
|
||||
// 检查是否已登录?
|
||||
Integer userId = 0;
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
if (user == null || user.getId() == null) {
|
||||
log.warn("用户未登录,无法申请入驻");
|
||||
return CommonResult.failed("请先登录!");
|
||||
}
|
||||
userId = user.getId();
|
||||
|
||||
// 参数校验流程
|
||||
if (shopMerchEntryJSON == null) {
|
||||
log.warn("商家入驻申请参数为空");
|
||||
return CommonResult.failed("缺少必要参数!");
|
||||
}
|
||||
|
||||
ShopMchEntry record = JSONUtil.toBean(shopMerchEntryJSON, ShopMchEntry.class);
|
||||
if (record == null || StrUtil.isBlank(record.getLogin_mobile())) {
|
||||
log.error("###商家入驻参数转换失败###{}", shopMerchEntryJSON);
|
||||
log.error("商家入驻参数转换失败: {}", shopMerchEntryJSON);
|
||||
return CommonResult.failed("数据转换失败!");
|
||||
}
|
||||
|
||||
String loginMobile = record.getLogin_mobile();
|
||||
log.debug("处理商家入驻申请,手机号: {}", loginMobile);
|
||||
|
||||
if (StrUtil.isBlank(record.getStore_name()) || StrUtil.isBlank(record.getStore_address())
|
||||
|| StrUtil.isBlank(record.getStore_longitude())
|
||||
|| StrUtil.isBlank(record.getStore_latitude())) {
|
||||
log.warn("缺少必要店铺信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("缺少店铺名或详细地址!");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(record.getBiz_category())) {
|
||||
log.warn("未选择经营品类,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("请选择经营品类!");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(record.getContact_name())) {
|
||||
log.warn("未填写联系人,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("请填写联系人!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(record.getStore_area()) || StrUtil.isBlank(record.getBank_area())) {
|
||||
log.warn("未指定省市区信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("请指定店铺或银行的省市区!");
|
||||
}
|
||||
|
||||
|
||||
if (!PhoneNumberUtils.checkPhoneNumber(loginMobile)) {
|
||||
log.warn("申请人手机号码格式错误,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("申请人手机号码有误!");
|
||||
}
|
||||
|
||||
if (CheckUtil.isEmpty(record.getEntity_type())) {
|
||||
log.warn("未选择入驻主体类型,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("请选择是企业还是个人");
|
||||
}
|
||||
|
||||
@ -186,19 +197,22 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
// * 根据入驻主体类型(企业或个人)使用不同的判断条件:
|
||||
// * - 企业:通过营业执照号+联系人手机号判断
|
||||
// * - 个人:通过个人身份证号+联系人手机号判断
|
||||
log.debug("检查商家是否已经申请过入驻,手机号: {}", loginMobile);
|
||||
Pair<Boolean, String> canDo = canApply(record.getEntity_type(), record.getLegal_person_mobile(), record.getBiz_license_number(), record.getIndividual_id_number());
|
||||
if (!canDo.getFirst()) {
|
||||
log.warn("商家入驻申请被拒绝: {},手机号: {}", canDo.getSecond(), loginMobile);
|
||||
return CommonResult.failed(canDo.getSecond());
|
||||
}
|
||||
|
||||
if (shopStoreBaseService.isExistsByStoreName(record.getStore_name())) {
|
||||
log.error("生成店铺:店铺名称已存在");
|
||||
log.error("店铺名称已存在: {}", record.getStore_name());
|
||||
return CommonResult.failed("店铺名称已存在");
|
||||
}
|
||||
|
||||
Boolean isQy = true;
|
||||
// 检查企业、法人或个人的营业执照或身份证
|
||||
if (ObjectUtil.isNotEmpty(record.getEntity_type()) && record.getEntity_type().equals(CommonConstant.MCH_ENTITY_TYPE_GR)) {
|
||||
log.debug("个人入驻信息校验,手机号: {}", loginMobile);
|
||||
isQy = false; // 个人入驻
|
||||
// 个人
|
||||
if (StrUtil.isBlank(record.getIndividual_id_number())
|
||||
@ -208,10 +222,12 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
|| StrUtil.isBlank(record.getIndividual_id_period_end())
|
||||
|| StrUtil.isBlank(record.getIndividual_id_images())
|
||||
|| StrUtil.isBlank(record.getIndividual_id_images2())) {
|
||||
log.warn("缺少个人身份证信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("缺少个人身份证信息!");
|
||||
}
|
||||
|
||||
if (!StringUtils.validateIDCard(record.getIndividual_id_number())) {
|
||||
log.warn("个人身份证号码格式错误,号码: {},手机号: {}", record.getIndividual_id_number(), loginMobile);
|
||||
return CommonResult.failed("个人身份证号码有误!");
|
||||
}
|
||||
|
||||
@ -224,12 +240,15 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
}
|
||||
|
||||
} else {
|
||||
log.debug("企业入驻信息校验,手机号: {}", loginMobile);
|
||||
// 企业
|
||||
if (StrUtil.isBlank(record.getBiz_license_number()) || StrUtil.isBlank(record.getBiz_license_image())) {
|
||||
log.warn("缺少企业营业执照信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("缺少企业营业执照信息!");
|
||||
}
|
||||
|
||||
if (!StringUtils.verifyBusinessLicense(record.getBiz_license_number())) {
|
||||
log.warn("营业执照号码格式错误,号码: {},手机号: {}", record.getBiz_license_number(), loginMobile);
|
||||
return CommonResult.failed("营业执照号码有误!");
|
||||
}
|
||||
|
||||
@ -240,18 +259,22 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
|| StrUtil.isBlank(record.getLegal_person_id_period_end())
|
||||
|| StrUtil.isBlank(record.getLegal_person_id_images())
|
||||
|| StrUtil.isBlank(record.getLegal_person_id_images2())) {
|
||||
log.warn("缺少法人身份证信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("缺少法人身份证信息!");
|
||||
}
|
||||
|
||||
if (!StringUtils.validateIDCard(record.getLegal_person_id_number())) {
|
||||
log.warn("法人身份证号码格式错误,号码: {},手机号: {}", record.getLegal_person_id_number(), loginMobile);
|
||||
return CommonResult.failed("法人身份证号码有误!");
|
||||
}
|
||||
|
||||
if (!PhoneNumberUtils.checkPhoneNumber(record.getLegal_person_mobile())) {
|
||||
log.warn("法人手机号码格式错误,号码: {},手机号: {}", record.getLegal_person_mobile(), loginMobile);
|
||||
return CommonResult.failed("法人手机号码有误!");
|
||||
}
|
||||
|
||||
if (StrUtil.contains(record.getLegal_person_id_period_end(), "长期")) {
|
||||
if (StrUtil.contains(record.getLegal_person_id_period_end(), "长期")
|
||||
|| StrUtil.contains(record.getLegal_person_id_period_end(), "永久")) {
|
||||
record.setLegal_person_id_period_end("9999-12-31");
|
||||
}
|
||||
|
||||
@ -262,14 +285,17 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
|
||||
// 检查银行账号
|
||||
if (StrUtil.isBlank(record.getBank_name()) || StrUtil.isBlank(record.getAccount_number()) || StrUtil.isBlank(record.getAccount_holder_name())) {
|
||||
log.warn("缺少银行账号信息,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("缺少银行账号信息!");
|
||||
}
|
||||
|
||||
if (!BankUtil.validateBankCard(record.getAccount_number(), "CN", isQy)) {
|
||||
log.warn("银行卡号格式错误,卡号: {},手机号: {}", record.getAccount_number(), loginMobile);
|
||||
return CommonResult.failed("银行卡号格式有误!");
|
||||
}
|
||||
|
||||
if (StrUtil.isBlank(record.getOpenning_bank_code())) {
|
||||
log.warn("未填写结算账户清算行号,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("请填写结算账户清算⾏号!");
|
||||
}
|
||||
|
||||
@ -278,6 +304,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
record.setClearing_bank_code(record.getOpenning_bank_code());
|
||||
|
||||
if (StrUtil.isNotBlank(record.getStore_name()) && shopStoreBaseService.isExistsByStoreName(record.getStore_name())) {
|
||||
log.warn("店铺名称已被使用: {},手机号: {}", record.getStore_name(), loginMobile);
|
||||
return CommonResult.failed("店铺名已被使用!");
|
||||
}
|
||||
|
||||
@ -297,12 +324,15 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
// 转换拉卡拉的日期格式 yyyy-MM-dd
|
||||
record = convLklDateFormat(record);
|
||||
|
||||
log.debug("保存商家入驻申请信息,手机号: {}", loginMobile);
|
||||
if (!add(record)) {
|
||||
log.error("入驻信息提交失败,手机号: {}", loginMobile);
|
||||
return CommonResult.failed("入驻信息提交失败!");
|
||||
}
|
||||
|
||||
// 给平台管理员发短信,通知有商家入驻:尊敬的管理员,商家 ${name},提交了入驻我们平台的申请,请及时对相关资质材料予以审核,以便推进后续流程。
|
||||
// 获取平台方的手机号码,发送短信通知
|
||||
log.debug("发送入驻通知短信给平台管理员");
|
||||
Pair<String, String> mobileAndLicenseNumber = esignPlatformInfoService.getEsignPlatformMobileAndLicenseNumber();
|
||||
if (mobileAndLicenseNumber != null) {
|
||||
Map<String, Object> tmplArgs = new HashMap<>(1);
|
||||
@ -311,6 +341,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
shopMessageTemplateService.aliyunSmsSend(mobileAndLicenseNumber.getFirst(), "SMS_486545331", tmplArgs);//SMS_479760276
|
||||
}
|
||||
|
||||
log.info("商家入驻申请提交成功,recordId: {},手机号: {}", record.getId(), loginMobile);
|
||||
return CommonResult.success();
|
||||
}
|
||||
|
||||
@ -674,41 +705,49 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
* 平台更新商户入驻信息
|
||||
*
|
||||
* @param record 商户入驻记录
|
||||
* @return
|
||||
* @return 更新结果
|
||||
*/
|
||||
@Override
|
||||
public CommonResult updateMerchEntry(ShopMchEntry record) {
|
||||
log.debug("开始更新商户入驻信息,recordId={}", record != null ? record.getId() : null);
|
||||
|
||||
if (record == null || record.getId() == null || record.getId() <= 0) {
|
||||
log.warn("更新商户入驻信息参数校验失败,record is null or id is invalid");
|
||||
return CommonResult.failed("缺少必要参数!");
|
||||
}
|
||||
|
||||
// 固定用户ID(模拟管理员)
|
||||
Integer userId = 0;
|
||||
// UserDto user = getCurrentUser();
|
||||
// if (!user.isAdmin()) {
|
||||
// return CommonResult.failed(ResultCode.FORBIDDEN);
|
||||
// }
|
||||
// userId = user.getId();
|
||||
UserDto user = getCurrentUser();
|
||||
if (user == null) {
|
||||
log.warn("用户未登录,无法更新商户入驻信息");
|
||||
return CommonResult.failed("用户未登录!");
|
||||
}
|
||||
|
||||
if (!user.isAdmin()) {
|
||||
log.warn("用户无权限更新商户入驻信息,userId={}", user.getId());
|
||||
return CommonResult.failed(ResultCode.FORBIDDEN);
|
||||
}
|
||||
userId = user.getId();
|
||||
|
||||
record.setUpdated_by(userId);
|
||||
record.setUpdated_at(new Date());
|
||||
|
||||
if (record.getSettlement_method() != null
|
||||
|| record.getSettlement_method() < 0
|
||||
|| record.getSettlement_method() > 1) {
|
||||
record.setSettlement_method(0);
|
||||
}
|
||||
record.setSettlement_method(1); //结算交割天数(结算类型):0-秒到;1-次日结算(分账必须次日结算)
|
||||
|
||||
// 检查全部非空字段的格式
|
||||
log.debug("开始校验商户入驻信息字段格式");
|
||||
Pair<Boolean, String> checkResult = checkMchEntryInfo(record, false, true);
|
||||
if (!checkResult.getFirst()) {
|
||||
log.warn("商户入驻信息字段格式校验失败,错误信息: {}", checkResult.getSecond());
|
||||
return CommonResult.failed(checkResult.getSecond());
|
||||
}
|
||||
|
||||
if (!updateById(record)) {
|
||||
log.error("更新商户入驻信息失败,recordId={}", record.getId());
|
||||
return CommonResult.failed("更新商户入驻信息失败!");
|
||||
}
|
||||
|
||||
log.info("商户入驻信息更新成功,recordId={}", record.getId());
|
||||
return CommonResult.success();
|
||||
}
|
||||
|
||||
@ -834,43 +873,53 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
/**
|
||||
* 商家入驻审批
|
||||
*
|
||||
* @param mchId
|
||||
* @param mchId 商户ID
|
||||
* @param approvalStatus 入驻审批状态:1-已通过;2-未通过;3-待审核;4-未申请过;5-已提交拉卡拉审核;21-拉卡拉审核未通过
|
||||
* @param approvalRemark 审批备注
|
||||
* @param approvalInvalidCol 审批无效字段
|
||||
* @return
|
||||
* @return 审批结果
|
||||
*/
|
||||
@Override
|
||||
public CommonResult shopMerchEntryApproval(Long mchId, Integer approvalStatus, String approvalRemark, String approvalInvalidCol) {
|
||||
log.debug("开始处理商家入驻审批,mchId={}, approvalStatus={}", mchId, approvalStatus);
|
||||
|
||||
// 固定用户ID(模拟管理员)
|
||||
Integer userId = 0;
|
||||
|
||||
UserDto user = getCurrentUser();
|
||||
if (!user.isAdmin()) {
|
||||
if (user == null || !user.isAdmin()) {
|
||||
log.warn("用户无权限进行商家入驻审批操作,userId={}", user.getId());
|
||||
return CommonResult.failed(ResultCode.FORBIDDEN);
|
||||
}
|
||||
userId = user.getId();
|
||||
|
||||
// 参数校验流程
|
||||
if (ObjectUtil.isEmpty(mchId) || ObjectUtil.isEmpty(approvalStatus)) {
|
||||
log.warn("商家入驻审批参数校验失败,缺少必要参数 mchId={} 或 approvalStatus={}", mchId, approvalStatus);
|
||||
return CommonResult.failed("缺少必要参数!");
|
||||
}
|
||||
|
||||
// 审核状态有效性校验
|
||||
if (!approvalStatus.equals(CommonConstant.MCH_APPR_STA_LKL_PADDING) && !approvalStatus.equals(CommonConstant.MCH_APPR_STA_NOPASS)) {
|
||||
log.warn("商家入驻审批状态参数不合法,approvalStatus={}", approvalStatus);
|
||||
return CommonResult.failed("审批状态有误!");
|
||||
}
|
||||
|
||||
// 查询入驻记录
|
||||
ShopMchEntry record = get(mchId);
|
||||
if (record == null) {
|
||||
log.warn("商家入驻记录不存在,mchId={}", mchId);
|
||||
return CommonResult.failed("商家入驻记录不存在!");
|
||||
}
|
||||
|
||||
// 自动计算商家分成比例
|
||||
BigDecimal splitRatio = shopBaseStoreCategoryService.getStoreCategoryRatio(record.getBiz_category());
|
||||
if (splitRatio == null || splitRatio.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
splitRatio = new BigDecimal(100);
|
||||
BigDecimal splitRatio = record.getSplit_ratio();
|
||||
if (splitRatio == null || BigDecimal.ZERO.compareTo(splitRatio) >= 0
|
||||
|| record.getSplit_ratio().compareTo(new BigDecimal(100)) >= 0) {
|
||||
// 自动计算商家分成比例
|
||||
splitRatio = shopBaseStoreCategoryService.getStoreCategoryRatio(record.getBiz_category());
|
||||
if (splitRatio == null || splitRatio.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
splitRatio = new BigDecimal(94);
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是驳回状态,直接返回成功消息
|
||||
@ -895,17 +944,12 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
record.setApproval_status(approvalStatus);
|
||||
record.setApproval_remark(approvalRemark);
|
||||
record.setApproval_invalid_col(approvalInvalidCol);
|
||||
record.setSplit_ratio(splitRatio);
|
||||
record.setUpdated_by(userId);
|
||||
|
||||
record.setSettlement_method(1); // 结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
record.setSplit_ratio(splitRatio);
|
||||
|
||||
// 转换拉卡拉的日期格式 yyyy-MM-dd
|
||||
record = convLklDateFormat(record);
|
||||
// if (record.getSettlement_method() == null
|
||||
// || record.getSettlement_method() < 0
|
||||
// || record.getSettlement_method() > 1) {
|
||||
record.setSettlement_method(1); // 结算类型:0-秒到(不分账);1-次日结算(需要分账)
|
||||
// }
|
||||
|
||||
// 执行更新操作
|
||||
if (!updateById(record)) {
|
||||
@ -915,6 +959,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
|
||||
// 如果是驳回状态,直接返回成功消息
|
||||
if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_NOPASS)) {
|
||||
log.info("商家入驻审批驳回成功,mchId={}", mchId);
|
||||
return CommonResult.success(null, "驳回成功!");
|
||||
}
|
||||
|
||||
@ -923,6 +968,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
// 平台人工审核通过后,触发去拉卡拉商家入网电子合同签署
|
||||
// 下一步:商家入网电子合同签署完毕后,收到异步通知,触发拉卡拉商家进件(重要环节)
|
||||
try {
|
||||
log.debug("开始调用拉卡拉电子合同签署申请,mchId={}", mchId);
|
||||
Pair<Boolean, String> resultPair = lakalaApiService.applyLedgerMerEc(mchId);
|
||||
if (!resultPair.getFirst()) {
|
||||
log.warn("拉卡拉电子合同签署申请失败: {}", resultPair.getSecond());
|
||||
@ -935,6 +981,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
return CommonResult.failed("系统处理审批出错,请联系管理员!");
|
||||
}
|
||||
|
||||
log.info("商家入驻平台初步审批处理完成,mchId={}", mchId);
|
||||
|
||||
// E签宝暂时停止使用
|
||||
// if (approvalStatus.equals(CommonConstant.Enable)) {
|
||||
@ -959,6 +1006,7 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
return CommonResult.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 检查商家是否能申请入驻
|
||||
* 根据入驻主体类型(企业或个人)使用不同的判断条件:
|
||||
@ -1752,10 +1800,14 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
|
||||
approvalRemark = "合同签署完成,商家信息正在提交审核,请耐心等待";
|
||||
} else if (CommonConstant.Enable.equals(hasApplyMerchant)) {
|
||||
approvalRemark = "商家资质审核通过,系统正在提交分账业务申请,请耐心等待";
|
||||
} else if (CommonConstant.Enable.equals(hasApplySplit)) {
|
||||
approvalRemark = "提交分账业务申请已通过,系统正在申请分账接收方事宜";
|
||||
} else if (CommonConstant.Enable.equals(hasApplyReceiver)) {
|
||||
approvalRemark = "分账接收方申请成功,系统正在处理接收方绑定";
|
||||
if (CommonConstant.Enable.equals(hasApplySplit)) {
|
||||
approvalRemark = "分账接收方申请成功,系统正在处理接收方绑定事宜";
|
||||
} else {
|
||||
approvalRemark = "分账接收方申请成功,系统正在处理分账业务申请事宜";
|
||||
}
|
||||
} else if (CommonConstant.Enable.equals(hasApplySplit)) {
|
||||
approvalRemark = "提交分账业务申请已通过,系统正在处理接收方绑定事宜";
|
||||
} else if (CommonConstant.Enable.equals(hasBindReceiver)) {
|
||||
approvalRemark = "分账接收方绑定成功,系统准备创建初始化店铺";
|
||||
} else if (CommonConstant.Enable.equals(storeStatus)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user