PushMsgTask.java 32 KB

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