PushMsgTask.java 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. package com.yihu.wlyy.task;
  2. import com.fasterxml.jackson.databind.ObjectMapper;
  3. import com.yihu.wlyy.entity.wechat.WechatTemplate;
  4. import com.yihu.wlyy.entity.wechat.WechatTemplateData;
  5. import com.yihu.wlyy.util.HttpUtil;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.json.JSONArray;
  8. import org.json.JSONObject;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.data.redis.core.StringRedisTemplate;
  14. import org.springframework.stereotype.Component;
  15. import javax.annotation.PostConstruct;
  16. import java.util.HashMap;
  17. import java.util.Map;
  18. import java.util.concurrent.LinkedBlockingQueue;
  19. @Component
  20. public class PushMsgTask {
  21. private static Logger logger = LoggerFactory.getLogger(PushMsgTask.class);
  22. // 最大容量为50的数组堵塞队列
  23. private static LinkedBlockingQueue<JSONObject> queue = new LinkedBlockingQueue<JSONObject>();
  24. @Autowired
  25. private HttpUtil httpUtil;
  26. @Value("${server.server_url}")
  27. private String server_url;
  28. @Value("${wechat.message.template_consult_notice}")
  29. private String template_consult_notice;
  30. @Value("${wechat.message.template_sign_success}")
  31. private String template_sign_success;
  32. @Value("${wechat.message.template_sign_failed}")
  33. private String template_sign_failed;
  34. @Value("${wechat.message.template_health_notice}")
  35. private String template_health_notice;
  36. @Value("${wechat.message.template_termination}")
  37. private String template_termination;
  38. @Value("${wechat.message.template_appoint_success}")
  39. private String template_appoint_success;
  40. @Value("${wechat.message.template_appoint_failed}")
  41. private String template_appoint_failed;
  42. @Value("${wechat.message.template_expenses_remind}")
  43. private String template_expenses_remind;
  44. @Value("${wechat.message.template_healthy_article}")
  45. private String template_healthy_article;
  46. @Value("${wechat.message.template_doctor_change}")
  47. private String template_doctor_change;
  48. @Value("${wechat.message.template_doctor_survey}")
  49. private String template_doctor_survey;
  50. @Value("${wechat.message.template_doctor_audit}")
  51. private String template_doctor_audit;//审核结果通知
  52. @Value("${wechat.message.template_doctor_service}")
  53. private String template_doctor_service;//服务结果通知
  54. @Value("${pushMes.method}")
  55. private String putMesMethod;
  56. @Value("${pushMes.redis_prescription_title}")
  57. private String redisQueue;
  58. @Value("${putMesType.wechat}")
  59. private String putMesType;
  60. @Autowired
  61. private StringRedisTemplate redisTemplate;
  62. /**
  63. * 添加一条推送消息
  64. *
  65. * @param receiver 接收人
  66. * @param type 消息类型
  67. * @param title 消息标题
  68. * @param msg 消息内容
  69. * @param data 消息数据
  70. */
  71. public void put(String receiver, String type, String title, String msg, String data) {
  72. try {
  73. JSONObject json = new JSONObject();
  74. json.put("receiver", receiver);
  75. json.put("type", type);
  76. json.put("title", title);
  77. json.put("msg", msg);
  78. json.put("data", data);
  79. queue.put(json);
  80. } catch (Exception e) {
  81. logger.error("添加到消息队列失败!", e);
  82. e.printStackTrace();
  83. }
  84. }
  85. /**
  86. * 添加微信消息
  87. *
  88. * @param type
  89. * @param data
  90. */
  91. public void putWxMsg(String access_token, int type, String openid, String name, JSONObject data) {
  92. try {
  93. JSONObject json = new JSONObject();
  94. json.put("wx", true);
  95. json.put("access_token", access_token);
  96. json.put("type", type);
  97. json.put("openid", openid);
  98. json.put("name", name);
  99. json.put("data", data);
  100. //如果是内网推送到redis,如果是外网推送到内存队列
  101. if(putMesMethod.equals("1")){
  102. JSONObject mes = new JSONObject();
  103. mes.put("title",putMesType);
  104. mes.put("value",json.toString());
  105. redisTemplate.opsForList().leftPush(redisQueue,mes.toString());
  106. }else{
  107. queue.put(json);
  108. }
  109. } catch (Exception e) {
  110. logger.error("添加到微信消息列队列失败!", e);
  111. e.printStackTrace();
  112. }
  113. }
  114. public void put(JSONArray array) {
  115. if (array == null || array.length() == 0) {
  116. return;
  117. }
  118. for (int i = 0; i < array.length(); i++) {
  119. JSONObject json = array.getJSONObject(i);
  120. if (json == null) {
  121. continue;
  122. }
  123. try {
  124. queue.put(json);
  125. } catch (Exception e) {
  126. logger.error("批量添加到消息队列失败!", e);
  127. }
  128. }
  129. }
  130. @PostConstruct
  131. private void run() {
  132. new Thread(new ConsumerTask(httpUtil)).start();
  133. }
  134. // 消费者
  135. class ConsumerTask implements Runnable {
  136. private HttpUtil httpUtil;
  137. public ConsumerTask(HttpUtil httpUtil) {
  138. this.httpUtil = httpUtil;
  139. }
  140. @Override
  141. public void run() {
  142. while (true) {
  143. try {
  144. // 如果queue为空,则当前线程会堵塞,直到有新数据加入
  145. JSONObject json = queue.take();
  146. boolean wx = json.has("wx") ? json.getBoolean("wx") : false;
  147. if (wx) {
  148. // 推送微信消息
  149. JSONObject data = json.has("data") ? json.getJSONObject("data") : null;
  150. if (data == null) {
  151. continue;
  152. }
  153. // 消息类型:1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒
  154. int type = json.has("type") ? json.getInt("type") : -1;
  155. if (type == -1) {
  156. continue;
  157. }
  158. String access_token = json.has("access_token") ? json.getString("access_token") : "";
  159. String openid = json.has("openid") ? json.getString("openid") : "";
  160. String name = json.has("name") ? json.getString("name") : "";
  161. // String name = data.has("name") ? json.getString("name") : "";
  162. // 发送消息到微信端
  163. sendWeixinMessage(access_token, type, openid, name, data);
  164. } else {
  165. // 推送平台消息
  166. String receiver = json.has("receiver") ? json.getString("receiver") : "";
  167. String type = json.has("type") ? json.getString("type") : "";
  168. String title = json.has("title") ? json.getString("title") : "";
  169. String msg = json.has("msg") ? json.getString("msg") : "";
  170. String data = json.has("data") ? json.getString("data") : "";
  171. boolean res = httpUtil.pushMessage(receiver, type, title, msg, data);
  172. if (res) {
  173. logger.info("消息推送成功!");
  174. } else {
  175. logger.error("消息推送失败!");
  176. }
  177. }
  178. } catch (Exception ex) {
  179. ex.printStackTrace();
  180. }
  181. }
  182. }
  183. }
  184. // private static final String signSuccess = "0D2vYZVRzFz15p9Y_pkZ1DKutDq8UOsks79FXUKS0tA";
  185. // private static final String signFalied = "My2VNERjJt4NXR4Ibh42pdrP6B6ka8rQxZeWinQh99s";
  186. // private static final String consultNotice = "0mF_vHj-ILx8EH8DwzmAi7LqzjqYiU9IrSRRmziTZyc";
  187. // private static final String healthNotice = "uv31ES_VCmq3tBYtyGmEQvIwU_zh9LDhF3bFpbIUt5g";
  188. // private static final String termination = "C0tdXtA_8k-Cy4a1EkzQuI877vqaqAtRkc-e_Gsd7sk";
  189. // private static final String appointmentSuccess = "FY3Pqa66tHIE1Fv-irbFBPOh5cYP71fkOzfZKH4S-Fo";
  190. // private static final String appointmentCancel = "tldWEb9AN7p_RoHoD8ml0GxWW3V1V_mpEEhp2v6p56s";
  191. // private static final String url = "http://www.xmtyw.cn/wlyy/wx/html/";
  192. /**
  193. * 发送微信模板消息
  194. *
  195. * @param type 1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒 5:解约申请通知 6:预约挂号成功通知 7:预约取消通知 8 缴费提醒 9 健康教育 10 签约医生变更(信息变更通知)
  196. * 18 产检提醒和产检就诊提醒 19:续方审核结果通知(0.不通过 1.通过 2。调整处方并通过) 20:服务结果通知 11.代办事项通知
  197. * @param json 当type==1||type==2时:{"first":"消息主题",”doctor":"医生code","doctorName":"医生名","date":"签约时间","content":"签约内容","remark":"消息备注"}
  198. * type==3时:{"first":"消息主题","consult":"医生咨询编号","consultcontent":"咨询内容","replycontent":"回复内容","doctorName":"医生名","remark":"消息备注"}
  199. * type==4时:{"first":"消息主题","date":"指导时间","orgName":"指导机构","doctorName":"指导医生名","content":"指导内容","remark":"消息备注"}
  200. * type==5时:{"first":"消息主题","date":"解约时间",”doctor":"医生code","doctorName":"医生名","orgName":"解约机构","remark":"消息备注"}
  201. * type==6时:{"first":"消息主题","date":"预约时间",”id":"预约ID","doctorName":"医生名","orgName":"预约医院","deptName":"预约科室","remark":"消息备注"}
  202. * type==7时:{"first":"消息主题","name":"就诊人名","date":"预约时间","doctorName":"医生名","orgName":"预约医院","remark":"消息备注"}
  203. * type==9时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
  204. * type==10时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
  205. * <p>
  206. * type==11时:{"first":"消息主题","name":"患教标题","doctorName":"医生名","date":"发送时间","remark":"消息备注"}
  207. * type==19时:{"first":"消息主题","keyword1":"审核结果","keyword2":"审核医生","remark":"消息备注"}
  208. * type==20时:{"first":"消息主题","keyword1":"服务项目","keyword2":"操作医生","keyword3":"服务时间","remark":"消息备注"}
  209. * @return
  210. */
  211. // private boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
  212. public boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
  213. try {
  214. if (StringUtils.isEmpty(openid)) {
  215. logger.error("send wechat message failed:openid is empty");
  216. return false;
  217. }
  218. if (access_token != null) {
  219. String token_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;
  220. String params = typeMsg(type, openid, name, json);
  221. if (params == "") {
  222. logger.error("参数错误!error");
  223. return false;
  224. }
  225. String result = httpUtil.sendPost(token_url, params);
  226. JSONObject jsonResult = new JSONObject(result);
  227. if (Integer.parseInt(jsonResult.get("errcode").toString()) == 0) {
  228. logger.info("微信信息推送成功!success");
  229. return true;
  230. } else {
  231. logger.error("错误编码:" + jsonResult.get("errcode").toString() + " 错误提示:" + jsonResult.get("errmsg").toString());
  232. return false;
  233. }
  234. } else {
  235. logger.error("获取access_token失败!");
  236. return false;
  237. }
  238. } catch (Exception e) {
  239. e.printStackTrace();
  240. logger.error("微信信息推送失败!");
  241. return false;
  242. }
  243. }
  244. /**
  245. * 拼接参数
  246. *
  247. * @param type
  248. * @return
  249. */
  250. public String typeMsg(int type, String openid, String name, JSONObject json) {
  251. try {
  252. String url = server_url + "wx/html/";
  253. WechatTemplate temp = new WechatTemplate();
  254. temp.setTouser(openid);
  255. temp.setTopcolor("#000000");
  256. Map<String, WechatTemplateData> m = new HashMap<String, WechatTemplateData>();
  257. WechatTemplateData first = new WechatTemplateData();
  258. first.setColor("#000000");
  259. first.setValue(json.getString("first"));
  260. m.put("first", first);
  261. WechatTemplateData remark = new WechatTemplateData();
  262. remark.setColor("#000000");
  263. remark.setValue(json.getString("remark"));
  264. m.put("remark", remark);
  265. String temp_id = "";
  266. if (type == 3) {
  267. if (json.has("isPublic") && json.getInt("isPublic") == 1) {
  268. 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"));
  269. } else {
  270. temp.setUrl(url + "yszx/html/consulting-doctor.html?openid=" + openid + "&consult=" + json.getString("consult") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  271. }
  272. temp_id = template_consult_notice;
  273. temp.setTemplate_id(temp_id);
  274. WechatTemplateData keyword1 = new WechatTemplateData();
  275. keyword1.setColor("#000000");
  276. keyword1.setValue(json.getString("consultcontent"));
  277. m.put("keyword1", keyword1);
  278. WechatTemplateData keyword2 = new WechatTemplateData();
  279. keyword2.setColor("#000000");
  280. keyword2.setValue(json.getString("replycontent"));
  281. m.put("keyword2", keyword2);
  282. WechatTemplateData keyword3 = new WechatTemplateData();
  283. keyword3.setColor("#000000");
  284. keyword3.setValue(json.getString("doctorName"));
  285. m.put("keyword3", keyword3);
  286. } else if (type == 1 || type == 2) {
  287. if (type == 1) {
  288. temp_id = template_sign_success;
  289. } else {
  290. temp_id = template_sign_failed;
  291. }
  292. String isRenew = "0";
  293. if (json.has("isRenew")) {
  294. isRenew = "1";
  295. }
  296. String signState = "0";
  297. if (json.has("signState")) {
  298. signState = (String) json.get("signState");
  299. }
  300. if (json.has("isRenew") && type == 2) {
  301. //如果续签失败,不发送详情
  302. } else {
  303. if (json.has("agent") && ("1".equals(json.getString("agent")))) {
  304. // 发送给授权代理人
  305. 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"));
  306. } else if (json.has("agent") && ("0".equals(json.getString("agent")))) {
  307. // 发送给自己
  308. 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"));
  309. }
  310. }
  311. temp.setTouser(openid);
  312. temp.setTopcolor("#000000");
  313. temp.setTemplate_id(temp_id);
  314. WechatTemplateData keyword1 = new WechatTemplateData();
  315. keyword1.setColor("#000000");
  316. keyword1.setValue(json.getString("doctorName"));
  317. m.put("keyword1", keyword1);
  318. WechatTemplateData keyword2 = new WechatTemplateData();
  319. keyword2.setColor("#000000");
  320. keyword2.setValue(name);
  321. m.put("keyword2", keyword2);
  322. WechatTemplateData keyword3 = new WechatTemplateData();
  323. keyword3.setColor("#000000");
  324. keyword3.setValue(json.getString("date"));
  325. m.put("keyword3", keyword3);
  326. WechatTemplateData keyword4 = new WechatTemplateData();
  327. keyword4.setColor("#000000");
  328. keyword4.setValue(json.getString("content"));
  329. m.put("keyword4", keyword4);
  330. } else if (type == 4) {
  331. 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"));
  332. temp_id = template_health_notice;
  333. temp.setTemplate_id(temp_id);
  334. WechatTemplateData keyword1 = new WechatTemplateData();
  335. keyword1.setColor("#000000");
  336. keyword1.setValue(json.getString("date"));
  337. m.put("keyword1", keyword1);
  338. WechatTemplateData keyword2 = new WechatTemplateData();
  339. keyword2.setColor("#000000");
  340. keyword2.setValue(json.getString("orgName"));
  341. m.put("keyword2", keyword2);
  342. WechatTemplateData keyword3 = new WechatTemplateData();
  343. keyword3.setColor("#000000");
  344. keyword3.setValue(json.getString("doctorName"));
  345. m.put("keyword3", keyword3);
  346. WechatTemplateData keyword4 = new WechatTemplateData();
  347. keyword4.setColor("#000000");
  348. keyword4.setValue(name);
  349. m.put("keyword4", keyword4);
  350. WechatTemplateData keyword5 = new WechatTemplateData();
  351. keyword5.setColor("#000000");
  352. keyword5.setValue(json.getString("content"));
  353. m.put("keyword5", keyword5);
  354. } else if (type == 5) {
  355. 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"));
  356. temp_id = template_termination;
  357. temp.setTemplate_id(temp_id);
  358. WechatTemplateData keyword1 = new WechatTemplateData();
  359. keyword1.setColor("#000000");
  360. keyword1.setValue(json.getString("doctorName"));
  361. m.put("keyword1", keyword1);
  362. WechatTemplateData keyword2 = new WechatTemplateData();
  363. keyword2.setColor("#000000");
  364. keyword2.setValue(name);
  365. m.put("keyword2", keyword2);
  366. WechatTemplateData keyword3 = new WechatTemplateData();
  367. keyword3.setColor("#000000");
  368. keyword3.setValue(json.getString("orgName"));
  369. m.put("keyword3", keyword3);
  370. WechatTemplateData keyword4 = new WechatTemplateData();
  371. keyword4.setColor("#000000");
  372. keyword4.setValue(json.getString("date"));
  373. m.put("keyword4", keyword4);
  374. } else if (type == 6) {
  375. 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"));
  376. temp_id = template_appoint_success;
  377. temp.setTemplate_id(temp_id);
  378. WechatTemplateData keyword1 = new WechatTemplateData();
  379. keyword1.setColor("#000000");
  380. keyword1.setValue(json.getString("orgName"));
  381. m.put("hospitalname", keyword1);
  382. WechatTemplateData keyword2 = new WechatTemplateData();
  383. keyword2.setColor("#000000");
  384. keyword2.setValue(json.getString("deptName"));
  385. m.put("deptname", keyword2);
  386. WechatTemplateData keyword3 = new WechatTemplateData();
  387. keyword3.setColor("#000000");
  388. keyword3.setValue(json.getString("doctorName"));
  389. m.put("doctorname", keyword3);
  390. WechatTemplateData keyword4 = new WechatTemplateData();
  391. keyword4.setColor("#000000");
  392. keyword4.setValue(json.getString("date"));
  393. m.put("planstarttime", keyword4);
  394. } else if (type == 7) {
  395. temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  396. temp_id = template_appoint_failed;
  397. temp.setTemplate_id(temp_id);
  398. WechatTemplateData keyword1 = new WechatTemplateData();
  399. keyword1.setColor("#000000");
  400. keyword1.setValue(json.getString("name"));
  401. m.put("keynote1", keyword1);
  402. WechatTemplateData keyword2 = new WechatTemplateData();
  403. keyword2.setColor("#000000");
  404. keyword2.setValue(json.getString("date"));
  405. m.put("keynote2", keyword2);
  406. WechatTemplateData keyword3 = new WechatTemplateData();
  407. keyword3.setColor("#000000");
  408. keyword3.setValue(json.getString("doctorName"));
  409. m.put("keynote3", keyword3);
  410. WechatTemplateData keyword4 = new WechatTemplateData();
  411. keyword4.setColor("#000000");
  412. keyword4.setValue(json.getString("orgName"));
  413. m.put("keynote4", keyword4);
  414. } else if (type == 8) {
  415. //temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid + "&toUser=" + json.getString("toUser"));
  416. temp_id = template_expenses_remind;
  417. temp.setTemplate_id(temp_id);
  418. WechatTemplateData keyword1 = new WechatTemplateData();
  419. keyword1.setColor("#000000");
  420. keyword1.setValue(json.getString("doctorName"));
  421. m.put("first", keyword1);
  422. WechatTemplateData keyword2 = new WechatTemplateData();
  423. keyword2.setColor("#000000");
  424. keyword2.setValue("以协议为准");
  425. m.put("keyword1", keyword2);
  426. WechatTemplateData keyword3 = new WechatTemplateData();
  427. keyword3.setColor("#000000");
  428. keyword3.setValue("家庭医生签约");
  429. m.put("keyword2", keyword3);
  430. WechatTemplateData keyword4 = new WechatTemplateData();
  431. keyword4.setColor("#000000");
  432. keyword4.setValue(json.getString("content"));
  433. m.put("remark", keyword4);
  434. } else if (type == 9) {
  435. temp.setUrl(url + "jkjy/html/article.html?openid=" + openid + "&dataId=" + json.getString("article") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  436. temp_id = template_healthy_article;
  437. temp.setTemplate_id(temp_id);
  438. WechatTemplateData keyword1 = new WechatTemplateData();
  439. keyword1.setColor("#000000");
  440. keyword1.setValue(json.getString("first"));
  441. m.put("first", keyword1);
  442. WechatTemplateData keyword2 = new WechatTemplateData();
  443. keyword2.setColor("#000000");
  444. keyword2.setValue(json.getString("title"));
  445. m.put("keyword1", keyword2);
  446. WechatTemplateData keyword3 = new WechatTemplateData();
  447. keyword3.setColor("#000000");
  448. keyword3.setValue(json.getString("doctorName"));
  449. m.put("keyword2", keyword3);
  450. WechatTemplateData keyword4 = new WechatTemplateData();
  451. keyword4.setColor("#000000");
  452. keyword4.setValue(json.getString("date"));
  453. m.put("keyword3", keyword4);
  454. WechatTemplateData keyword5 = new WechatTemplateData();
  455. keyword5.setColor("#000000");
  456. keyword5.setValue(json.getString("remark"));
  457. m.put("remark", keyword5);
  458. } else if (type == 10) {
  459. if (json.has("url")) {
  460. temp.setUrl(url + json.getString("url"));
  461. }else {
  462. temp.setUrl(url + "qygl/html/signing-doctors.html?openid=" + openid + "&state=" + openid + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  463. }
  464. temp.setTemplate_id(template_doctor_change);
  465. WechatTemplateData keyword1 = new WechatTemplateData();
  466. keyword1.setColor("#000000");
  467. keyword1.setValue(json.getString("keyword1"));
  468. m.put("keyword1", keyword1);
  469. WechatTemplateData keyword2 = new WechatTemplateData();
  470. keyword2.setColor("#000000");
  471. keyword2.setValue(json.getString("keyword2"));
  472. m.put("keyword2", keyword2);
  473. WechatTemplateData keyword3 = new WechatTemplateData();
  474. keyword3.setColor("#000000");
  475. keyword3.setValue(json.getString("keyword3"));
  476. m.put("keyword3", keyword3);
  477. } else if (type == 11) {
  478. if (json.has("url")) {
  479. temp.setUrl(url + json.getString("url"));
  480. } else {
  481. 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");
  482. // temp.setUrl(url + "survey/html/survey_info.html?openid=" + openid + "&state=" + openid + "&survey_id=" + json.getString("survey_id") + "&toUser=" + json.getString("toUser") + "&toName=" + name);
  483. temp.setUrl(xinurl);
  484. }
  485. temp.setTemplate_id(template_doctor_survey);
  486. WechatTemplateData keyword1 = new WechatTemplateData();
  487. keyword1.setColor("#000000");
  488. keyword1.setValue(json.getString("keyword1"));
  489. m.put("keyword1", keyword1);
  490. WechatTemplateData keyword2 = new WechatTemplateData();
  491. keyword2.setColor("#000000");
  492. keyword2.setValue(json.getString("keyword2"));
  493. m.put("keyword2", keyword2);
  494. logger.info("type=====>openId " + openid);
  495. } else if (type == 12) {
  496. temp.setUrl(url + "jtgx/html/application-msg-list.html?openid=" + openid + "&member=" + json.getString("member") + "&toUser=" + json.getString("member") + "&toName=" + name);
  497. temp.setTemplate_id(template_doctor_survey);
  498. WechatTemplateData keyword1 = new WechatTemplateData();
  499. keyword1.setColor("#000000");
  500. keyword1.setValue(json.getString("keyword1"));
  501. m.put("keyword1", keyword1);
  502. WechatTemplateData keyword2 = new WechatTemplateData();
  503. keyword2.setColor("#000000");
  504. keyword2.setValue(json.getString("keyword2"));
  505. m.put("keyword2", keyword2);
  506. // WechatTemplateData keyword3= new WechatTemplateData();
  507. // keyword3.setColor("#000000");
  508. // keyword3.setValue(json.getString("keyword3"));
  509. // m.put("keyword3", keyword3);
  510. //
  511. // WechatTemplateData keyword4= new WechatTemplateData();
  512. // keyword4.setColor("#000000");
  513. // keyword4.setValue(json.getString("keyword4"));
  514. // m.put("keyword4", keyword4);
  515. } else if (type == 13) {
  516. temp.setUrl(url + "jtgx/html/family.html?openid=" + openid);
  517. temp.setTemplate_id(template_doctor_survey);
  518. WechatTemplateData keyword1 = new WechatTemplateData();
  519. keyword1.setColor("#000000");
  520. keyword1.setValue(json.getString("keyword1"));
  521. m.put("keyword1", keyword1);
  522. WechatTemplateData keyword2 = new WechatTemplateData();
  523. keyword2.setColor("#000000");
  524. keyword2.setValue(json.getString("keyword2"));
  525. m.put("keyword2", keyword2);
  526. // WechatTemplateData keyword3= new WechatTemplateData();
  527. // keyword3.setColor("#000000");
  528. // keyword3.setValue(json.getString("keyword3"));
  529. // m.put("keyword3", keyword3);
  530. //
  531. // WechatTemplateData keyword4= new WechatTemplateData();
  532. // keyword4.setColor("#000000");
  533. // keyword4.setValue(json.getString("keyword4"));
  534. // m.put("keyword4", keyword4);
  535. } else if (type == 14) {
  536. temp.setTemplate_id(template_doctor_survey);
  537. WechatTemplateData keyword1 = new WechatTemplateData();
  538. keyword1.setColor("#000000");
  539. keyword1.setValue(json.getString("keyword1"));
  540. m.put("keyword1", keyword1);
  541. WechatTemplateData keyword2 = new WechatTemplateData();
  542. keyword2.setColor("#000000");
  543. keyword2.setValue(json.getString("keyword2"));
  544. m.put("keyword2", keyword2);
  545. } else if (type == 15) {
  546. temp.setTemplate_id(template_doctor_survey);
  547. WechatTemplateData keyword1 = new WechatTemplateData();
  548. keyword1.setColor("#000000");
  549. keyword1.setValue(json.getString("keyword1"));
  550. m.put("keyword1", keyword1);
  551. } else if (type == 16) {
  552. temp.setUrl(url + "xuqian/html/information.html?openid=" + openid + "&changeDoctor=" + 1 + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  553. temp.setTemplate_id(template_doctor_survey);
  554. WechatTemplateData keyword1 = new WechatTemplateData();
  555. keyword1.setColor("#000000");
  556. keyword1.setValue(json.getString("keyword1"));
  557. m.put("keyword1", keyword1);
  558. WechatTemplateData keyword2 = new WechatTemplateData();
  559. keyword2.setColor("#000000");
  560. keyword2.setValue(json.getString("keyword2"));
  561. m.put("keyword2", keyword2);
  562. } else if (type == 17) {
  563. temp.setUrl(url + "yszx/html/manyidu.html?openid=" + openid + "&consult=" + json.getString("consult") + "&toUser=" + json.getString("toUser") + "&toName=" + name + "&represented=" + json.getString("represented"));
  564. temp.setTemplate_id(template_doctor_survey);
  565. WechatTemplateData keyword1 = new WechatTemplateData();
  566. keyword1.setColor("#000000");
  567. keyword1.setValue(json.getString("keyword1"));
  568. m.put("keyword1", keyword1);
  569. WechatTemplateData keyword2 = new WechatTemplateData();
  570. keyword2.setColor("#000000");
  571. keyword2.setValue(json.getString("keyword2"));
  572. m.put("keyword2", keyword2);
  573. } else if (type == 18) {
  574. temp.setUrl(url + json.getString("url"));
  575. temp.setTemplate_id(template_doctor_survey);
  576. WechatTemplateData keyword1 = new WechatTemplateData();
  577. keyword1.setColor("#000000");
  578. keyword1.setValue(json.getString("keyword1"));
  579. m.put("keyword1", keyword1);
  580. WechatTemplateData keyword2 = new WechatTemplateData();
  581. keyword2.setColor("#000000");
  582. keyword2.setValue(json.getString("keyword2"));
  583. m.put("keyword2", keyword2);
  584. } else if (type == 19) {
  585. temp.setUrl(url + json.getString("url"));
  586. temp.setTemplate_id(template_doctor_audit);
  587. WechatTemplateData keyword1 = new WechatTemplateData();
  588. keyword1.setColor("#000000");
  589. keyword1.setValue(json.getString("keyword1"));
  590. m.put("keyword1", keyword1);
  591. WechatTemplateData keyword2 = new WechatTemplateData();
  592. keyword2.setColor("#000000");
  593. keyword2.setValue(json.getString("keyword2"));
  594. m.put("keyword2", keyword2);
  595. } else if (type == 20) {
  596. temp.setUrl(url + json.getString("url"));
  597. temp.setTemplate_id(template_doctor_service);
  598. WechatTemplateData keyword1 = new WechatTemplateData();
  599. keyword1.setColor("#000000");
  600. keyword1.setValue(json.getString("keyword1"));
  601. m.put("keyword1", keyword1);
  602. WechatTemplateData keyword2 = new WechatTemplateData();
  603. keyword2.setColor("#000000");
  604. keyword2.setValue(json.getString("keyword2"));
  605. m.put("keyword2", keyword2);
  606. WechatTemplateData keyword3 = new WechatTemplateData();
  607. keyword3.setColor("#000000");
  608. keyword3.setValue(json.getString("keyword3"));
  609. m.put("keyword3", keyword3);
  610. }
  611. temp.setData(m);
  612. ObjectMapper mapper = new ObjectMapper();
  613. String strJson = mapper.writeValueAsString(temp);
  614. //System.out.println("send message================>" + strJson);
  615. logger.error("send message================>" + strJson);
  616. return strJson;
  617. } catch (Exception e) {
  618. e.printStackTrace();
  619. return "";
  620. }
  621. }
  622. }