PushMsgTask.java 35 KB

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