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());
}
}