| 
					
				 | 
			
			
				@ -3,6 +3,7 @@ package com.yihu.jw.door.util; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.wx.BasePatientWechatDo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.wx.WxAccessTokenDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.wx.WxTemplateConfigDO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -10,6 +11,7 @@ import com.yihu.jw.entity.base.wx.WxWechatDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.message.SystemMessageDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.exception.ApiException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.exception.code.ExceptionCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.message.dao.SystemMessageDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.rm.base.WechatRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.IdCardUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -17,6 +19,7 @@ import com.yihu.jw.util.http.HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.wechat.WeixinMessagePushUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.wechat.wxhttp.HttpUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.BasePatientWechatDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.WxAccessTokenDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.WxTemplateConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.service.WxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.utils.network.HttpUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -54,6 +57,10 @@ public class MessageUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxTemplateConfigDao wxTemplateConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SystemMessageDao systemMessageDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxAccessTokenDao wxAccessTokenDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //发送微信模板消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String sendMessageUrl ="http://172.16.100.37:8090/hospitalPortal-sms/sms/sendMessage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -227,8 +234,6 @@ public class MessageUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("--------------wechat token return:"+result+"---------------"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            org.json.JSONObject json = new org.json.JSONObject(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.has("access_token")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql="INSERT INTO `base`.`wx_access_token` (`id`, `wechat_id`, `access_token`, `add_timestamp`, `expires_in`, `czrq`, `code`) \n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "VALUES ('?1', '?2', '?3', '?4', '?5', '?6', '?7') "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String token = json.get("access_token").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String expires_in = json.get("expires_in").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                WxAccessTokenDO newaccessToken = new WxAccessTokenDO(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -238,15 +243,7 @@ public class MessageUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                newaccessToken.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                newaccessToken.setCode(UUID.randomUUID().toString().replace("-","")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                newaccessToken.setWechatId(wechatId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?1",UUID.randomUUID().toString().replace("-","")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?2",newaccessToken.getWechatId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?3",newaccessToken.getAccessToken()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?4",newaccessToken.getAddTimestamp()+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?5",newaccessToken.getExpiresIn()+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?6",format.format(newaccessToken.getCzrq())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql.replace("?7",newaccessToken.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jdbcTemplate.execute(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                wxAccessTokenDao.save(newaccessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return newaccessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -282,92 +279,13 @@ public class MessageUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        data.put("msg", msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageDO.setData(data.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date date = messageDO.getCreateTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateTime=format.format(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql="INSERT INTO `base`.`base_system_message` (`id`, `type`, `title`, `sender`, `sender_name`, `receiver`, `receiver_name`, `relation_code`, `data`, `is_read`, `del`, `create_time`,`over`) \n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "VALUES ('?!', '?2', '?3', '?4', '?5', '?6', '?7', '?8', '?9', '0', '1', '?10')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageDO.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?1",messageDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?2",messageDO.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?3",messageDO.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?4",messageDO.getSender()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?5",messageDO.getSenderName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?6",messageDO.getReceiver()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?7",messageDO.getReceiverName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?8",messageDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?9",messageDO.getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?10",dateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?11",over); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jdbcTemplate.execute(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return messageDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public SystemMessageDO saveSystemMessage(SystemMessageDO messageDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isBlank(messageDO.getId())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            messageDO.setId(UUID.randomUUID().toString().replace("-","")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date date = messageDO.getCreateTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateTime=format.format(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql="INSERT INTO `base`.`base_system_message` (`id`, `type`, `title`, `sender`, `sender_name`, `receiver`, `receiver_name`, `relation_code`, `data`, `is_read`, `del`, `create_time`,`over`) \n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "VALUES ('?!', '?2', '?3', '?4', '?5', '?6', '?7', '?8', '?9', '0', '1', '?10','?11')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageDO.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?1",messageDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?2",messageDO.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?3",messageDO.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?4",messageDO.getSender()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?5",messageDO.getSenderName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?6",messageDO.getReceiver()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?7",messageDO.getReceiverName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?8",messageDO.getRelationCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?9",messageDO.getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?10",dateTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql.replace("?11",messageDO.getOver()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jdbcTemplate.execute(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageDO.setOver(over); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        messageDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        systemMessageDao.save(messageDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return messageDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public void updateMessageByList(String orderId,String typeCondition,String title) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<SystemMessageDO> messages = findSystemMesage(orderId, "403,407"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (CollectionUtils.isEmpty(messages)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.error("当前工单没有医生待接单消息!orderId:" + orderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            messages.forEach(message -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                orderMessageDel(message.getId(), message.getRelationCode(), message.getType(), message.getReceiver()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (message.getType().equals("403")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setTitle("医生接单"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setType(434 + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setReceiver(doorServiceOrder.getDispatcher()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setReceiverName(doorServiceOrder.getDispatcherName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setSender(doorServiceOrder.getDoctor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setSenderName(doorServiceOrder.getDoctorName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    JSONObject data = JSONObject.parseObject(message.getData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    String msg = doorServiceOrder.getDispatcherName() + "接受了服务工单" + doorServiceOrder.getNumber(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doorServiceOrder.getDispatcher());//· 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.put("name", message.getReceiverName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.put("age", IdCardUtil.getAgeForIdcard(baseDoctorDO.getIdcard())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        data.put("gender", IdCardUtil.getSexForIdcard(baseDoctorDO.getIdcard())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                        e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    data.put("msg", msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    message.setData(data.toJSONString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                    message.setOver("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                saveSystemMessage(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void updateMessage(SystemMessageDO message) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orderMessageDel(message.getId(),null,null,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<SystemMessageDO> findSystemMesage(String relationCode,String type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuilder sql =new StringBuilder("select * from base.base_system_message where 1=1 "); 
			 |