Browse Source

指派需求发短信

master
yinzuomei 3 years ago
parent
commit
a209553d82
  1. 21
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  2. 42
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java
  3. 8
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java
  4. 5
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java
  5. 14
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java
  6. 2
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java
  7. 30
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java
  8. 0
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql

21
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java

@ -43,6 +43,7 @@ import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.constant.UserDemandConstant; import com.epmet.constant.UserDemandConstant;
import com.epmet.constant.UserMessageTypeConstant; import com.epmet.constant.UserMessageTypeConstant;
import com.epmet.dao.IcUserDemandOperateLogDao; import com.epmet.dao.IcUserDemandOperateLogDao;
@ -431,7 +432,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
// 4、如果需求是小程序端上报的,提醒需求人,服务已指派 // 4、如果需求是小程序端上报的,提醒需求人,服务已指派
sendDemandUserHaveOrgService(entity,formDTO.getServerId(),formDTO.getServiceType()); sendDemandUserHaveOrgService(entity,formDTO.getServerId(),formDTO.getServiceType());
//给服务方负责人发短信 //给服务方负责人发短信
sendPhoneMsgToServer(formDTO.getUserId(),serverInfoDTO.getMobile()); sendPhoneMsgToServer(formDTO.getCustomerId(),formDTO.getUserId(),serverInfoDTO.getMobile());
} }
/** /**
@ -439,9 +440,23 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
* @param staffId * @param staffId
* @param mobile * @param mobile
*/ */
private void sendPhoneMsgToServer(String staffId, String mobile) { private void sendPhoneMsgToServer(String customerId,String staffId, String mobile) {
// XXX社区给您指派了一个新的需求,请查看 // XXX社区给您指派了一个新的需求,请查看
// todo CustomerStaffInfoCacheResult staffInfoCacheResult=CustomerStaffRedis.getStaffInfo(customerId,staffId);
if (null == staffInfoCacheResult || StringUtils.isBlank(staffInfoCacheResult.getAgencyName())) {
return;
}
List<SendSmsFormDTO> smsList=new ArrayList<>();
SendSmsFormDTO sms = new SendSmsFormDTO();
sms.setCustomerId(customerId);
sms.setMobile(mobile);
sms.setAliyunTemplateCode(SmsTemplateConstant.PROJECT_TRANSFER);
List<String> paramsContent=new ArrayList<>();
paramsContent.add(String.format("%s给您指派了一个新的需求,请查看",staffInfoCacheResult.getAgencyName()));
sms.setParamsContent(paramsContent);
smsList.add(sms);
messageOpenFeignClient.sendMsg(smsList);
} }
/** /**

42
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendSmsFormDTO.java

@ -0,0 +1,42 @@
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;
import java.util.List;
/**
* @Description
* @Author yzm
* @Date 2022/7/27 17:23
*/
@Data
public class SendSmsFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class})
private String mobile;
/**
* 场景
*/
@NotBlank(message = "短信模板编码不能为空", groups = {AddUserInternalGroup.class})
private String aliyunTemplateCode;
/**
* 如果短信模板内有参数按序传入
*/
private List<String> paramsContent;
private String customerId;
}

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

@ -21,8 +21,8 @@ import java.util.List;
* @author yinzuomei@elink-cn.com * @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:47 * @date 2020/6/4 13:47
*/ */
//@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085") @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class, url = "http://127.0.0.1:8085")
@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class) // @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallbackFactory = EpmetMessageOpenFeignClientFallbackFactory.class)
public interface EpmetMessageOpenFeignClient { public interface EpmetMessageOpenFeignClient {
/** /**
* 发送短信 * 发送短信
@ -123,4 +123,8 @@ public interface EpmetMessageOpenFeignClient {
*/ */
@PostMapping("/message/system/pendding-mq-msg-scan") @PostMapping("/message/system/pendding-mq-msg-scan")
Result penddingMqMsgScan(); Result penddingMqMsgScan();
@PostMapping(value = "message/sms/send-msg", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result sendMsg(@RequestBody List<SendSmsFormDTO> formDTO);
} }

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

@ -73,4 +73,9 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig
public Result penddingMqMsgScan() { public Result penddingMqMsgScan() {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "penddingMqMsgScan"); return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "penddingMqMsgScan");
} }
@Override
public Result sendMsg(List<SendSmsFormDTO> formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendMsg",formDTO);
}
} }

