|
|
@@ -110,11 +110,11 @@ public class CommSmsSendService {
|
|
|
throw new ServiceException("客户不存在");
|
|
|
}
|
|
|
String targetPhone = StringUtils.isNotBlank(param.getPhone()) ? param.getPhone() : customer.getMobile();
|
|
|
- checkSmsBlacklist(companyId, targetPhone);
|
|
|
+ checkCustomerSmsBlacklist(companyId, targetPhone);
|
|
|
if (companyUserId != null) {
|
|
|
CompanyUser companyUser = companyUserService.selectCompanyUserById(companyUserId);
|
|
|
if (companyUser != null && StringUtils.isNotBlank(companyUser.getPhonenumber())) {
|
|
|
- checkSmsBlacklist(companyId, companyUser.getPhonenumber());
|
|
|
+ checkSalesSmsBlacklist(companyId, companyUser.getPhonenumber());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -298,14 +298,14 @@ public class CommSmsSendService {
|
|
|
for (Long customerId : param.getCustomerIds()) {
|
|
|
CrmCustomer customer = crmCustomerService.selectCrmCustomerById(customerId);
|
|
|
if (customer != null && StringUtils.isNotBlank(customer.getMobile())) {
|
|
|
- checkSmsBlacklist(param.getCompanyId(), customer.getMobile());
|
|
|
+ checkCustomerSmsBlacklist(param.getCompanyId(), customer.getMobile());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if (param.getCompanyUserId() != null) {
|
|
|
CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
|
|
|
if (companyUser != null && StringUtils.isNotBlank(companyUser.getPhonenumber())) {
|
|
|
- checkSmsBlacklist(param.getCompanyId(), companyUser.getPhonenumber());
|
|
|
+ checkSalesSmsBlacklist(param.getCompanyId(), companyUser.getPhonenumber());
|
|
|
}
|
|
|
}
|
|
|
try {
|
|
|
@@ -359,17 +359,34 @@ public class CommSmsSendService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void checkSmsBlacklist(Long companyId, String phone) {
|
|
|
+ private void checkCustomerSmsBlacklist(Long companyId, String phone) {
|
|
|
+ checkSmsBlacklistInternal(companyId, phone, false);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkSalesSmsBlacklist(Long companyId, String phone) {
|
|
|
+ checkSmsBlacklistInternal(companyId, phone, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void checkSmsBlacklistInternal(Long companyId, String phone, boolean salesSide) {
|
|
|
if (StringUtils.isBlank(phone)) {
|
|
|
return;
|
|
|
}
|
|
|
+ String targetValue = PhoneUtil.resolvePhoneForBlacklist(phone);
|
|
|
+ if (StringUtils.isBlank(targetValue)) {
|
|
|
+ throw new ServiceException("手机号无效或解密失败");
|
|
|
+ }
|
|
|
CompanyVoiceRoboticCallBlacklistCheckParam checkParam = new CompanyVoiceRoboticCallBlacklistCheckParam();
|
|
|
checkParam.setCompanyId(companyId);
|
|
|
checkParam.setBusinessType(BusinessTypeEnum.SMS.getCode());
|
|
|
- checkParam.setTargetValue(PhoneUtil.decryptPhone(phone));
|
|
|
+ checkParam.setTargetType(1);
|
|
|
+ checkParam.setTargetValue(targetValue);
|
|
|
CompanyVoiceRoboticCallBlacklistCheckVO vo = companyVoiceRoboticCallBlacklistService.checkBlacklist(checkParam);
|
|
|
- if (!vo.getPass()) {
|
|
|
- throw new ServiceException("号码命中短信黑名单: " + phone);
|
|
|
+ if (Boolean.TRUE.equals(vo.getPass())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (Boolean.TRUE.equals(vo.getHitBlacklist())) {
|
|
|
+ throw new ServiceException(salesSide ? "销售号码黑名单校验未通过" : "客户号码黑名单校验未通过");
|
|
|
}
|
|
|
+ throw new ServiceException(StringUtils.defaultIfBlank(vo.getReason(), "黑名单校验未通过"));
|
|
|
}
|
|
|
}
|