Browse Source

添加项目短信提醒接口

dev
sunyuchao 5 years ago
parent
commit
b7312bb88c
  1. 10
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java
  2. 31
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/ProjectSendMsgFormDTO.java
  3. 9
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java
  4. 6
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java
  5. 17
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java
  6. 10
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java
  7. 43
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java

10
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java

@ -27,4 +27,14 @@ public interface SmsTemplateConstant {
* 修改密码验证码
*/
String CHANGE_PASSWORD = "SMS_150731393";
/**
* 项目被吹哨提醒
*/
String PROJECT_TRANSFER = "SMS_200187239";
/**
* 项目滞留提醒
*/
String PROJECT_OVERDUE = "SMS_206885207";
}

31
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/ProjectSendMsgFormDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 项目提醒--根据手机号短信模板编码发送短信 验证码
*
* @author sun
*/
@Data
public class ProjectSendMsgFormDTO implements Serializable {
private static final long serialVersionUID = 8894395590639206399L;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class})
private String mobile;
/**
* 场景
*/
@NotBlank(message = "短信模板编码不能为空", groups = {AddUserInternalGroup.class})
private String aliyunTemplateCode;
public interface AddUserInternalGroup {}
public interface AddUserShowGroup extends CustomerClientShowGroup {}
}

9
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java

@ -3,6 +3,7 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
@ -77,4 +78,12 @@ public interface EpmetMessageOpenFeignClient {
**/
@PostMapping(value = "message/wxmpmessage/sendwxsubscribemessage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList);
/**
* @param formDTOList
* @author sun
* @description 项目流转或滞留推送短信提醒
**/
@PostMapping(value = "message/sms/projectsendmsg", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList);
}

6
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
@ -51,4 +52,9 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig
public Result sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendWxSubscribeMessage", msgList);
}
@Override
public Result projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "projectSendMsg", formDTOList);
}
}

17
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java

@ -16,6 +16,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AliyunGroup;
import com.epmet.commons.tools.validator.group.QcloudGroup;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.enums.PlatformEnum;
@ -32,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
@ -139,4 +141,19 @@ public class SmsController {
SendVerificationCodeResultDTO resultDTO=sysSmsService.sendVerificationCode(formDTO);
return new Result<SendVerificationCodeResultDTO>().ok(resultDTO);
}
/**
* @param formDTOList
* @author sun
* @description 项目流转或滞留推送短信提醒
**/
@PostMapping("projectsendmsg")
public Result projectSendMsg(@RequestBody List<ProjectSendMsgFormDTO> formDTOList) {
for (ProjectSendMsgFormDTO formDTO : formDTOList) {
ValidatorUtils.validateEntity(formDTO, ProjectSendMsgFormDTO.AddUserShowGroup.class, ProjectSendMsgFormDTO.AddUserInternalGroup.class);
}
sysSmsService.projectSendMsg(formDTOList);
return new Result();
}
}

10
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java

@ -12,11 +12,13 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.entity.SysSmsEntity;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
@ -58,5 +60,13 @@ public interface SysSmsService extends BaseService<SysSmsEntity> {
* @Date 2020/6/23 21:07
**/
SendVerificationCodeResultDTO sendVerificationCode(SendVerificationCodeFormDTO formDTO);
/**
* @param formDTOList
* @author sun
* @description 项目流转或滞留推送短信提醒
**/
void projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList);
}

43
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java

@ -20,6 +20,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.SysSmsDao;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.entity.SysSmsEntity;
@ -38,6 +39,7 @@ import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Service
@ -181,4 +183,45 @@ public class SysSmsServiceImpl extends BaseServiceImpl<SysSmsDao, SysSmsEntity>
}
return data;
}
/**
* @param formDTOList
* @author sun
* @description 项目流转或滞留推送短信提醒
**/
@Override
public void projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList) {
formDTOList.forEach(dto->{
SysSmsDTO sysSmsDTO = new SysSmsDTO();
sysSmsDTO.setMobile(dto.getMobile());
sysSmsDTO.setAliyunTemplateCode(dto.getAliyunTemplateCode());
//推送短信
this.sendMsg(sysSmsDTO);
});
}
/**
* @author sun
* @description 推送短信信箱出错不中断
**/
private void sendMsg(SysSmsDTO sysSmsDTO) {
logger.info(String.format("固定短信模板推送短信信息接口入参:%s", JSON.toJSONString(sysSmsDTO)));
LinkedHashMap<String, String> map = null;
try {
//短信服务
AbstractSmsService service = SmsFactory.build();
if (service == null) {
logger.error("发送短信异常,ErrorCode:%s,异常AbstractSmsService is null", ModuleErrorCode.SMS_CONFIG);
}
//发送短信
if (StringUtils.isNotBlank(sysSmsDTO.getAliyunTemplateCode())) {
service.sendSmsByAliyunTemplateCode(sysSmsDTO.getMobile(), map, sysSmsDTO.getAliyunTemplateCode());
} else {
service.sendSms(sysSmsDTO.getMobile(), map);
}
} catch (Exception e) {
logger.error(String.format("项目提醒发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage()));
}
}
}

Loading…
Cancel
Save