14
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.group.AliyunGroup;
import com.epmet.commons.tools.validator.group.QcloudGroup; import com.epmet.commons.tools.validator.group.QcloudGroup;
import com.epmet.dto.SysSmsDTO; import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendSmsFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.enums.PlatformEnum; import com.epmet.enums.PlatformEnum;
@ -128,4 +129,17 @@ public class SmsController {
return new Result(); return new Result();
} }
/**
* 通用发短信方法传入短信模板内容
*
* @param formDTOList
* @return
*/
@PostMapping("send-msg")
public Result sendMsg(@RequestBody List<SendSmsFormDTO> formDTOList) {
ValidatorUtils.validateEntity(formDTOList, SendSmsFormDTO.AddUserShowGroup.class, SendSmsFormDTO.AddUserInternalGroup.class);
sysSmsService.sendMsg(formDTOList);
return new Result();
}
} }

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

@ -13,6 +13,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO; import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendSmsFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.entity.SysSmsEntity; import com.epmet.entity.SysSmsEntity;
@ -77,5 +78,6 @@ public interface SysSmsService extends BaseService<SysSmsEntity> {
**/ **/
void projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList); void projectSendMsg(List<ProjectSendMsgFormDTO> formDTOList);
void sendMsg(List<SendSmsFormDTO> formDTOList);
} }

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

@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ErrorCode; import com.epmet.commons.tools.exception.ErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
@ -25,6 +26,7 @@ import com.epmet.dao.SysSmsDao;
import com.epmet.dto.SysSmsDTO; import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.CrmParameterFormDTO; import com.epmet.dto.form.CrmParameterFormDTO;
import com.epmet.dto.form.ProjectSendMsgFormDTO; import com.epmet.dto.form.ProjectSendMsgFormDTO;
import com.epmet.dto.form.SendSmsFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.result.CrmParameterResultDTO; import com.epmet.dto.result.CrmParameterResultDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO;
@ -323,7 +325,33 @@ public class SysSmsServiceImpl extends BaseServiceImpl<SysSmsDao, SysSmsEntity>
service.sendSmsMsg(sysSmsDTO); service.sendSmsMsg(sysSmsDTO);
} }
} catch (Exception e) { } catch (Exception e) {
logger.warn(String.format("项目提醒发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage())); logger.warn(String.format("发送短信失败,失败手机号:%s,ErrorCode:%s", sysSmsDTO.getMobile(), e.getMessage()));
}
}
@Override
public void sendMsg(List<SendSmsFormDTO> formDTOList) {
try {
for(SendSmsFormDTO formDTO:formDTOList){
SysSmsDTO sysSmsDTO = new SysSmsDTO();
sysSmsDTO.setMobile(formDTO.getMobile());
sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode());
sysSmsDTO.setCustomerId(formDTO.getCustomerId());
HashMap<String, String> map = new HashMap<>();
try{
if(SmsTemplateConstant.PROJECT_TRANSFER.equals(formDTO.getAliyunTemplateCode())){
map.put("params1", formDTO.getParamsContent().get(NumConstant.ZERO));
}
String paramJson = new ObjectMapper().writeValueAsString(map);
sysSmsDTO.setParams(paramJson);
} catch (JsonProcessingException e) {
log.warn("sendMsg JsonProcessingException", e);
}
//推送短信
this.sendMsg(sysSmsDTO);
}
} catch (Exception e) {
logger.error("sendMsg exception", e);
} }
} }

0
epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.34__formitem_zhzl.sql → epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.35__formitem_zhzl.sql

Loading…
Cancel
Save