|  | @ -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 ");
 |