Browse Source

微信消息推送添加接收人

lyr 8 years ago
parent
commit
4f208006d9

+ 1 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthGuidanceService.java

@ -71,6 +71,7 @@ public class PatientHealthGuidanceService extends BaseService {
			// 推送消息到微信端
			JSONObject json = new JSONObject();
			json.put("first", "健康指导提醒");
			json.put("toUser", patient.getCode());
			json.put("date", DateUtil.getStringDate());
			json.put("orgName", doctor.getHosptialName());
			json.put("doctorName", doctor.getName());

+ 5 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -887,6 +887,7 @@ public class FamilyContractService extends BaseService {
                    (hos != null ? hos.getAddress() : "") + ")缴费。";
            JSONObject json = new JSONObject();
            json.put("first", "签约成功通知");
            json.put("toUser", sf.getPatient());
            json.put("doctor", sf.getDoctor());
            json.put("doctorName", sf.getDoctorName());
            json.put("date", DateUtil.dateToStrShort(sf.getBegin()));
@ -1028,6 +1029,7 @@ public class FamilyContractService extends BaseService {
            // 拒绝签约
            JSONObject json = new JSONObject();
            json.put("first", "签约失败通知");
            json.put("toUser", sf.getPatient());
            json.put("doctor", StringUtils.isEmpty(sf.getDoctor()) ? sf.getDoctorHealth() : sf.getDoctor());
            json.put("doctorName", StringUtils.isEmpty(sf.getDoctor()) ? sf.getDoctorHealthName() : sf.getDoctorHealth());
            json.put("date", DateUtil.dateToStrShort(new Date()));
@ -1055,6 +1057,7 @@ public class FamilyContractService extends BaseService {
            // 同意签约
            JSONObject json = new JSONObject();
            json.put("first", "签约成功通知");
            json.put("toUser", sf.getPatient());
            json.put("doctor", doc.getCode());
            json.put("doctorName", doc.getName());
            json.put("date", DateUtil.dateToStrShort(sf.getBegin()));
@ -1111,6 +1114,7 @@ public class FamilyContractService extends BaseService {
            // 推送消息消息给微信端
            JSONObject json = new JSONObject();
            json.put("first", "解约申请通知");
            json.put("toUser", sf.getPatient());
            json.put("date", DateUtil.getStringDateShort());
            json.put("doctor", sf.getDoctor());
            json.put("doctorName", sf.getDoctorName());
@ -1124,6 +1128,7 @@ public class FamilyContractService extends BaseService {
            // 拒绝解约,推送消息消息给微信端
            JSONObject json = new JSONObject();
            json.put("first", "解约申请通知");
            json.put("toUser", sf.getPatient());
            json.put("date", DateUtil.getStringDateShort());
            json.put("doctor", sf.getDoctor());
            json.put("doctorName", sf.getDoctorName());

+ 324 - 320
patient-co-wlyy/src/main/java/com/yihu/wlyy/task/PushMsgTask.java

@ -26,140 +26,142 @@ import com.yihu.wlyy.util.HttpUtil;
@Api(description = "消息推送")
public class PushMsgTask {
	private static Logger logger = LoggerFactory.getLogger(PushMsgTask.class);
	// 最大容量为50的数组堵塞队列
	private static LinkedBlockingQueue<JSONObject> queue = new LinkedBlockingQueue<JSONObject>();
    private static Logger logger = LoggerFactory.getLogger(PushMsgTask.class);
    // 最大容量为50的数组堵塞队列
    private static LinkedBlockingQueue<JSONObject> queue = new LinkedBlockingQueue<JSONObject>();
	private static PushMsgTask instance;
    private static PushMsgTask instance;
	private static Object lock = new Object();
    private static Object lock = new Object();
	public static PushMsgTask getInstance() {
		synchronized (lock) {
			if (instance == null) {
				instance = new PushMsgTask();
				instance.run();
			}
		}
		return instance;
	}
    public static PushMsgTask getInstance() {
        synchronized (lock) {
            if (instance == null) {
                instance = new PushMsgTask();
                instance.run();
            }
        }
        return instance;
    }
	@RequestMapping(value = "aa")
	@ResponseBody
	public String test() {
		return "1111";
	}
    @RequestMapping(value = "aa")
    @ResponseBody
    public String test() {
        return "1111";
    }
	/**
	 * 添加一条推送消息
	 * @param receiver 接收人
	 * @param type 消息类型
	 * @param title 消息标题
	 * @param msg 消息内容
	 * @param data 消息数据
	 */
	public void put(String receiver, String type, String title, String msg, String data) {
		try {
			JSONObject json = new JSONObject();
			json.put("receiver", receiver);
			json.put("type", type);
			json.put("title", title);
			json.put("msg", msg);
			json.put("data", data);
			queue.put(json);
		} catch (Exception e) {
			logger.error("添加到消息队列失败!", e);
			e.printStackTrace();
		}
	}
    /**
     * 添加一条推送消息
     *
     * @param receiver 接收人
     * @param type     消息类型
     * @param title    消息标题
     * @param msg      消息内容
     * @param data     消息数据
     */
    public void put(String receiver, String type, String title, String msg, String data) {
        try {
            JSONObject json = new JSONObject();
            json.put("receiver", receiver);
            json.put("type", type);
            json.put("title", title);
            json.put("msg", msg);
            json.put("data", data);
            queue.put(json);
        } catch (Exception e) {
            logger.error("添加到消息队列失败!", e);
            e.printStackTrace();
        }
    }
	/**
	 * 添加微信消息
	 * @param type
	 * @param data
	 */
	public void putWxMsg(String access_token, int type, String openid, String name, JSONObject data) {
		try {
			JSONObject json = new JSONObject();
			json.put("wx", true);
			json.put("access_token", access_token);
			json.put("type", type);
			json.put("openid", openid);
			json.put("name", name);
			json.put("data", data);
			queue.put(json);
		} catch (Exception e) {
			logger.error("添加到微信消息列队列失败!", e);
			e.printStackTrace();
		}
	}
    /**
     * 添加微信消息
     *
     * @param type
     * @param data
     */
    public void putWxMsg(String access_token, int type, String openid, String name, JSONObject data) {
        try {
            JSONObject json = new JSONObject();
            json.put("wx", true);
            json.put("access_token", access_token);
            json.put("type", type);
            json.put("openid", openid);
            json.put("name", name);
            json.put("data", data);
            queue.put(json);
        } catch (Exception e) {
            logger.error("添加到微信消息列队列失败!", e);
            e.printStackTrace();
        }
    }
	public void put(JSONArray array) {
		if (array == null || array.length() == 0) {
			return;
		}
		for (int i = 0; i < array.length(); i++) {
			JSONObject json = array.getJSONObject(i);
			if (json == null) {
				continue;
			}
			try {
				queue.put(json);
			} catch (Exception e) {
				logger.error("批量添加到消息队列失败!", e);
			}
		}
	}
    public void put(JSONArray array) {
        if (array == null || array.length() == 0) {
            return;
        }
        for (int i = 0; i < array.length(); i++) {
            JSONObject json = array.getJSONObject(i);
            if (json == null) {
                continue;
            }
            try {
                queue.put(json);
            } catch (Exception e) {
                logger.error("批量添加到消息队列失败!", e);
            }
        }
    }
	private void run() {
		new Thread(new ConsumerTask()).start();
	}
    private void run() {
        new Thread(new ConsumerTask()).start();
    }
	// 消费者
	class ConsumerTask implements Runnable {
		@Override
		public void run() {
			try {
				while (true) {
					// 如果queue为空,则当前线程会堵塞,直到有新数据加入
					JSONObject json = queue.take();
					boolean wx = json.has("wx") ? json.getBoolean("wx") : false;
					if (wx) {
						// 推送微信消息
						JSONObject data = json.has("data") ? json.getJSONObject("data") : null;
						if (data == null) {
							continue;
						}
						// 消息类型:1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒
						int type = json.has("type") ? json.getInt("type") : -1;
						if (type == -1) {
							continue;
						}
						String access_token = json.has("access_token") ? json.getString("access_token") : "";
						String openid = json.has("openid") ? json.getString("openid") : "";
						String name = json.has("name") ? json.getString("name") : "";
						// 发送消息到微信端
						sendWeixinMessage(access_token, type, openid, name, data);
					} else {
						// 推送平台消息
						String receiver = json.has("receiver") ? json.getString("receiver") : "";
						String type = json.has("type") ? json.getString("type") : "";
						String title = json.has("title") ? json.getString("title") : "";
						String msg = json.has("msg") ? json.getString("msg") : "";
						String data = json.has("data") ? json.getString("data") : "";
						boolean res = HttpUtil.pushMessage(receiver, type, title, msg, data);
						if (res) {
							logger.info("消息推送成功!");
						} else {
							logger.error("消息推送失败!");
						}
					}
				}
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}
    // 消费者
    class ConsumerTask implements Runnable {
        @Override
        public void run() {
            try {
                while (true) {
                    // 如果queue为空,则当前线程会堵塞,直到有新数据加入
                    JSONObject json = queue.take();
                    boolean wx = json.has("wx") ? json.getBoolean("wx") : false;
                    if (wx) {
                        // 推送微信消息
                        JSONObject data = json.has("data") ? json.getJSONObject("data") : null;
                        if (data == null) {
                            continue;
                        }
                        // 消息类型:1:签约成功 2:签约失败 3:咨询回复通知 4:健康指导提醒
                        int type = json.has("type") ? json.getInt("type") : -1;
                        if (type == -1) {
                            continue;
                        }
                        String access_token = json.has("access_token") ? json.getString("access_token") : "";
                        String openid = json.has("openid") ? json.getString("openid") : "";
                        String name = json.has("name") ? json.getString("name") : "";
                        // 发送消息到微信端
                        sendWeixinMessage(access_token, type, openid, name, data);
                    } else {
                        // 推送平台消息
                        String receiver = json.has("receiver") ? json.getString("receiver") : "";
                        String type = json.has("type") ? json.getString("type") : "";
                        String title = json.has("title") ? json.getString("title") : "";
                        String msg = json.has("msg") ? json.getString("msg") : "";
                        String data = json.has("data") ? json.getString("data") : "";
                        boolean res = HttpUtil.pushMessage(receiver, type, title, msg, data);
                        if (res) {
                            logger.info("消息推送成功!");
                        } else {
                            logger.error("消息推送失败!");
                        }
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
//	private static final String signSuccess = "0D2vYZVRzFz15p9Y_pkZ1DKutDq8UOsks79FXUKS0tA";
//	private static final String signFalied = "My2VNERjJt4NXR4Ibh42pdrP6B6ka8rQxZeWinQh99s";
@ -170,201 +172,203 @@ public class PushMsgTask {
//	private static final String appointmentCancel = "tldWEb9AN7p_RoHoD8ml0GxWW3V1V_mpEEhp2v6p56s";
//	private static final String url = "http://www.xmtyw.cn/wlyy/wx/html/";
	/**
	 * 发送微信模板消息
	 * @param type 1:签约成功  2:签约失败  3:咨询回复通知  4:健康指导提醒  5:解约申请通知  6:预约挂号成功通知  7:预约取消通知
	 * @param json 当type==1||type==2时:{"first":"消息主题",”doctor":"医生code","doctorName":"医生名","date":"签约时间","content":"签约内容","remark":"消息备注"}
	 *        type==3时:{"first":"消息主题","consult":"医生咨询编号","consultcontent":"咨询内容","replycontent":"回复内容","doctorName":"医生名","remark":"消息备注"}
	 *        type==4时:{"first":"消息主题","date":"指导时间","orgName":"指导机构","doctorName":"指导医生名","content":"指导内容","remark":"消息备注"}
	 *        type==5时:{"first":"消息主题","date":"解约时间",”doctor":"医生code","doctorName":"医生名","orgName":"解约机构","remark":"消息备注"}
	 *        type==6时:{"first":"消息主题","date":"预约时间",”id":"预约ID","doctorName":"医生名","orgName":"预约医院","deptName":"预约科室","remark":"消息备注"}
	 *        type==7时:{"first":"消息主题","name":"就诊人名","date":"预约时间","doctorName":"医生名","orgName":"预约医院","remark":"消息备注"}
	 * @return
	 */
	private boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
		try {
			if (access_token != null) {
				String token_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;
				String params = typeMsg(type, openid, name, json);
				if (params == "") {
					logger.error("参数错误!");
					return false;
				}
				String result = HttpUtil.sendPost(token_url, params);
				JSONObject jsonResult = new JSONObject(result);
				if (Integer.parseInt(jsonResult.get("errcode").toString()) == 0) {
					logger.info("微信信息推送成功!");
					return true;
				} else {
					logger.error("错误编码:" + jsonResult.get("errcode").toString() + "  错误提示:" + jsonResult.get("errmsg").toString());
					return false;
				}
			} else {
				logger.error("获取access_token失败!");
				return false;
			}
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("微信信息推送失败!");
			return false;
		}
	}
    /**
     * 发送微信模板消息
     *
     * @param type 1:签约成功  2:签约失败  3:咨询回复通知  4:健康指导提醒  5:解约申请通知  6:预约挂号成功通知  7:预约取消通知
     * @param json 当type==1||type==2时:{"first":"消息主题",”doctor":"医生code","doctorName":"医生名","date":"签约时间","content":"签约内容","remark":"消息备注"}
     *             type==3时:{"first":"消息主题","consult":"医生咨询编号","consultcontent":"咨询内容","replycontent":"回复内容","doctorName":"医生名","remark":"消息备注"}
     *             type==4时:{"first":"消息主题","date":"指导时间","orgName":"指导机构","doctorName":"指导医生名","content":"指导内容","remark":"消息备注"}
     *             type==5时:{"first":"消息主题","date":"解约时间",”doctor":"医生code","doctorName":"医生名","orgName":"解约机构","remark":"消息备注"}
     *             type==6时:{"first":"消息主题","date":"预约时间",”id":"预约ID","doctorName":"医生名","orgName":"预约医院","deptName":"预约科室","remark":"消息备注"}
     *             type==7时:{"first":"消息主题","name":"就诊人名","date":"预约时间","doctorName":"医生名","orgName":"预约医院","remark":"消息备注"}
     * @return
     */
    private boolean sendWeixinMessage(String access_token, int type, String openid, String name, JSONObject json) {
        try {
            if (access_token != null) {
                String token_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token;
                String params = typeMsg(type, openid, name, json);
                if (params == "") {
                    logger.error("参数错误!");
                    return false;
                }
                String result = HttpUtil.sendPost(token_url, params);
                JSONObject jsonResult = new JSONObject(result);
                if (Integer.parseInt(jsonResult.get("errcode").toString()) == 0) {
                    logger.info("微信信息推送成功!");
                    return true;
                } else {
                    logger.error("错误编码:" + jsonResult.get("errcode").toString() + "  错误提示:" + jsonResult.get("errmsg").toString());
                    return false;
                }
            } else {
                logger.error("获取access_token失败!");
                return false;
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("微信信息推送失败!");
            return false;
        }
    }
	/**
	 * 拼接参数
	 * @param type
	 * @return
	 */
	public String typeMsg(int type, String openid, String name, JSONObject json) {
		try {
			String url = SystemConf.getInstance().getSystemProperties().getProperty("server_url") + "wx/html/";
			WechatTemplate temp = new WechatTemplate();
			temp.setTouser(openid);
			temp.setTopcolor("#000000");
			Map<String, WechatTemplateData> m = new HashMap<String, WechatTemplateData>();
			WechatTemplateData first = new WechatTemplateData();
			first.setColor("#000000");
			first.setValue(json.getString("first"));
			m.put("first", first);
			WechatTemplateData remark = new WechatTemplateData();
			remark.setColor("#000000");
			remark.setValue(json.getString("remark"));
			m.put("remark", remark);
			String temp_id = "";
			if (type == 3) {
				temp.setUrl(url + "yszx/html/consulting-doctor.html?openid=" + openid + "&consult=" + json.getString("consult"));
				temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_consult_notice");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("consultcontent"));
				m.put("keyword1", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(json.getString("replycontent"));
				m.put("keyword2", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("doctorName"));
				m.put("keyword3", keyword3);
			} else if (type == 1 || type == 2) {				
				if (type == 1)				
					temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_sign_success");
				else
					temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_sign_failed");
				temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid  + "&state=" + json.getString("doctor"));
				temp.setTouser(openid);
				temp.setTopcolor("#000000");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("doctorName"));
				m.put("keyword1", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(name);
				m.put("keyword2", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("date"));
				m.put("keyword3", keyword3);
				WechatTemplateData keyword4 = new WechatTemplateData();
				keyword4.setColor("#000000");
				keyword4.setValue(json.getString("content"));
				m.put("keyword4", keyword4);
			} else if (type == 4) {
				temp.setUrl(url + "yszd/html/doctor-guidance.html?openid=" + openid);
				temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_health_notice");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("date"));
				m.put("keyword1", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(json.getString("orgName"));
				m.put("keyword2", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("doctorName"));
				m.put("keyword3", keyword3);
				WechatTemplateData keyword4 = new WechatTemplateData();
				keyword4.setColor("#000000");
				keyword4.setValue(name);
				m.put("keyword4", keyword4);
				WechatTemplateData keyword5 = new WechatTemplateData();
				keyword5.setColor("#000000");
				keyword5.setValue(json.getString("content"));
				m.put("keyword5", keyword5);
			} else if (type == 5) {
				temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid  + "&state=" + json.getString("doctor"));
				temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_termination");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("doctorName"));
				m.put("keyword1", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(name);
				m.put("keyword2", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("orgName"));
				m.put("keyword3", keyword3);
				WechatTemplateData keyword4 = new WechatTemplateData();
				keyword4.setColor("#000000");
				keyword4.setValue(json.getString("date"));
				m.put("keyword4", keyword4);
			} else if (type == 6) {
				temp.setUrl(url + "wdyy/html/detail-appointment.html?openid=" + openid +"&id=" + json.getLong("id"));
				temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_appoint_success");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("orgName"));
				m.put("hospitalname", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(json.getString("deptName"));
				m.put("deptname", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("doctorName"));
				m.put("doctorname", keyword3);
				WechatTemplateData keyword4 = new WechatTemplateData();
				keyword4.setColor("#000000");
				keyword4.setValue(json.getString("date"));
				m.put("planstarttime", keyword4);
			} else if (type == 7) {
				temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid);
				temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_appoint_failed");
				temp.setTemplate_id(temp_id);
				WechatTemplateData keyword1 = new WechatTemplateData();
				keyword1.setColor("#000000");
				keyword1.setValue(json.getString("name"));
				m.put("keynote1", keyword1);
				WechatTemplateData keyword2 = new WechatTemplateData();
				keyword2.setColor("#000000");
				keyword2.setValue(json.getString("date"));
				m.put("keynote2", keyword2);
				WechatTemplateData keyword3 = new WechatTemplateData();
				keyword3.setColor("#000000");
				keyword3.setValue(json.getString("doctorName"));
				m.put("keynote3", keyword3);
				WechatTemplateData keyword4 = new WechatTemplateData();
				keyword4.setColor("#000000");
				keyword4.setValue(json.getString("orgName"));
				m.put("keynote4", keyword4);
			}
			temp.setData(m);
			ObjectMapper mapper = new ObjectMapper();
			String strJson = mapper.writeValueAsString(temp);
			return strJson;
		} catch (Exception e) {
			e.printStackTrace();
			return "";
		}
	}
    /**
     * 拼接参数
     *
     * @param type
     * @return
     */
    public String typeMsg(int type, String openid, String name, JSONObject json) {
        try {
            String url = SystemConf.getInstance().getSystemProperties().getProperty("server_url") + "wx/html/";
            WechatTemplate temp = new WechatTemplate();
            temp.setTouser(openid);
            temp.setTopcolor("#000000");
            Map<String, WechatTemplateData> m = new HashMap<String, WechatTemplateData>();
            WechatTemplateData first = new WechatTemplateData();
            first.setColor("#000000");
            first.setValue(json.getString("first"));
            m.put("first", first);
            WechatTemplateData remark = new WechatTemplateData();
            remark.setColor("#000000");
            remark.setValue(json.getString("remark"));
            m.put("remark", remark);
            String temp_id = "";
            if (type == 3) {
                temp.setUrl(url + "yszx/html/consulting-doctor.html?openid=" + openid + "&consult=" + json.getString("consult") + "&toUser=" + json.getString("toUser"));
                temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_consult_notice");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("consultcontent"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("replycontent"));
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("doctorName"));
                m.put("keyword3", keyword3);
            } else if (type == 1 || type == 2) {
                if (type == 1)
                    temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_sign_success");
                else
                    temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_sign_failed");
                temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid + "&state=" + json.getString("doctor") + "&toUser=" + json.getString("toUser"));
                temp.setTouser(openid);
                temp.setTopcolor("#000000");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("doctorName"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(name);
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("date"));
                m.put("keyword3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("content"));
                m.put("keyword4", keyword4);
            } else if (type == 4) {
                temp.setUrl(url + "yszd/html/doctor-guidance.html?openid=" + openid + "&toUser=" + json.getString("toUser"));
                temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_health_notice");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("date"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("orgName"));
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("doctorName"));
                m.put("keyword3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(name);
                m.put("keyword4", keyword4);
                WechatTemplateData keyword5 = new WechatTemplateData();
                keyword5.setColor("#000000");
                keyword5.setValue(json.getString("content"));
                m.put("keyword5", keyword5);
            } else if (type == 5) {
                temp.setUrl(url + "ssgg/html/doctor-homepage-new.html?openid=" + openid + "&state=" + json.getString("doctor") + "&toUser=" + json.getString("toUser"));
                temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_termination");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("doctorName"));
                m.put("keyword1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(name);
                m.put("keyword2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("orgName"));
                m.put("keyword3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("date"));
                m.put("keyword4", keyword4);
            } else if (type == 6) {
                temp.setUrl(url + "wdyy/html/detail-appointment.html?openid=" + openid + "&id=" + json.getLong("id") + "&toUser=" + json.getString("toUser"));
                temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_appoint_success");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("orgName"));
                m.put("hospitalname", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("deptName"));
                m.put("deptname", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("doctorName"));
                m.put("doctorname", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("date"));
                m.put("planstarttime", keyword4);
            } else if (type == 7) {
                temp.setUrl(url + "wdyy/html/my-appointment.html?openid=" + openid + "&toUser=" + json.getString("toUser"));
                temp_id = SystemConf.getInstance().getSystemProperties().getProperty("template_appoint_failed");
                temp.setTemplate_id(temp_id);
                WechatTemplateData keyword1 = new WechatTemplateData();
                keyword1.setColor("#000000");
                keyword1.setValue(json.getString("name"));
                m.put("keynote1", keyword1);
                WechatTemplateData keyword2 = new WechatTemplateData();
                keyword2.setColor("#000000");
                keyword2.setValue(json.getString("date"));
                m.put("keynote2", keyword2);
                WechatTemplateData keyword3 = new WechatTemplateData();
                keyword3.setColor("#000000");
                keyword3.setValue(json.getString("doctorName"));
                m.put("keynote3", keyword3);
                WechatTemplateData keyword4 = new WechatTemplateData();
                keyword4.setColor("#000000");
                keyword4.setValue(json.getString("orgName"));
                m.put("keynote4", keyword4);
            }
            temp.setData(m);
            ObjectMapper mapper = new ObjectMapper();
            String strJson = mapper.writeValueAsString(temp);
            return strJson;
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
}

+ 1 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/consult/DoctorConsultController.java

@ -450,6 +450,7 @@ public class DoctorConsultController extends WeixinBaseController {
                    if (ct != null && p != null && StringUtils.isNotEmpty(p.getOpenid())) {
                        JSONObject json = new JSONObject();
                        json.put("first", "问诊回复提醒");
                        json.put("toUser", p.getCode());
                        json.put("consultcontent", ct.getSymptoms());
                        String replycontent = content.length() > 15 ? content.substring(0, 15) + "..." : content;
                        if (type == 2) {

+ 2 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/BookingController.java

@ -265,6 +265,7 @@ public class BookingController extends WeixinBaseController {
					// 推送消息给微信端
					JSONObject json = new JSONObject();
					json.put("first", "预约挂号提醒");
					json.put("toUser", p.getCode());
					json.put("id",obj.getId());
					json.put("date", obj.getStartTime());
					json.put("orgName", obj.getOrgName());
@ -385,6 +386,7 @@ public class BookingController extends WeixinBaseController {
				if (StringUtils.isNotEmpty(p.getOpenid())) {
					JSONObject json = new JSONObject();
					json.put("first", "取消预约挂号提醒");
					json.put("toUser", p.getCode());
					json.put("name", obj.getName());
					json.put("date", obj.getStartTime());
					json.put("doctorName", obj.getDoctorName());