| 
															
																@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import java.util.ArrayList; 
															 | 
															
															 | 
															
																import java.util.ArrayList; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import java.util.List; 
															 | 
															
															 | 
															
																import java.util.List; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																import java.util.Map; 
															 | 
															
															 | 
															
																import java.util.Map; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																import java.util.stream.Collectors; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																/*** 
															 | 
															
															 | 
															
																/*** 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 * @ClassName: OnlineContactService 
															 | 
															
															 | 
															
																 * @ClassName: OnlineContactService 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -133,7 +134,7 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        JSONArray doctorResult = new JSONArray(); 
															 | 
															
															 | 
															
																        JSONArray doctorResult = new JSONArray(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        JSONArray patientResult = new JSONArray(); 
															 | 
															
															 | 
															
																        JSONArray patientResult = new JSONArray(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String doctors = imUtil.getSessionListByType(patient,"0","1","2",null,null,"1"); 
															 | 
															
															 | 
															
																        String doctors = imUtil.getSessionListByType(patient,"0","1","2",null,null,"1"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        String patients = imUtil.getSessionListByType(patient,"0","1","2",null,null,"2"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        String patients = imUtil.getSessionListByType(patient,"0","100","2",null,null,"2"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        JSONArray doctorArr = JSON.parseArray(doctors); 
															 | 
															
															 | 
															
																        JSONArray doctorArr = JSON.parseArray(doctors); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        JSONArray patientArr = JSON.parseArray(patients); 
															 | 
															
															 | 
															
																        JSONArray patientArr = JSON.parseArray(patients); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        if (doctorArr.size()==0){//取签约医生其中一个 
															 | 
															
															 | 
															
																        if (doctorArr.size()==0){//取签约医生其中一个 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@ -164,42 +165,48 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            doctorResult.add(tmp); 
															 | 
															
															 | 
															
																            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","其他"); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        JSONArray families = familyMemberService.membersWithOnLineFlag(patient); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																        if (families.size()>0){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            List<String> familyIds = families.stream().map(item->((JSONObject)item).getString("id")).collect(Collectors.toList()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            if(patientArr.size()>0){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                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)&&familyIds.contains(id)){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                        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; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    } 
															 | 
															
															 | 
															
																                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    patientResult.add(tmp); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                    break; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                } 
															 | 
															
															 | 
															
																                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																            } 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            if (patientResult.size()==0){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                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); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        } 
															 | 
															
															 | 
															
																        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        result.put("doctors",doctorResult); 
															 | 
															
															 | 
															
																        result.put("doctors",doctorResult); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        result.put("patients",patientResult); 
															 | 
															
															 | 
															
																        result.put("patients",patientResult); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																        return result; 
															 | 
															
															 | 
															
																        return result; 
															 |