package com.smartor.common;
|
|
import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody;
|
import com.smartor.domain.*;
|
import com.smartor.mapper.PatWildcardMapper;
|
import com.smartor.service.DingTalkService;
|
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.List;
|
|
/**
|
* 发送服务工具类
|
*/
|
@Component
|
public class SendService {
|
@Autowired
|
private BaseSmsaccountServiceImpl baseSmsaccountService;
|
|
@Autowired
|
private DingTalkService dingTalkService;
|
|
@Autowired
|
private PatWildcardMapper patWildcardMapper;
|
|
public Boolean sendMsg(SendMagParam sendMagParam) {
|
switch (sendMagParam.getType()) {
|
case ("多媒体"):
|
|
case ("纸质"):
|
|
case ("电话"):
|
|
case ("短信"):
|
BaseSmsRequest baseSmsRequest = new BaseSmsRequest();
|
baseSmsRequest.setPhoneNumber(sendMagParam.getPhone());
|
baseSmsRequest.setTemplateCode("SMS_461860582");
|
|
SendSmsResponseBody sendSmsResponseBody = baseSmsaccountService.sendMsg(baseSmsRequest);
|
if (sendSmsResponseBody.getCode().equals("OK")) {
|
return true;
|
}
|
return false;
|
case ("微信公众号"):
|
|
case ("微信小程序"):
|
|
case ("支付宝"):
|
|
case ("智能小程序"):
|
|
case ("钉钉"):
|
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;
|
}
|
}
|