| 
					
				 | 
			
			
				@ -1,12 +1,15 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.service.patient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.service.family.PatientFamilyMemberService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.service.sign.ServicePackageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.im.util.ImUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -28,6 +31,10 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ImUtil imUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientFamilyMemberService familyMemberService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ServicePackageService servicePackageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getOnLineObj(String patient){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject obj = new JSONObject(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -121,4 +128,81 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getContactFirst(String patient){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray doctorResult = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray patientResult = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctors = imUtil.getSessionListByType(patient,"0","1","2",null,null,"1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String patients = imUtil.getSessionListByType(patient,"0","1","2",null,null,"2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray doctorArr = JSON.parseArray(doctors); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray patientArr = JSON.parseArray(patients); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (doctorArr.size()==0){//取签约医生其中一个 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          List<Map<String,Object>> signDoctors =  servicePackageService.getServerDoctorAll(patient,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          if (signDoctors.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              Map<String,Object> tmp = signDoctors.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              JSONObject tmpObj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("name",tmp.get("doctorName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("unread_count","0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("avatar",tmp.get("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("userType","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("doctorId",tmp.get("doctor")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              tmpObj.put("relationName","助老员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              doctorResult.add(tmpObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject tmp = doctorArr.getJSONObject(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray participantsTimeArray = tmp.getJSONArray("participantsTimeArray"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i=0;i<participantsTimeArray.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject tmpObj = participantsTimeArray.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String id =  tmpObj.getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!id.equals(patient)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tmp.put("avatar",tmp.getString("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tmp.put("doctorId",id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tmp.put("relationName","助老员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorResult.add(tmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (patientArr.size()==0){//取家属 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray families = familyMemberService.membersWithOnLineFlag(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (families.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject tmp = families.getJSONObject(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject tmpObj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("name",tmp.getString("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("unread_count","0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("avatar",tmp.getString("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("userType","2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("patientId",tmp.get("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmpObj.put("relationName",tmp.get("familyRelationName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientResult.add(tmpObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject tmp = patientArr.getJSONObject(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray participantsTimeArray = tmp.getJSONArray("participantsTimeArray"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (int i=0;i<participantsTimeArray.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject tmpObj = participantsTimeArray.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String id =  tmpObj.getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!id.equals(patient)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tmp.put("avatar",tmp.getString("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tmp.put("patientId",id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String sql = " select family_relation from base_patient_family_member where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " patient = '"+patient+"' and family_member='"+id+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            " and (del=1 or del is null) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    List<Integer> relations = jdbcTemplate.queryForList(sql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(relations.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        tmp.put("relationName",familyMemberService.relations.get(relations.get(0))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        tmp.put("relationName","其他"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    patientResult.add(tmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("doctors",doctorResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("patients",patientResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |