package com.smartor.common;
|
|
import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.smartor.domain.*;
|
import com.smartor.mapper.PatWildcardMapper;
|
import com.smartor.service.DingTalkService;
|
import com.smartor.service.WeChatService;
|
import com.smartor.service.impl.BaseSmsaccountServiceImpl;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.UUID;
|
|
/**
|
* 发送服务工具类
|
*/
|
@Component
|
public class SendService {
|
@Autowired
|
private BaseSmsaccountServiceImpl baseSmsaccountService;
|
|
@Autowired
|
private DingTalkService dingTalkService;
|
|
@Autowired
|
private PatWildcardMapper patWildcardMapper;
|
|
@Autowired
|
private WeChatService weChatService;
|
|
public Boolean sendMsg(SendMagParam sendMagParam) {
|
// 1,多媒体 2,纸质 3,电话 4,短信 5.微信公众号 6.微信小程序 7.支付宝 8.智能小程序 9.钉钉
|
switch (sendMagParam.getType()) {
|
case ("1"):
|
|
case ("2"):
|
|
case ("3"):
|
|
case ("4"):
|
// BaseSmsRequest baseSmsRequest = new BaseSmsRequest();
|
// baseSmsRequest.setPhoneNumber(sendMagParam.getPhone());
|
// baseSmsRequest.setTemplateCode("SMS_461860582");
|
// SendSmsResponseBody sendSmsResponseBody = baseSmsaccountService.sendMsg(baseSmsRequest);
|
|
//下面的短信发送,仅测试
|
BaseSmsRequest baseSmsRequest = new BaseSmsRequest();
|
baseSmsRequest.setPhoneNumber("13634195431");
|
baseSmsRequest.setTemplateCode("SMS_279456451");
|
baseSmsRequest.setTemplateParam("{'code':'58965'}");
|
SendSmsResponseBody sendSmsResponseBody = baseSmsaccountService.sendMsg(baseSmsRequest);
|
if (sendSmsResponseBody.getCode().equals("OK")) {
|
return true;
|
}
|
return false;
|
case ("5"):
|
WeChatSendVo weChatSendVo = new WeChatSendVo();
|
weChatSendVo.setUrl(sendMagParam.getUrl());
|
weChatSendVo.setTemplateId(sendMagParam.getTmpCode());
|
ObjectMapper objectMapper = new ObjectMapper();
|
Map map = null;
|
try {
|
map = objectMapper.readValue(sendMagParam.getContent(), Map.class);
|
} catch (JsonProcessingException e) {
|
e.printStackTrace();
|
}
|
weChatSendVo.setContent(map);
|
Boolean aBoolean1 = weChatService.sendMessageToFollowers(weChatSendVo);
|
return aBoolean1;
|
case ("6"):
|
|
case ("7"):
|
|
case ("8"):
|
|
case ("9"):
|
DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
|
Boolean aBoolean = dingTalkService.sendNotification(dingTalkReqVo);
|
if (aBoolean) {
|
return true;
|
}
|
default:
|
return false;
|
}
|
|
}
|
|
/**
|
* 对问题中的通配符进行匹配
|
*
|
* @param script
|
* @param patArchive
|
* @return
|
*/
|
public String patWildcard(String script, PatArchive patArchive) {
|
List<PatWildcard> patWildcards = patWildcardMapper.selectPatWildcardList(new PatWildcard());
|
for (PatWildcard patWildcard : patWildcards) {
|
try {
|
//获取患者对应的字段的值
|
Field field = patArchive.getClass().getField(patWildcard.getPatField());
|
field.setAccessible(true);
|
String value = field.get(patArchive).toString();
|
//将问题中的通配符进行替换
|
script.replaceAll(patWildcard.getWildcard(), value);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
return script;
|
}
|
}
|