| 
					
				 | 
			
			
				@ -6,8 +6,6 @@ import com.yihu.jw.im.util.ImUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.http.HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.NameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.message.BasicNameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.quartz.Job; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.quartz.JobExecutionContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.quartz.JobExecutionException; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -17,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -44,37 +41,42 @@ public class PatientSendUnreadJob implements Job { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("PatientSendUnreadJob start....."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select p.id,p.name,wc.openId from base_patient p INNER JOIN base_patient_wechat wc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " on p.id = wc.patient_id where p.del=1  and wc.wechat_id = '"+wxId+"' GROUP BY p.id ORDER BY wc.create_time desc  ;  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Map<String,Object>tmp:patientList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String patientId = tmp.get("id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Integer unreadCount = imUtil.SessionsUnreadMessageCountByUserId(patientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String name = tmp.get("name").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String openId = tmp.get("openId").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isNotBlank(openId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sql = "select t2.id from base_patient_family_member t1,base_patient t2 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " where t2.id in (select family_member from base_patient_family_member where patient = '" + patientId + "' ) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " and t1.patient = '" + patientId + "' and t1.family_member = t2.id "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<String> familys = jdbcTemplate.queryForList(sql, String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (String family : familys) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (patientId.equals(family)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("PatientSendUnreadJob start....."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql = "select p.id,p.name,wc.openId from base_patient p INNER JOIN base_patient_wechat wc " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " on p.id = wc.patient_id where p.del=1  and wc.wechat_id = '"+wxId+"' GROUP BY p.id ORDER BY wc.create_time desc  ;  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String,Object>tmp:patientList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String patientId = tmp.get("id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Integer unreadCount = imUtil.SessionsUnreadMessageCountByUserId(patientId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String name = tmp.get("name").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String openId = tmp.get("openId").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (StringUtils.isNotBlank(openId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sql = "select t2.id from base_patient_family_member t1,base_patient t2 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                " where t2.id in (select family_member from base_patient_family_member where patient = '" + patientId + "' ) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                " and t1.patient = '" + patientId + "' and t1.family_member = t2.id "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<String> familys = jdbcTemplate.queryForList(sql, String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (String family : familys) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (patientId.equals(family)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        unreadCount += imUtil.SessionsUnreadMessageCountByUserId(family); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            unreadCount += imUtil.SessionsUnreadMessageCountByUserId(family); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (unreadCount > 0) {//发送模板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String first = ""+name+"您好,您与您的家庭成员共有"+unreadCount+"条消息未回复,请及时处理"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        sendPatientUnreadWXTemplate(openId,first,"template_process_feedback","jobfsjmwd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (unreadCount > 0) {//发送模板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String first = ""+name+"您好,您与您的家庭成员共有"+unreadCount+"条消息未回复,请及时处理"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sendPatientUnreadWXTemplate(openId,first,"template_process_feedback","jobfsjmwd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("PatientSendUnreadJob end....."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("PatientSendUnreadJob end....."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void sendPatientUnreadWXTemplate(String openid,String first,String templateName,String scene){ 
			 |