job sendsms

This commit is contained in:
ran.shang
2025-08-24 19:29:01 +08:00
parent 5effd9bcf4
commit f572ee9714
6 changed files with 65 additions and 43 deletions

View File

@@ -84,4 +84,8 @@ public class PositionRegistrationOperatorDTO implements Serializable {
* 标签
*/
private String tag;
@ApiModelProperty("是否发送短信")
@Builder.Default
private Boolean sendSms = false;
}

View File

@@ -4,6 +4,10 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import cn.hutool.core.date.DateUtil;
import com.newyetai.common.AlitaResult;
import com.newyetai.common.validation.util.ValidateUtils;
import com.newyetai.sdk.sms.util.SmsUtils;
import com.newyetai.usercenter.enums.SmsTemplateCodeEnum;
import com.newyetai.usercenter.notice.constant.NoticeChannelTypeEnum;
import com.newyetai.usercenter.notice.constant.NoticeTemplateCodeEnum;
import com.newyetai.usercenter.notice.dto.NoticeSendRecordOperateDTO;
@@ -335,7 +339,7 @@ public class PositionRegistrationServiceImpl implements PositionRegistrationServ
// 发送通知
sendNotice(NoticeTemplateCodeEnum.POSITION_INVITE, positionRegistrationDTO.getUserId(),
positionRegistrationMapper.noticeInvite(operatorDTO.getId(),
UserContextHolder.getLoginUserId()));
UserContextHolder.getLoginUserId()), operatorDTO.getSendSms());
}
@@ -392,19 +396,20 @@ public class PositionRegistrationServiceImpl implements PositionRegistrationServ
if (PositionRegistrationStatusEnum.FAIL_THE_INTERVIEW.getStatus().equals(operatorDTO.getStatus())){
sendNotice(NoticeTemplateCodeEnum.POSITION_INTERVIEW_FAIL, positionRegistrationDTO.getUserId(),
positionRegistrationMapper.noticeInterview(operatorDTO.getId(),
UserContextHolder.getLoginUserId()));
UserContextHolder.getLoginUserId()), operatorDTO.getSendSms());
} else {
sendNotice(NoticeTemplateCodeEnum.POSITION_INTERVIEW_PASS,
positionRegistrationDTO.getUserId(),
positionRegistrationMapper.noticeInterview(operatorDTO.getId(),
UserContextHolder.getLoginUserId()));
UserContextHolder.getLoginUserId()), operatorDTO.getSendSms());
}
}
//发送站内信
private void sendNotice(NoticeTemplateCodeEnum templateCodeEnum, Long receiverUserId, Map<String, Object> contentParamDataMap) {
private void sendNotice(NoticeTemplateCodeEnum templateCodeEnum, Long receiverUserId, Map<String, Object> contentParamDataMap, Boolean sendSms) {
String templateCode = templateCodeEnum.getType();
try {
// 发送站内信
NoticeSendRecordOperateDTO sendRecordOperateDTO = NoticeSendRecordOperateDTO.builder()
.templateCode(templateCode)
.channelType(NoticeChannelTypeEnum.SITE.getType())
@@ -413,7 +418,23 @@ public class PositionRegistrationServiceImpl implements PositionRegistrationServ
.build();
noticeSendRecordService.create(sendRecordOperateDTO);
} catch (Exception e) {
log.info("发送[{}]站内信失败:{}", templateCode, e.getMessage());
log.info("发送站内信[{}]失败:{}", templateCode, e.getMessage());
}
// 发送短信
try {
UserDTO userDTO = userService.get(receiverUserId);
if (StringUtils.isNotBlank(userDTO.getPhone()) && Boolean.TRUE.equals(sendSms)) {
SmsTemplateCodeEnum smsTemplate = SmsTemplateCodeEnum.getByTemplateCodeKey(templateCode);
if (smsTemplate != null) {
AlitaResult<Boolean> result = SmsUtils.getService().sendSimple(smsTemplate.getTemplateCodeKey(), userDTO.getPhone(), contentParamDataMap);
if (!Boolean.TRUE.equals(result.getSuccess()) || !Boolean.TRUE.equals(result.getData())) {
log.info("发送短信失败,用户:{},模板:{},原因:{}", receiverUserId, templateCode, result.getMsg());
}
}
}
} catch (Exception e) {
log.info("发送短信[{}]失败:{}", templateCode, e.getMessage());
}
}

View File

@@ -12,7 +12,6 @@ public enum SmsScenesEnum {
UPDATE_PAY_PASSWORD("3", "更新支付密码"),
CREATE_SAVE_CODE("4", "设置安全码"),
UPDATE_PASSWORD("5", "更新密码"),
SAVE_ALIPAY_USER_INFO("6", "保存支付宝用户信息", "纽业态", SmsTemplateCodeEnum.CYB_COLLECT_INFO_SMS),
WECHAT_USER_INFO("7", "微信端用户信息绑定");
private String type;

View File

@@ -1,6 +1,9 @@
package com.newyetai.usercenter.enums;
import com.newyetai.sdk.sms.dto.ITemplateCode;
import com.google.common.collect.Maps;
import java.util.Map;
/**
* 短信模版
@@ -9,54 +12,39 @@ import com.newyetai.sdk.sms.dto.ITemplateCode;
*/
public enum SmsTemplateCodeEnum implements ITemplateCode {
/**
* 个人签约认证短信模版
**/
PERSON_VERIFY("templatePersonVerify"),
/**
* 结算提醒通知模版
**/
SETTLEMENT_NOTIFY("templateSettlementNotify"),
/**
* 结算支付验证
**/
SETTLE_CAPTCHA("templateSettleCaptcha"),
/**
* 机构开通通知模版
**/
ORG_CREATE("templateOrgCreate"),
/**
* 代发开通通知模板
**/
AGENT_SEND_SMS("agentSendSms"),
/**
* 三要素认证开通通知模板
**/
THREE_ELEMENT_SMS("threeElementSms"),
/**
* 手机短信模拟
**/
PHONE_SMS("phoneSms"),
/**
* 采源宝信息收集Sms
* 岗位报名-邀请面试
**/
CYB_COLLECT_INFO_SMS("cybCollectInfoSms"),
POSITION_INVITE("position_invite"),
/**
* 无卡发薪支付成功通知
*/
UPAY_PAY_SUCCESS("upayPaySuccess"),
* 岗位报名-面试通过
**/
POSITION_INTERVIEW_PASS("position_interview_pass"),
/**
* 岗位报名-面试不通过
**/
POSITION_INTERVIEW_FAIL("position_interview_fail"),
/** 合同续期(人事) **/
CONTRACT_CONTINUED("contractContinued"),
/** 机构审批通过 **/
ORG_APPLY_SUCCESS("orgApplySuccess"),
/** 机构审批不通过 **/
ORG_APPLY_REJECT("orgApplyReject"),
;
private static final Map<String, SmsTemplateCodeEnum> templateCodeMap;
static {
SmsTemplateCodeEnum[] smsTemplateCodeEnums = SmsTemplateCodeEnum.values();
templateCodeMap = Maps.newHashMapWithExpectedSize(smsTemplateCodeEnums.length);
for (SmsTemplateCodeEnum smsTemplateCodeEnum : smsTemplateCodeEnums) {
templateCodeMap.put(smsTemplateCodeEnum.getTemplateCodeKey(), smsTemplateCodeEnum);
}
}
/**
* 模版配置键
**/
@@ -71,4 +59,8 @@ public enum SmsTemplateCodeEnum implements ITemplateCode {
return this.templateCodeKey;
}
public static SmsTemplateCodeEnum getByTemplateCodeKey(String templateCodeKey) {
return templateCodeMap.get(templateCodeKey);
}
}

View File

@@ -131,6 +131,9 @@ sms.signName=\u65b0\u7586\u4eba\u624d\u521b\u65b0\u79d1\u6280
sms.numLimit=300000
#短信验证码模板配置
sms.phoneSms=SMS_320262429
sms.position_invite=SMS_493260244
sms.position_interview_pass=SMS_493400245
sms.position_interview_fail=SMS_493245262
#默认认证源:1fxq,2cl,4ali
alita.authenticationSource=4

View File

@@ -132,6 +132,9 @@ sms.signName=\u65b0\u7586\u4eba\u624d\u521b\u65b0\u79d1\u6280
sms.numLimit=300000
#短信验证码模板配置
sms.phoneSms=SMS_320262429
sms.position_invite=SMS_320262430
sms.position_interview_pass=SMS_320262431
sms.position_interview_fail=SMS_320262432
#默认认证源:1fxq,2cl,4ali
alita.authenticationSource=4