|
@ -5,6 +5,7 @@ import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.entity.wechat.WechatPushLog;
|
|
|
import com.yihu.wlyy.entity.wechat.WechatTemplate;
|
|
|
import com.yihu.wlyy.entity.wechat.WechatTemplateData;
|
|
|
import com.yihu.wlyy.entity.wechat.vo.WechatMsgVo;
|
|
|
import com.yihu.wlyy.repository.patient.PatientDao;
|
|
|
import com.yihu.wlyy.repository.wechat.WechatPushLogDao;
|
|
|
import com.yihu.wlyy.util.HttpUtil;
|
|
@ -39,164 +40,97 @@ public class PushMsgTask {
|
|
|
private HttpUtil httpUtil;
|
|
|
@Value("${server.server_url}")
|
|
|
private String server_url;
|
|
|
@Value("${pushMes.method}")
|
|
|
private String putMesMethod;
|
|
|
@Value("${pushMes.redis_prescription_title}")
|
|
|
private String redisQueue;
|
|
|
@Value("${putMesType.wechat}")
|
|
|
private String putMesType;
|
|
|
|
|
|
//模板id
|
|
|
@Value("${wechat.message.template_sign_success}")
|
|
|
private String template_sign_success;
|
|
|
@Value("${wechat.message.template_sign_failed}")
|
|
|
private String template_sign_failed;
|
|
|
@Value("${wechat.message.template_consult_notice}")
|
|
|
private String template_consult_notice;
|
|
|
@Value("${wechat.message.template_health_notice}")
|
|
|
private String template_health_notice;
|
|
|
@Value("${wechat.message.template_termination}")
|
|
|
private String template_termination;
|
|
|
@Value("${wechat.message.template_appoint_success}")
|
|
|
private String template_appoint_success;
|
|
|
@Value("${wechat.message.template_appoint_failed}")
|
|
|
private String template_appoint_failed;
|
|
|
@Value("${wechat.message.template_expenses_remind}")
|
|
|
private String template_expenses_remind;
|
|
|
@Value("${wechat.message.template_healthy_article}")
|
|
|
private String template_healthy_article;
|
|
|
@Value("${wechat.message.template_doctor_change}")
|
|
|
private String template_doctor_change;
|
|
|
@Value("${wechat.message.template_doctor_survey}")
|
|
|
private String template_doctor_survey;
|
|
|
@Value("${wechat.message.template_doctor_audit}")
|
|
|
private String template_doctor_audit;//审核结果通知
|
|
|
@Value("${wechat.message.template_doctor_service}")
|
|
|
private String template_doctor_service;//服务结果通知
|
|
|
@Value("${wechat.message.template_physical_examination}")
|
|
|
private String template_physical_examination;//体检提醒
|
|
|
@Value("${wechat.message.doctor_invitel_template}")
|
|
|
private String doctor_invitel_template;
|
|
|
@Value("${wechat.message.template_deal_with}")
|
|
|
private String template_deal_with;
|
|
|
|
|
|
@Autowired
|
|
|
private StringRedisTemplate redisTemplate;
|
|
|
|
|
|
@Autowired
|
|
|
private WechatPushLogDao wechatPushLogDao;
|
|
|
@Autowired
|
|
|
private WeiXinAccessTokenUtils accessTokenUtils;
|
|
|
@Autowired
|
|
|
private WeiXinOpenIdUtils weiXinOpenIdUtils;
|
|
|
@Autowired
|
|
|
private PatientDao patientDao;
|
|
|
|
|
|
/**
|
|
|
* 添加一条推送消息
|
|
|
*
|
|
|
* @param receiver 接收人
|
|
|
* @param type 消息类型
|
|
|
* @param title 消息标题
|
|
|
* @param msg 消息内容
|
|
|
* @param data 消息数据
|
|
|
* 微信推送类型枚举
|
|
|
* 新增模板在此添加枚举类型
|
|
|
*/
|
|
|
public void put(String receiver, String type, String title, String msg, String data) {
|
|
|
try {
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("receiver", receiver);
|
|
|
json.put("type", type);
|
|
|
json.put("title", title);
|
|
|
json.put("msg", msg);
|
|
|
json.put("data", data);
|
|
|
queue.put(json);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到消息队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
public enum pushType{
|
|
|
|
|
|
consult("咨询回复",1),
|
|
|
health_education("健康教育",2);
|
|
|
|
|
|
private String name;
|
|
|
private int value;
|
|
|
pushType(String name, int value) {
|
|
|
this.name = name;
|
|
|
this.value = value;
|
|
|
}
|
|
|
|
|
|
public String getName() {
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
public void setName(String name) {
|
|
|
this.name = name;
|
|
|
}
|
|
|
|
|
|
public int getValue() {
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
public void setValue(int value) {
|
|
|
this.value = value;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 添加微信消息
|
|
|
*
|
|
|
* 通过类型获取模板
|
|
|
* 新增模板在此添加枚举类型与模板映射
|
|
|
* @param type
|
|
|
* @param data
|
|
|
* @return
|
|
|
*/
|
|
|
public void putWxMsg(String access_token, int type, String openid, String name, JSONObject data) {
|
|
|
public String getWeChatTempId(Integer type){
|
|
|
try {
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("wx", true);
|
|
|
json.put("access_token", access_token);
|
|
|
json.put("type", type);
|
|
|
json.put("openid", openid);
|
|
|
json.put("name", name);
|
|
|
json.put("data", data);
|
|
|
//如果是内网推送到redis,如果是外网推送到内存队列
|
|
|
if (putMesMethod.equals("1")) {
|
|
|
JSONObject mes = new JSONObject();
|
|
|
mes.put("title", putMesType);
|
|
|
mes.put("value", json.toString());
|
|
|
redisTemplate.opsForList().leftPush(redisQueue, mes.toString());
|
|
|
} else {
|
|
|
queue.put(json);
|
|
|
if(pushType.consult.getValue()==type){
|
|
|
return template_consult_notice;
|
|
|
}else if(pushType.health_education.getValue()==type){
|
|
|
return template_health_notice;
|
|
|
}else {
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到微信消息列队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
}catch (Exception e){
|
|
|
return "";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据type及场景值添加微信消息
|
|
|
* @param access_token
|
|
|
* @param type
|
|
|
* @param scene
|
|
|
* @param openid
|
|
|
* @param name
|
|
|
* @param data packageTemplate方法打包后的模板数据
|
|
|
* 微信消息接口
|
|
|
*/
|
|
|
public void putWxMsg(String access_token, int type,String scene, String openid, String name, JSONObject data) {
|
|
|
public void putWxMsg(WechatMsgVo wx) {
|
|
|
try {
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("wx", true);
|
|
|
json.put("access_token", access_token);
|
|
|
json.put("type", type);
|
|
|
json.put("scene", scene);
|
|
|
json.put("openid", openid);
|
|
|
json.put("name", name);
|
|
|
json.put("data", data);
|
|
|
//如果是内网推送到redis,如果是外网推送到内存队列
|
|
|
if (putMesMethod.equals("1")) {
|
|
|
JSONObject mes = new JSONObject();
|
|
|
mes.put("title", putMesType);
|
|
|
mes.put("value", json.toString());
|
|
|
redisTemplate.opsForList().leftPush(redisQueue, mes.toString());
|
|
|
} else {
|
|
|
queue.put(json);
|
|
|
}
|
|
|
|
|
|
json.put("access_token", wx.getAccessToken());
|
|
|
json.put("type", wx.getType());
|
|
|
json.put("openid", wx.getOpenid());
|
|
|
json.put("name", wx.getName());
|
|
|
json.put("keywords",wx.getKeywords() );
|
|
|
json.put("url",wx.getUrl());
|
|
|
json.put("first",wx.getFirst());
|
|
|
json.put("remark",wx.getRemark());
|
|
|
queue.put(json);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到微信消息列队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void put(JSONArray array) {
|
|
|
if (array == null || array.length() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
for (int i = 0; i < array.length(); i++) {
|
|
|
JSONObject json = array.getJSONObject(i);
|
|
|
if (json == null) {
|
|
|
continue;
|
|
|
}
|
|
|
try {
|
|
|
queue.put(json);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("批量添加到消息队列失败!", e);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@PostConstruct
|
|
|
private void run() {
|
|
@ -218,40 +152,12 @@ public class PushMsgTask {
|
|
|
try {
|
|
|
// 如果queue为空,则当前线程会堵塞,直到有新数据加入
|
|
|
JSONObject json = queue.take();
|
|
|
boolean wx = json.has("wx") ? json.getBoolean("wx") : false;
|
|
|
if (wx) {
|
|
|
// 推送微信消息
|
|
|
JSONObject data = json.has("data") ? json.getJSONObject("data") : null;
|
|
|
if (data == null) {
|
|
|
continue;
|
|
|
}
|
|
|
// 消息类型:1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒
|
|
|
int type = json.has("type") ? json.getInt("type") : -1;
|
|
|
if (type == -1) {
|
|
|
continue;
|
|
|
}
|
|
|
String scene = json.has("scene") ? json.getString("scene") : "";
|
|
|
String access_token = json.has("access_token") ? json.getString("access_token") : "";
|
|
|
String openid = json.has("openid") ? json.getString("openid") : "";
|
|
|
String name = json.has("name") ? json.getString("name") : "";
|
|
|
// String name = data.has("name") ? json.getString("name") : "";
|
|
|
// 发送消息到微信端
|
|
|
sendWeixinMessage(access_token, type, openid, name, data);
|
|
|
// sendWeixinMessage(access_token, type,scene, openid, name, data);
|
|
|
} else {
|
|
|
// 推送平台消息
|
|
|
String receiver = json.has("receiver") ? json.getString("receiver") : "";
|
|
|
String type = json.has("type") ? json.getString("type") : "";
|
|
|
String title = json.has("title") ? json.getString("title") : "";
|
|
|
String msg = json.has("msg") ? json.getString("msg") : "";
|
|
|
String data = json.has("data") ? json.getString("data") : "";
|
|
|
boolean res = httpUtil.pushMessage(receiver, type, title, msg, data);
|
|
|
if (res) {
|
|
|
logger.info("消息推送成功!");
|
|
|
} else {
|
|
|
logger.error("消息推送失败!");
|
|
|
}
|
|
|
}
|
|
|
String accessToken = json.getString("access_token");
|
|
|
Integer type = json.getInt("type");
|
|
|
String name = json.getString("name");
|
|
|
String openid = json.getString("openid");
|
|
|
// 发送消息到微信端
|
|
|
sendWeixinMessage(accessToken, type, openid, name, json);
|
|
|
} catch (Exception ex) {
|
|
|
ex.printStackTrace();
|
|
|
}
|
|
@ -260,35 +166,7 @@ public class PushMsgTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// private static final String signSuccess = "0D2vYZVRzFz15p9Y_pkZ1DKutDq8UOsks79FXUKS0tA";
|
|
|
// private static final String signFalied = "My2VNERjJt4NXR4Ibh42pdrP6B6ka8rQxZeWinQh99s";
|
|
|
// private static final String consultNotice = "0mF_vHj-ILx8EH8DwzmAi7LqzjqYiU9IrSRRmziTZyc";
|
|
|
// private static final String healthNotice = "uv31ES_VCmq3tBYtyGmEQvIwU_zh9LDhF3bFpbIUt5g";
|
|
|
// private static final String termination = "C0tdXtA_8k-Cy4a1EkzQuI877vqaqAtRkc-e_Gsd7sk";
|
|
|
// private static final String appointmentSuccess = "FY3Pqa66tHIE1Fv-irbFBPOh5cYP71fkOzfZKH4S-Fo";
|
|
|
// private static final String appointmentCancel = "tldWEb9AN7p_RoHoD8ml0GxWW3V1V_mpEEhp2v6p56s";
|
|
|
// private static final String url = "http://www.xmtyw.cn/wlyy/wx/html/";
|
|
|
|
|
|
/**
|
|
|
* 发送微信模板消息
|
|
|
*
|
|
|
* @param type 1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒 5:解约申请通知 6:预约挂号成功通知 7:预约取消通知 8 缴费提醒 9 健康教育 10 签约医生变更(信息变更通知)
|
|
|
* 18 产检提醒和产检就诊提醒 19:续方审核结果通知(0.不通过 1.通过 2。调整处方并通过) 20:服务结果通知 11.代办事项通知 21体检提醒
|
|
|
* @param json 当type==1||type==2时:{"first":"消息主题",”doctor":"医生code","doctorName":"医生名","date":"签约时间","content":"签约内容","remark":"消息备注"}
|
|
|
* type==3时:{"first":"消息主题","consult":"医生咨询编号","consultcontent":"咨询内容","replycontent":"回复内容","doctorName":"医生名","remark":"消息备注"}
|
|
|
* type==4时:{"first":"消息主题","date":"指导时间","orgName":"指导机构","doctorName":"指导医生名","content":"指导内容","remark":"消息备注"}
|
|
|
* type==5时:{"first":"消息主题","date":"解约时间",”doctor":"医生code","doctorName":"医生名","orgName":"解约机构","remark":"消息备注"}
|
|
|
* type==6时:{"first":"消息主题","date":"预约时间",”id":"预约ID","doctorName":"医生名","orgName":"预约医院","deptName":"预约科室","remark":"消息备注"}
|
|
|
* type==7时:{"first":"消息主题","name":"就诊人名","date":"预约时间","doctorName":"医生名","orgName":"预约医院","remark":"消息备注"}
|
|
|
* type==9时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
|
|
|
* type==10时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
|
|
|
* <p>
|
|
|
* type==11时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
|
|
|
* type==19时:{"first":"消息主题","keyword1":"审核结果","keyword2":"审核医生","remark":"消息备注"}
|
|
|
* type==20时:{"first":"消息主题","keyword1":"服务项目","keyword2":"操作医生","keyword3":"服务时间","remark":"消息备注"}
|
|
|
* @return
|
|
|
*/
|
|
|
public boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
|
|
|
public boolean sendWeixinMessage(String access_token, Integer type, String openid, String name, JSONObject json) {
|
|
|
try {
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
logger.error("send wechat message failed:openid is empty");
|
|
@ -296,71 +174,15 @@ public class PushMsgTask {
|
|
|
}
|
|
|
if (access_token != null) {
|
|
|
String token_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;
|
|
|
String params = typeMsg(type, openid, name, json);
|
|
|
String params = typeMsg(type,openid,json);
|
|
|
if (params == "") {
|
|
|
logger.error("参数错误!error");
|
|
|
return false;
|
|
|
}
|
|
|
WechatPushLog log = new WechatPushLog();
|
|
|
log.setType(type);
|
|
|
log.setCreateTime(new Date());
|
|
|
log.setName(name);
|
|
|
log.setOpenid(openid);
|
|
|
if (!json.isNull("toUser")) {
|
|
|
log.setPatient(json.getString("toUser"));
|
|
|
}
|
|
|
log.setRequest(json.toString());
|
|
|
String result = httpUtil.sendPost(token_url, params);
|
|
|
JSONObject jsonResult = new JSONObject(result);
|
|
|
log.setResponse(result);
|
|
|
if (Integer.parseInt(jsonResult.get("errcode").toString()) == 0) {
|
|
|
logger.info("微信信息推送成功!success");
|
|
|
log.setStatus(1);
|
|
|
wechatPushLogDao.save(log);
|
|
|
return true;
|
|
|
} else {
|
|
|
log.setStatus(0);
|
|
|
wechatPushLogDao.save(log);
|
|
|
logger.error("错误编码:" + jsonResult.get("errcode").toString() + " 错误提示:" + jsonResult.get("errmsg").toString());
|
|
|
return false;
|
|
|
}
|
|
|
} else {
|
|
|
logger.error("获取access_token失败!");
|
|
|
return false;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
logger.error("微信信息推送失败!");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param access_token
|
|
|
* @param type
|
|
|
* @param openid
|
|
|
* @param name
|
|
|
* @param json
|
|
|
* @return
|
|
|
*/
|
|
|
public boolean sendWeixinMessage(String access_token, int type,String scene, String openid, String name, JSONObject json) {
|
|
|
try {
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
logger.error("send wechat message failed:openid is empty");
|
|
|
return false;
|
|
|
}
|
|
|
if (access_token != null) {
|
|
|
String token_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;
|
|
|
String params = json.toString();
|
|
|
if (params == "") {
|
|
|
logger.error("参数错误!error");
|
|
|
return false;
|
|
|
}
|
|
|
//微信推送日志
|
|
|
WechatPushLog log = new WechatPushLog();
|
|
|
log.setType(type);
|
|
|
log.setScene(scene);
|
|
|
log.setCreateTime(new Date());
|
|
|
log.setName(name);
|
|
|
log.setOpenid(openid);
|
|
@ -399,12 +221,16 @@ public class PushMsgTask {
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
public String typeMsg(int type, String openid, String name, JSONObject json) {
|
|
|
public String typeMsg(Integer type, String openid, JSONObject json) {
|
|
|
try {
|
|
|
String url = server_url + "wx/html/";
|
|
|
WechatTemplate temp = new WechatTemplate();
|
|
|
temp.setTouser(openid);
|
|
|
temp.setTopcolor("#000000");
|
|
|
|
|
|
temp.setTemplate_id(getWeChatTempId(type));
|
|
|
temp.setUrl(url +json.getString("url"));
|
|
|
|
|
|
Map<String, WechatTemplateData> m = new HashMap<String, WechatTemplateData>();
|
|
|
WechatTemplateData first = new WechatTemplateData();
|
|
|
first.setColor("#000000");
|
|
@ -414,400 +240,20 @@ public class PushMsgTask {
|
|
|
remark.setColor("#000000");
|
|
|
remark.setValue(json.getString("remark"));
|
|
|
m.put("remark", remark);
|
|
|
String temp_id = "";
|
|
|
if (type == 3) {
|
|
|
if (json.has("isPublic") && json.getInt("isPublic") == 1) {
|
|
|
temp.setUrl(url + "jbsq/html/public-consult-detail.html?openid=" + openid + "&code=" + json.getString("consult") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
} else {
|
|
|
temp.setUrl(url + "yszx/html/consulting-doctor.html?openid=" + openid + "&consult=" + json.getString("consult") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
}
|
|
|
temp_id = template_consult_notice;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("consultcontent"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("replycontent"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("doctorName"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
} else if (type == 1 || type == 2) {
|
|
|
if (type == 1) {
|
|
|
temp_id = template_sign_success;
|
|
|
} else {
|
|
|
temp_id = template_sign_failed;
|
|
|
}
|
|
|
String isRenew = "0";
|
|
|
if (json.has("isRenew")) {
|
|
|
isRenew = "1";
|
|
|
}
|
|
|
String signState = "0";
|
|
|
if (json.has("signState")) {
|
|
|
signState = (String) json.get("signState");
|
|
|
}
|
|
|
if (json.has("isRenew") && type == 2) {
|
|
|
//如果续签失败,不发送详情
|
|
|
} else {
|
|
|
if (json.has("agent") && ("1".equals(json.getString("agent")))) {
|
|
|
// 发送给授权代理人
|
|
|
temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid + "&state=" + json.getString("doctor") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&isRenew=" + isRenew + "&signState=" + signState + "&represented=" + json.getString("represented") + "&signCode=" + json.getString("signCode"));
|
|
|
} else if (json.has("agent") && ("0".equals(json.getString("agent")))) {
|
|
|
// 发送给自己
|
|
|
temp.setUrl(url + "qygl/html/pay_flow.html?openid=" + openid + "&state=" + json.getString("doctor") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&isRenew=" + isRenew + "&signState=" + signState + "&represented=" + json.getString("represented") + "&signCode=" + json.getString("signCode"));
|
|
|
}
|
|
|
}
|
|
|
temp.setTouser(openid);
|
|
|
temp.setTopcolor("#000000");
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("doctorName"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(name);
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("date"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("content"));
|
|
|
m.put("keyword4", keyword4);
|
|
|
} else if (type == 4) {
|
|
|
temp.setUrl(url + "yszd/html/guidance-detail.html?openid=" + openid + "&toUser=" + json.getString("toUser") + "&id=" + String.valueOf(json.get("id")) + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp_id = template_health_notice;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("date"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("orgName"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("doctorName"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(name);
|
|
|
m.put("keyword4", keyword4);
|
|
|
WechatTemplateData keyword5 = new WechatTemplateData();
|
|
|
keyword5.setColor("#000000");
|
|
|
keyword5.setValue(json.getString("content"));
|
|
|
m.put("keyword5", keyword5);
|
|
|
} else if (type == 5) {
|
|
|
temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid + "&state=" + json.getString("doctor") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp_id = template_termination;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("doctorName"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(name);
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("orgName"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("date"));
|
|
|
m.put("keyword4", keyword4);
|
|
|
} else if (type == 6) {
|
|
|
temp.setUrl(url + "wdyy/html/detail-appointment.html?openid=" + openid + "&orgCode=" + json.get("orgCode") + "&id=" + json.getString("id") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp_id = template_appoint_success;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("orgName"));
|
|
|
m.put("hospitalname", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("deptName"));
|
|
|
m.put("deptname", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("doctorName"));
|
|
|
m.put("doctorname", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("date"));
|
|
|
m.put("planstarttime", keyword4);
|
|
|
} else if (type == 7) {
|
|
|
temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp_id = template_appoint_failed;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("name"));
|
|
|
m.put("keynote1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("date"));
|
|
|
m.put("keynote2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("doctorName"));
|
|
|
m.put("keynote3", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("orgName"));
|
|
|
m.put("keynote4", keyword4);
|
|
|
} else if (type == 8) {
|
|
|
//temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid + "&toUser=" + json.getString("toUser"));
|
|
|
temp_id = template_expenses_remind;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("doctorName"));
|
|
|
m.put("first", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue("以协议为准");
|
|
|
m.put("keyword1", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue("家庭医生签约");
|
|
|
m.put("keyword2", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("content"));
|
|
|
m.put("remark", keyword4);
|
|
|
} else if (type == 9) {
|
|
|
temp.setUrl(url + "jkjy/html/article.html?openid=" + openid + "&dataId=" + json.getString("article") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp_id = template_healthy_article;
|
|
|
temp.setTemplate_id(temp_id);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("first"));
|
|
|
m.put("first", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("title"));
|
|
|
m.put("keyword1", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("doctorName"));
|
|
|
m.put("keyword2", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("date"));
|
|
|
m.put("keyword3", keyword4);
|
|
|
WechatTemplateData keyword5 = new WechatTemplateData();
|
|
|
keyword5.setColor("#000000");
|
|
|
keyword5.setValue(json.getString("remark"));
|
|
|
m.put("remark", keyword5);
|
|
|
} else if (type == 10) {
|
|
|
if (json.has("url")) {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
} else {
|
|
|
temp.setUrl(url + "qygl/html/signing-doctors.html?openid=" + openid + "&state=" + openid + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
}
|
|
|
temp.setTemplate_id(template_doctor_change);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("keyword3"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
} else if (type == 11) {
|
|
|
if (json.has("url")) {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
} else {
|
|
|
String xinurl = url + "survey/html/survey_info.html?openid=" + openid + "&state=" + openid + "&survey_id=" + json.getString("survey_id") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented");
|
|
|
// temp.setUrl(url + "survey/html/survey_info.html?openid=" + openid + "&state=" + openid + "&survey_id=" + json.getString("survey_id") + "&toUser=" + json.getString("toUser") + "&toName=" + name);
|
|
|
temp.setUrl(xinurl);
|
|
|
}
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
logger.info("type=====>openId " + openid);
|
|
|
} else if (type == 12) {
|
|
|
|
|
|
temp.setUrl(url + "jtgx/html/application-msg-list.html?openid=" + openid + "&member=" + json.getString("member") + "&toUser=" + json.getString("member") + "&toName=" + name);
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
|
|
|
// WechatTemplateData keyword3= new WechatTemplateData();
|
|
|
// keyword3.setColor("#000000");
|
|
|
// keyword3.setValue(json.getString("keyword3"));
|
|
|
// m.put("keyword3", keyword3);
|
|
|
//
|
|
|
// WechatTemplateData keyword4= new WechatTemplateData();
|
|
|
// keyword4.setColor("#000000");
|
|
|
// keyword4.setValue(json.getString("keyword4"));
|
|
|
// m.put("keyword4", keyword4);
|
|
|
|
|
|
} else if (type == 13) {
|
|
|
|
|
|
temp.setUrl(url + "jtgx/html/family.html?openid=" + openid);
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
|
|
|
// WechatTemplateData keyword3= new WechatTemplateData();
|
|
|
// keyword3.setColor("#000000");
|
|
|
// keyword3.setValue(json.getString("keyword3"));
|
|
|
// m.put("keyword3", keyword3);
|
|
|
//
|
|
|
// WechatTemplateData keyword4= new WechatTemplateData();
|
|
|
// keyword4.setColor("#000000");
|
|
|
// keyword4.setValue(json.getString("keyword4"));
|
|
|
// m.put("keyword4", keyword4);
|
|
|
} else if (type == 14) {
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
} else if (type == 15) {
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
} else if (type == 16) {
|
|
|
temp.setUrl(url + "xuqian/html/information.html?openid=" + openid + "&changeDoctor=" + 1 + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
} else if (type == 17) {
|
|
|
temp.setUrl(url + "yszx/html/manyidu.html?openid=" + openid + "&consult=" + json.getString("consult") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
} else if (type == 18) {
|
|
|
if (json.has("wlyygc")) {
|
|
|
temp.setUrl(json.getString("url"));
|
|
|
}else {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
}
|
|
|
temp.setTemplate_id(template_doctor_survey);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
} else if (type == 19) {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
temp.setTemplate_id(template_doctor_audit);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
} else if (type == 20) {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
temp.setTemplate_id(template_doctor_service);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("keyword3"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
}else if (type == 21) {
|
|
|
if (json.has("url")) {
|
|
|
temp.setUrl(url + json.getString("url"));
|
|
|
}
|
|
|
temp.setTemplate_id(template_physical_examination);
|
|
|
WechatTemplateData keyword1 = new WechatTemplateData();
|
|
|
keyword1.setColor("#000000");
|
|
|
keyword1.setValue(json.getString("keyword1"));
|
|
|
m.put("keyword1", keyword1);
|
|
|
WechatTemplateData keyword2 = new WechatTemplateData();
|
|
|
keyword2.setColor("#000000");
|
|
|
keyword2.setValue(json.getString("keyword2"));
|
|
|
m.put("keyword2", keyword2);
|
|
|
WechatTemplateData keyword3 = new WechatTemplateData();
|
|
|
keyword3.setColor("#000000");
|
|
|
keyword3.setValue(json.getString("keyword3"));
|
|
|
m.put("keyword3", keyword3);
|
|
|
WechatTemplateData keyword4 = new WechatTemplateData();
|
|
|
keyword4.setColor("#000000");
|
|
|
keyword4.setValue(json.getString("keyword4"));
|
|
|
m.put("keyword4", keyword4);
|
|
|
WechatTemplateData keyword5 = new WechatTemplateData();
|
|
|
keyword5.setColor("#000000");
|
|
|
keyword5.setValue(json.getString("keyword5"));
|
|
|
m.put("keyword5", keyword5);
|
|
|
String keywords =json.getString("keywords");
|
|
|
String keyword[] = keywords.split(",");
|
|
|
for(int i=0;i<keyword.length ;i++){
|
|
|
WechatTemplateData wckw = new WechatTemplateData();
|
|
|
wckw.setColor("#000000");
|
|
|
wckw.setValue(keyword[i]);
|
|
|
m.put("keyword"+(i+1), wckw);
|
|
|
}
|
|
|
|
|
|
temp.setData(m);
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
String strJson = mapper.writeValueAsString(temp);
|
|
|
//System.out.println("send message================>" + strJson);
|
|
|
|
|
|
logger.error("send message================>" + strJson);
|
|
|
return strJson;
|
|
|
} catch (Exception e) {
|
|
@ -816,226 +262,66 @@ public class PushMsgTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加含发送代理人微信消息
|
|
|
*
|
|
|
* @param code 居民code
|
|
|
* @param type 模板类型
|
|
|
* @param json 模板消息体加上跳转URL
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
public Boolean putAgentWxMsg(String code, int type, JSONObject json) {
|
|
|
Boolean flag = false;
|
|
|
try {
|
|
|
String url = json.has("url") ? json.getString("url") : null;
|
|
|
String first = json.has("first") ? json.getString("first") : "";
|
|
|
Patient patient = patientDao.findByCode(code);
|
|
|
String name = patient.getName();
|
|
|
String openId = patient.getOpenid();
|
|
|
if (StringUtils.isNotEmpty(openId) && !("undefined".equals(openId))) {
|
|
|
putWxMsg(accessTokenUtils.getAccessToken(), type, openId, name, json);
|
|
|
flag = true;
|
|
|
} else {
|
|
|
//发送代理人
|
|
|
org.json.JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(code, openId);
|
|
|
if (jsonArray != null && jsonArray.length() > 0) {
|
|
|
for (int i = 0; i < jsonArray.length(); i++) {
|
|
|
org.json.JSONObject j = jsonArray.getJSONObject(i);
|
|
|
Patient member = (Patient) j.get("member");
|
|
|
org.json.JSONObject data = json;
|
|
|
data.remove("first");
|
|
|
data.remove("url");
|
|
|
data.put("url", url + "&represented=" + member.getCode());
|
|
|
data.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.getInt("relation"), name) + first);
|
|
|
if (StringUtils.isNotEmpty(member.getOpenid()) && !("undefined".equals(member.getOpenid()))) {
|
|
|
putWxMsg(accessTokenUtils.getAccessToken(), type, member.getOpenid(), name, data);
|
|
|
flag = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加含发送代理人微信消息
|
|
|
*
|
|
|
* @param code 发送对象code
|
|
|
* @param type 模板类型
|
|
|
* @param scene 模板场景值
|
|
|
* @param wechatTemplate 微信消息模板推送内容
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean putAgentWxMsg(String code, int type,String scene, WechatTemplate wechatTemplate) {
|
|
|
Boolean flag = false;
|
|
|
try {
|
|
|
Patient patient = patientDao.findByCode(code);
|
|
|
String name = patient.getName();
|
|
|
String openId = patient.getOpenid();
|
|
|
|
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
String data = mapper.writeValueAsString(wechatTemplate);
|
|
|
JSONObject wechatContent = new JSONObject(data);
|
|
|
|
|
|
if (StringUtils.isNotEmpty(openId) && !("undefined".equals(openId))) {
|
|
|
putWxMsg(accessTokenUtils.getAccessToken(), type, scene, openId, name, wechatContent);
|
|
|
flag = true;
|
|
|
} else {
|
|
|
//发送代理人
|
|
|
org.json.JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(code, openId);
|
|
|
if (jsonArray != null && jsonArray.length() > 0) {
|
|
|
for (int i = 0; i < jsonArray.length(); i++) {
|
|
|
org.json.JSONObject j = jsonArray.getJSONObject(i);
|
|
|
Patient member = (Patient) j.get("member");
|
|
|
|
|
|
Map<String, WechatTemplateData> contentData = wechatTemplate.getData();
|
|
|
WechatTemplateData firstData = contentData.get("first");
|
|
|
String url = wechatTemplate.getUrl();
|
|
|
String first = firstData.getValue();
|
|
|
|
|
|
WechatTemplateData firstKeyword = new WechatTemplateData();
|
|
|
firstKeyword.setColor("#000000");
|
|
|
firstKeyword.setValue(weiXinOpenIdUtils.getTitleMes(patient, j.getInt("relation"), name) + first);
|
|
|
contentData.put("first", firstKeyword);
|
|
|
|
|
|
//替换掉原toUser、toName的值
|
|
|
int start = url.indexOf("&toUser=");
|
|
|
int end = url.indexOf("&", start + 1);
|
|
|
String touser = url.substring(start, end);
|
|
|
url = url.replace(touser, "&toUser=" + member.getCode());
|
|
|
|
|
|
wechatTemplate.setTouser(member.getOpenid());
|
|
|
wechatTemplate.setUrl(url);
|
|
|
wechatTemplate.setData(contentData);
|
|
|
@Deprecated
|
|
|
public void put(String receiver, String type, String title, String msg, String data) {
|
|
|
try {
|
|
|
|
|
|
String data1 = mapper.writeValueAsString(wechatTemplate);
|
|
|
JSONObject wechatContent1 = new JSONObject(data1);
|
|
|
if (StringUtils.isNotEmpty(member.getOpenid()) && !("undefined".equals(member.getOpenid()))) {
|
|
|
putWxMsg(accessTokenUtils.getAccessToken(), type, scene, openId, name, wechatContent1);
|
|
|
flag = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到消息队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
|
@Deprecated
|
|
|
public void putWxMsg(String access_token, int type,String scene, String openid, String name, JSONObject data) {
|
|
|
try {
|
|
|
|
|
|
/**
|
|
|
* 根据type 匹配对应模板ID
|
|
|
*
|
|
|
* @param type 见WechatPushLog说明
|
|
|
* @return
|
|
|
*/
|
|
|
private String getTemplateId(int type) throws Exception {
|
|
|
String templateId = null;
|
|
|
switch (type) {
|
|
|
case 1:
|
|
|
templateId = template_sign_success;
|
|
|
break;
|
|
|
case 2:
|
|
|
templateId = template_sign_failed;
|
|
|
break;
|
|
|
case 3:
|
|
|
templateId = template_consult_notice;
|
|
|
break;
|
|
|
case 4:
|
|
|
templateId = template_health_notice;
|
|
|
break;
|
|
|
case 5:
|
|
|
templateId = template_termination;
|
|
|
break;
|
|
|
case 6:
|
|
|
templateId = template_appoint_success;
|
|
|
break;
|
|
|
case 7:
|
|
|
templateId = template_appoint_failed;
|
|
|
break;
|
|
|
case 8:
|
|
|
templateId = template_expenses_remind;
|
|
|
break;
|
|
|
case 9:
|
|
|
templateId = template_healthy_article;
|
|
|
break;
|
|
|
case 10:
|
|
|
templateId = template_doctor_change;
|
|
|
break;
|
|
|
case 11:
|
|
|
templateId = template_doctor_survey;
|
|
|
break;
|
|
|
case 12:
|
|
|
templateId = template_doctor_audit;
|
|
|
break;
|
|
|
case 13:
|
|
|
templateId = template_doctor_service;
|
|
|
break;
|
|
|
case 14:
|
|
|
templateId = template_physical_examination;
|
|
|
break;
|
|
|
case 15:
|
|
|
templateId = doctor_invitel_template;
|
|
|
break;
|
|
|
case 16:
|
|
|
templateId = template_deal_with;
|
|
|
break;
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到微信消息列队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return templateId;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 构建微信模板数据 默认字体黑色
|
|
|
*
|
|
|
* @param type 模板类型见日志实体类
|
|
|
* @param openid 发送对象openid
|
|
|
* @param first 消息头
|
|
|
* @param remark 备注
|
|
|
* @param url 带参全路径跳转链接
|
|
|
* @param keywords 消息体
|
|
|
* @return
|
|
|
*/
|
|
|
public WechatTemplate packageTemplate(int type,String openid, String first, String remark, String url, List<String> keywords) throws Exception{
|
|
|
|
|
|
WechatTemplate temp = new WechatTemplate();
|
|
|
@Deprecated
|
|
|
public void putWxMsg(String access_token, int type, String openid, String name, JSONObject data) {
|
|
|
try {
|
|
|
String templateId = getTemplateId(type);
|
|
|
|
|
|
Map<String, WechatTemplateData> m = new HashMap<String, WechatTemplateData>();
|
|
|
} catch (Exception e) {
|
|
|
logger.error("添加到微信消息列队列失败!", e);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
WechatTemplateData firstKeyword = new WechatTemplateData();
|
|
|
firstKeyword.setColor("#000000");
|
|
|
firstKeyword.setValue(first);
|
|
|
m.put("first", firstKeyword);
|
|
|
WechatTemplateData remarkKeyword = new WechatTemplateData();
|
|
|
remarkKeyword.setColor("#000000");
|
|
|
remarkKeyword.setValue(remark);
|
|
|
m.put("remark", remarkKeyword);
|
|
|
for (int i=0;i<keywords.size();i++){
|
|
|
WechatTemplateData tempKeyword = new WechatTemplateData();
|
|
|
tempKeyword.setColor("#000000");
|
|
|
tempKeyword.setValue(keywords.get(i));
|
|
|
m.put("keyword"+(i+1), tempKeyword);
|
|
|
@Deprecated
|
|
|
public void put(JSONArray array) {
|
|
|
if (array == null || array.length() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
for (int i = 0; i < array.length(); i++) {
|
|
|
JSONObject json = array.getJSONObject(i);
|
|
|
if (json == null) {
|
|
|
continue;
|
|
|
}
|
|
|
try {
|
|
|
queue.put(json);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("批量添加到消息队列失败!", e);
|
|
|
}
|
|
|
|
|
|
|
|
|
temp.setTouser(openid);
|
|
|
temp.setTemplate_id(templateId);
|
|
|
temp.setTopcolor("#000000");
|
|
|
temp.setUrl(url);
|
|
|
temp.setData(m);
|
|
|
|
|
|
/* ObjectMapper mapper = new ObjectMapper();
|
|
|
String data = mapper.writeValueAsString(temp);
|
|
|
result = new JSONObject(data);*/
|
|
|
} catch (JSONException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return temp;
|
|
|
}
|
|
|
|
|
|
}
|