diff --git a/src/main/java/com/newyetai/recruit/position/dto/PositionRegistrationOperatorDTO.java b/src/main/java/com/newyetai/recruit/position/dto/PositionRegistrationOperatorDTO.java index 099712c..fb0e96a 100644 --- a/src/main/java/com/newyetai/recruit/position/dto/PositionRegistrationOperatorDTO.java +++ b/src/main/java/com/newyetai/recruit/position/dto/PositionRegistrationOperatorDTO.java @@ -84,4 +84,8 @@ public class PositionRegistrationOperatorDTO implements Serializable { * 标签 */ private String tag; -} \ No newline at end of file + + @ApiModelProperty("是否发送短信") + @Builder.Default + private Boolean sendSms = false; +} diff --git a/src/main/java/com/newyetai/recruit/position/service/impl/PositionRegistrationServiceImpl.java b/src/main/java/com/newyetai/recruit/position/service/impl/PositionRegistrationServiceImpl.java index dc3525e..822b746 100644 --- a/src/main/java/com/newyetai/recruit/position/service/impl/PositionRegistrationServiceImpl.java +++ b/src/main/java/com/newyetai/recruit/position/service/impl/PositionRegistrationServiceImpl.java @@ -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 contentParamDataMap) { + private void sendNotice(NoticeTemplateCodeEnum templateCodeEnum, Long receiverUserId, Map 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 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()); } } diff --git a/src/main/java/com/newyetai/usercenter/enums/SmsScenesEnum.java b/src/main/java/com/newyetai/usercenter/enums/SmsScenesEnum.java index 986250f..296fafc 100644 --- a/src/main/java/com/newyetai/usercenter/enums/SmsScenesEnum.java +++ b/src/main/java/com/newyetai/usercenter/enums/SmsScenesEnum.java @@ -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; diff --git a/src/main/java/com/newyetai/usercenter/enums/SmsTemplateCodeEnum.java b/src/main/java/com/newyetai/usercenter/enums/SmsTemplateCodeEnum.java index 9781e1e..93a4039 100644 --- a/src/main/java/com/newyetai/usercenter/enums/SmsTemplateCodeEnum.java +++ b/src/main/java/com/newyetai/usercenter/enums/SmsTemplateCodeEnum.java @@ -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"), - - /** 合同续期(人事) **/ - CONTRACT_CONTINUED("contractContinued"), + * 岗位报名-面试通过 + **/ + POSITION_INTERVIEW_PASS("position_interview_pass"), + + /** + * 岗位报名-面试不通过 + **/ + POSITION_INTERVIEW_FAIL("position_interview_fail"), + - /** 机构审批通过 **/ - ORG_APPLY_SUCCESS("orgApplySuccess"), - /** 机构审批不通过 **/ - ORG_APPLY_REJECT("orgApplyReject"), ; + private static final Map 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); + } + } diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 1794402..918f230 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -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 diff --git a/src/main/resources/application-uat.properties b/src/main/resources/application-uat.properties index 342b2c7..1c7e5c2 100644 --- a/src/main/resources/application-uat.properties +++ b/src/main/resources/application-uat.properties @@ -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