| 
					
				 | 
			
			
				@ -7,13 +7,14 @@ import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.im.dao.ConsultDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.im.dao.ConsultTeamDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.im.util.ImUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.im.util.ImageCompress; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.FileUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.NameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.message.BasicNameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.service.WxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Sort; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -51,6 +52,29 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					protected HttpServletRequest request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public WxAccessTokenService wxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${im.data_base_name}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String data_base_name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${FileTempPath.upload_temp_path}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String upload_temp_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${FileTempPath.image_path}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String image_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${FileTempPath.voice_path}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String voice_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${FileTempPath.chat_file_path}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String chat_file_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${fastDFS.fastdfs_file_url}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String fastdfs_file_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 查询患者所有的咨询记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param patient 患者标识 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -160,9 +184,11 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param content 消息内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param type 消息类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param times 次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param patientcode 发送的居民CODE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param wechat_appid 微信公众号appid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public List<String> append(String consult, String content, Integer type, Integer times,String patientcode) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public List<String> append(String consult, String content, Integer type, Integer times,String patientcode,String wechat_appid) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						List<ConsultTeamLogDo> logs = new ArrayList<ConsultTeamLogDo>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ConsultTeamDo consultModel = consultTeamDao.findByConsult(consult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -176,11 +202,11 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String[] arr = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (type == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String path = fetchWxVoices(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String path = fetchWxVoices(wechat_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 将临时语音拷贝到正式存储路径下 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (org.apache.commons.lang3.StringUtils.isNotEmpty(path)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								content = CommonUtil.copyTempVoice(path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								content = fileUtil.copyTempVoice(path,fastdfs_file_url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								obj.put("path", content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								obj.put("times", times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								content = obj.toString(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -194,13 +220,14 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							logs.add(log); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} else if (type == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 图片消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							content = fetchWxImages(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							content = fetchWxImages(wechat_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 将临时图片拷贝到正式存储路径下 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (org.apache.commons.lang3.StringUtils.isNotEmpty(content)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								content = CommonUtil.copyTempImage(content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								content = fileUtil.copyTempImage(content,upload_temp_path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (org.apache.commons.lang3.StringUtils.isEmpty(content)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return error(-1, "图片上传失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								throw new Exception("图片上传失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//				return error(-1, "图片上传失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String[] images = content.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							for (String image : images) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -228,118 +255,90 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						List<String> failed = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String agent = getUID()==getRepUID()?null:getUID(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						for (ConsultTeamLogDo log : logs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String response = ImUtill.sendTopicIM(getUID(), patient.getName(), consult, String.valueOf(log.getType()), log.getContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String response = ImUtill.sendTopicIM(getRepUID(), patient.getName(), consult, String.valueOf(log.getType()), log.getContent(),agent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String response = imUtil.sendTopicIM(patientcode, patient.getName(), consult, String.valueOf(log.getType()), log.getContent(),null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (org.apache.commons.lang3.StringUtils.isNotEmpty(response)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								JSONObject resObj = new JSONObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (resObj.getInt("status") == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									return invalidUserException(new RuntimeException(resObj.getString("message")), -1, "追问失败!" + resObj.getString("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									throw new Exception("追问失败!" + resObj.getString("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					return invalidUserException(new RuntimeException(resObj.getString("message")), -1, "追问失败!" + resObj.getString("message")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								failed.add(String.valueOf(resObj.get("data"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         /*if(messageService.getMessageNoticeSettingByMessageType(consultModel.getDoctor(),"1",MessageNoticeSetting.MessageTypeEnum.imSwitch.getValue())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            //            新增发送医生助手模板消息 v1.4.0 by wujunjie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Doctor doctor = doctorDao.findByCode(consultModel.getDoctor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String doctorOpenID = doctor.getOpenid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (StringUtils.isNotEmpty(doctorOpenID)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                String title = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Consult consultSingle = consultDao.findByCode(log.getConsult()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (consultSingle!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Integer singleType = consultSingle .getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if (singleType != null && singleType ==8 ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        title = consultSingle.getTitle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    }else if(singleType != null && singleType !=8 ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        title = consultSingle.getSymptoms(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String repContent = parseContentType(type+"",content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String first = "居民" +patient.getName()+"的健康咨询有新的回复。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("type", "8")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("openId", doctorOpenID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("url", targetUrl)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("first",  first)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("remark", "请进入手机APP查看")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String keywords = title + "," + repContent +","+ doctor.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    params.add(new BasicNameValuePair("keywords", keywords)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    httpClientUtil.post(url, params, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									String sql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									if (consultModel.getType() == 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										//家庭咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										sql = "SELECT t.participant_id FROM " + im + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												".participants t where t.session_id = '" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												patient.getId() + "_" + consultModel.getTeam() + "_" + consultModel.getType() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												"' and t.participant_role = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									}else if (consultModel.getType() == 8 || consultModel.getType() == 9 || consultModel.getType() == 11){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										//8-续方咨询 9-在线复诊咨询 11-上门预约服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										sql = "SELECT t.participant_id FROM " + im + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												".participants t where t.session_id = '" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												patient.getId() + "_" + consultModel.getConsult() + "_" + consultModel.getType() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												"' and t.participant_role = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//				try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					String sql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					if (consultModel.getType() == 2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						//家庭咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						sql = "SELECT t.participant_id FROM " + data_base_name + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								".participants t where t.session_id = '" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								patient.getId() + "_" + consultModel.getTeam() + "_" + consultModel.getType() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								"' and t.participant_role = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					}else if (consultModel.getType() == 8 || consultModel.getType() == 9 || consultModel.getType() == 11){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						//8-续方咨询 9-在线复诊咨询 11-上门预约服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						sql = "SELECT t.participant_id FROM " + data_base_name + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								".participants t where t.session_id = '" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								patient.getId() + "_" + consultModel.getConsult() + "_" + consultModel.getType() + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								"' and t.participant_role = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									if(org.apache.commons.lang3.StringUtils.isEmpty(sql)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										return write(-1, "追问失败!", "data", "不存在该类型!【type】:" + type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									List<Map<String, Object>> participants = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									for (Map<String, Object> participant : participants) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					if(org.apache.commons.lang3.StringUtils.isEmpty(sql)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						throw new Exception("追问失败!不存在该类型!【type】:" + type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						return write(-1, "追问失败!", "data", "不存在该类型!【type】:" + type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					List<Map<String, Object>> participants = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					for (Map<String, Object> participant : participants) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                          //有居民、健管、全科 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										String doctorCode = participant.get("participant_id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										if (doctorCode.equals(patient.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						String doctorCode = participant.get("participant_id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						if (doctorCode.equals(patient.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										//健管 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										Boolean flag = messageService.getMessageNoticeSettingByMessageType(doctorCode, "1", MessageNoticeSetting.MessageTypeEnum.imSwitch.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						Boolean flag = messageService.getMessageNoticeSettingByMessageType(doctorCode, "1", MessageNoticeSetting.MessageTypeEnum.imSwitch.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										//全科 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                            Boolean flag2 = !messageService.getMessageNoticeSettingByMessageType(doctorCode, "1", MessageNoticeSetting.MessageTypeEnum.familyTopicSwitch.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											//            新增发送医生助手模板消息 v1.4.0 by wujunjie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											Doctor doctor = doctorDao.findByCode(doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											String doctorOpenID = doctor.getOpenid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											if (org.apache.commons.lang3.StringUtils.isNotEmpty(doctorOpenID)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												String title = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												Consult consultSingle = consultDao.findByCode(log.getConsult()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												if (consultSingle != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													Integer singleType = consultSingle.getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													if (singleType != null && singleType == 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
														title = consultSingle.getTitle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													} else if (singleType != null && singleType != 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
														title = consultSingle.getSymptoms(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													String repContent = parseContentType(type + "", content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													String first = "居民" + patient.getName() + "的咨询有新的回复。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("type", "8")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("openId", doctorOpenID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("url", targetUrl)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("first", first)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("remark", "请进入手机APP查看")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													String keywords = title + "," + repContent + "," + doctor.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													params.add(new BasicNameValuePair("keywords", keywords)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													httpClientUtil.post(url, params, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													System.out.println("发送对象:"+doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
													System.out.println("发送对象名字:"+doctor.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
												} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
											} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							//            新增发送医生助手模板消息 v1.4.0 by wujunjie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							Doctor doctor = doctorDao.findByCode(doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							String doctorOpenID = doctor.getOpenid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							if (org.apache.commons.lang3.StringUtils.isNotEmpty(doctorOpenID)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								String title = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								Consult consultSingle = consultDao.findByCode(log.getConsult()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								if (consultSingle != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									Integer singleType = consultSingle.getType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									if (singleType != null && singleType == 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//										title = consultSingle.getTitle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									} else if (singleType != null && singleType != 8) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//										title = consultSingle.getSymptoms(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									String repContent = parseContentType(type + "", content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									String first = "居民" + patient.getName() + "的咨询有新的回复。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									String url = doctorAssistant + "/wlyy/feldsher/sendDoctorTemplates"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("type", "8")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("openId", doctorOpenID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("url", targetUrl)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("first", first)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("remark", "请进入手机APP查看")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									String keywords = title + "," + repContent + "," + doctor.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									params.add(new BasicNameValuePair("keywords", keywords)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									httpClientUtil.post(url, params, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									System.out.println("发送对象:"+doctorCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//									System.out.println("发送对象名字:"+doctor.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//				} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//					e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return failed; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -347,7 +346,7 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String fetchWxVoices() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String fetchWxVoices(String wecha_appid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String voiceIds = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String voices = request.getParameter("voices"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -359,7 +358,7 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (org.apache.commons.lang3.StringUtils.isEmpty(mediaId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								String temp = saveVoiceToDisk(mediaId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								String temp = saveVoiceToDisk(mediaId,wecha_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (org.apache.commons.lang3.StringUtils.isNotEmpty(temp)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									if (voiceIds.length() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										voiceIds = temp; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -369,7 +368,8 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//			error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return voiceIds; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -380,9 +380,9 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param mediaId 文件的id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String saveVoiceToDisk(String mediaId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String saveVoiceToDisk(String mediaId,String wechat_appid) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 文件保存的临时路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tempPath = SystemConf.getInstance().getTempPath() + File.separator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tempPath = upload_temp_path + File.separator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 拼接年月日路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String datePath = DateUtil.getStringDate("yyyy") + File.separator + DateUtil.getStringDate("MM") + File.separator + DateUtil.getStringDate("dd") + File.separator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 重命名文件 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -398,7 +398,7 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (!uploadFile.getParentFile().exists()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								uploadFile.getParentFile().mkdirs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							inputStream = getInputStream(mediaId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							inputStream = getInputStream(mediaId,wechat_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							byte[] data = new byte[1024]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int len = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							fileOutputStream = new FileOutputStream(uploadFile); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -436,8 +436,8 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public InputStream getInputStream(String mediaId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String accessToken = getAccessToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public InputStream getInputStream(String mediaId,String wechat_appid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String accessToken = wxAccessTokenService.getWxAccessTokenById(wechat_appid).getAccessToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						InputStream is = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + accessToken + "&media_id=" + mediaId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -458,4 +458,92 @@ public class ImService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return is; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取微信服务器图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param wechat_appid 微信公众号appid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String fetchWxImages(String wechat_appid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String photos = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String images = request.getParameter("mediaIds"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (org.apache.commons.lang3.StringUtils.isEmpty(images)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return photos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String[] mediaIds = images.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							for (String mediaId : mediaIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (org.apache.commons.lang3.StringUtils.isEmpty(mediaId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								String temp = saveImageToDisk(mediaId,wechat_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (org.apache.commons.lang3.StringUtils.isNotEmpty(temp)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									if (photos.length() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										photos = temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
										photos += "," + temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//			error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return photos; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取下载图片信息(jpg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param mediaId 文件的id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param wechat_appid 微信appid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String saveImageToDisk(String mediaId,String wechat_appid) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 文件保存的临时路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tempPath = upload_temp_path + File.separator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 拼接年月日路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String datePath = DateUtil.getStringDate("yyyy") + File.separator + DateUtil.getStringDate("MM") + File.separator + DateUtil.getStringDate("dd") + File.separator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 重命名文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String newFileName = DateUtil.dateToStr(new Date(), DateUtil.YYYYMMDDHHMMSS) + "_" + new Random().nextInt(1000) + ".png"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						// 保存路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						File uploadFile = new File(tempPath + datePath + newFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						InputStream inputStream = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						FileOutputStream fileOutputStream = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (!uploadFile.getParentFile().exists()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								uploadFile.getParentFile().mkdirs(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							inputStream = getInputStream(mediaId,wechat_appid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							byte[] data = new byte[1024]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int len = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							fileOutputStream = new FileOutputStream(uploadFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							while ((len = inputStream.read(data)) != -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								fileOutputStream.write(data, 0, len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 生成缩略图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							ImageCompress.compress(uploadFile.getAbsolutePath(), uploadFile.getAbsolutePath() + "_small", 300, 300); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							// 返回保存路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return datePath + newFileName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (inputStream != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									inputStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (fileOutputStream != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									fileOutputStream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |