Bladeren bron

Pad 助老员家属在线标识

liubing 3 jaren geleden
bovenliggende
commit
5a9e7391f9

+ 1 - 1
business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java

@ -888,7 +888,7 @@ public class ImUtil {
	 * 返回 {"status":200,"data":1} data>0 说明在线 data =0 不在线
	 */
	public String findByUserIdAndType(String userId,String type) {
		String url = im_host + "api/v2/sessions/findByUserIdAndType?userId?="+userId+"&type="+type;
		String url = im_host + "api/v2/sessions/findByUserIdAndType?userId="+userId+"&type="+type;
		String ret = HttpClientUtil.get(url, "UTF-8");
		return ret;
	}

+ 25 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/family/FamilyMemberEndpoint.java

@ -197,6 +197,31 @@ public class FamilyMemberEndpoint extends EnvelopRestEndpoint {
        }
    }
    /**
     * 家庭成员查询
     * @param patient
     * @return
     */
    @RequestMapping(value = "/membersWithOnLineFlag", method = RequestMethod.GET)
    @ApiOperation(value = "家庭成员查询带是否在线标识")
    public ObjEnvelop getPatientFamilyMembersmembersWithOnLineFlag(@RequestParam(required = false) String patient) {
        try {
            JSONObject data = new JSONObject();
            JSONArray result = new JSONArray();
            if (StringUtils.isNotEmpty(patient)) {
                result = familyMemberService.membersWithOnLineFlag(patient);
            } else  {
                result = familyMemberService.membersWithOnLineFlag(getUID());
            }
            data.put("normalmembers",result);//家人关系
            return ObjEnvelop.getSuccess( "查询成功", data);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @RequestMapping(value = "/authorize_members", method = RequestMethod.GET)
    @ApiOperation(value = "家庭成员(有授权)查询")
    public ObjEnvelop getAuthorizeFamilyMembers(){

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -519,9 +519,11 @@ public class SignEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value="getServerDoctorAll")
    @ApiOperation(value = "获取所有服务医生")
    public ListEnvelop getServerDoctorAll(@ApiParam(name = "patient", value = "患者id", required = true)
                                          @RequestParam(value = "patient") String patient){
                                          @RequestParam(value = "patient") String patient,
                                          @ApiParam(name = "onlineFlag", value = "获取在线状态获取 0不获取 1获取", required = false)
                                          @RequestParam(value = "onlineFlag",required = false) String onlineFlag){
        try {
            return ListEnvelop.getSuccess("查询成功",servicePackageService.getServerDoctorAll(patient));
            return ListEnvelop.getSuccess("查询成功",servicePackageService.getServerDoctorAll(patient,onlineFlag));
        }catch (Exception e){
            return failedListEnvelopException2(e);
        }

+ 76 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/family/PatientFamilyMemberService.java

@ -8,6 +8,7 @@ import com.yihu.jw.care.service.wechat.WeiXinAccessTokenUtils;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.security.MD5;
@ -37,6 +38,8 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
    private ServicePackageSignRecordDao signRecordDao;
    @Autowired
    private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
    @Autowired
    private ImUtil imUtil;
@ -444,6 +447,79 @@ public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamily
        return resultArray;
    }
    /**
     * 获取居民的家庭成员
     */
    public JSONArray membersWithOnLineFlag(String patient) {
        JSONArray resultArray = new JSONArray();
        String sql = "select *,CAST(t2.archive_type as char) as archive_type " +
                " from " +
                "    base_patient_family_member t1, " +
                "    base_patient t2 " +
                " where " +
                "    t2.id in (select family_member from base_patient_family_member where patient = ? ) " +
                "    and t1.patient = ? " +
                "    and t1.family_member = t2.id ";
        List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{patient, patient});
        if (result != null && result.size() > 0) {
            for (Map<String, Object> map : result) {
                JSONObject obj = new JSONObject();
                List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,map.get("family_member").toString());
                boolean jtSign = false;
                int status = 0;
                if(signs.size()>0){
                    jtSign = true;
                    status = 1;
                }
                Integer isAuthorize = (Integer) map.get("is_authorize");
                obj.put("id", map.get("id"));
                obj.put("name", map.get("name"));
                obj.put("isContacts", map.get("is_contacts"));
                obj.put("sex", map.get("sex"));
                obj.put("isAuthorize", isAuthorize);//0:未授权,1:已授权
                obj.put("birthday", map.get("birthday"));
                obj.put("idcard", StringUtils.isEmpty(String.valueOf(map.get("idcard"))) ? "" : map.get("idcard").toString());
                obj.put("photo", map.get("photo"));
                obj.put("mobile", map.get("mobile"));
                obj.put("address", StringUtils.isEmpty(String.valueOf(map.get("address"))) ? "" : map.get("address"));
                obj.put("familyRelation", map.get("family_relation"));
                obj.put("familyRelationName", relations.get(map.get("family_relation")));
                if (jtSign) {
                    obj.put("signType", 1);
                } else {
                    obj.put("signType", 0);
                }
                obj.put("state", "1");//0 :未处理;1:已同意;2:已拒绝
                String archive_type = null;
                Integer oneLineFlag =0;
                switch (map.get("archive_type").toString()){
                    case "1":
                        archive_type = "older";//老人
                        break;
                    case "2":
                        archive_type = "child";//新生儿
                        break;
                }
                if (StringUtils.isNotBlank(archive_type)){
                    String onLineStr = imUtil.findByUserIdAndType(map.get("id").toString(),archive_type);
                    JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                    if (200 == oneLineObj.getInteger("status")){
                        if (oneLineObj.getInteger("data")>0){
                            oneLineFlag=1;
                        }
                    }
                }
                obj.put("oneLineFlag", oneLineFlag);
                resultArray.add(obj);
            }
        }
        return resultArray;
    }
    /**
     * 获取有授权的家庭成员
     *

+ 23 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -15,6 +15,7 @@ import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.entity.care.apply.PatientBedApplyDo;
import com.yihu.jw.entity.care.archive.ArchiveDO;
import com.yihu.jw.entity.care.sign.CapacityAssessmentRecordDO;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.service.BasePatientMedicardCardService;
import com.yihu.jw.restmodel.ResponseContant;
@ -72,6 +73,8 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    private StringRedisTemplate redisTemplate;
    @Autowired
    private PatientBedApplyDao bedApplyDao;
    @Autowired
    private ImUtil imUtil;
    /**
     * 查找签约机构
@ -520,8 +523,8 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        return result;
    }
    public List<Map<String,Object>> getServerDoctorAll(String patient){
        String sql="select DISTINCT doc.id doctor,CONCAT(doc.`name`,CASE WHEN doc.doctor_level=1 THEN '(社区医生)' ELSE '(助老员)' END) as name,doc.photo,doc.mobile\n" +
    public List<Map<String,Object>> getServerDoctorAll(String patient,String onlineFlag){
        String sql="select DISTINCT doc.id doctor,CONCAT(doc.`name`,CASE WHEN doc.doctor_level=1 THEN '(社区医生)' ELSE '(助老员)' END) as name,doc.photo,doc.mobile,0 as oneLineFlag\n" +
                "from base_service_package_item item ,base_service_package pack,base_team_member mem,base_doctor doc\n" +
                "where item.service_package_id in (\n" +
                "SELECT spc.service_package_id FROM base_service_package_record spc ,base_service_package_sign_record spsr\n" +
@ -529,6 +532,24 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
                ") and item.service_package_id = pack.id\n" +
                "and item.team_code = mem.team_code and mem.doctor_code = doc.id and mem.del=1 and pack.del=1 and item.del = 1";
        List<Map<String,Object>>result = jdbcTemplate.queryForList(sql);
        if ("1".equals(onlineFlag)){//展示是否在线
            String listStr = imUtil.getOnlineListByType("helper");
            JSONObject onLineObj  = JSONObject.parseObject(listStr);
            if (200 == onLineObj.getInteger("status")){
                JSONObject oneLineInfo = onLineObj.getJSONObject("helper");
                for (Map<String,Object>tmp:result){
                    String doctorCode = tmp.get("doctor").toString();
                    if (oneLineInfo.containsKey(doctorCode)){
                        if (oneLineInfo.getInteger(doctorCode)>0){
                            tmp.put("oneLineFlag",1);
                        }
                    }
                }
            }
            else {
                logger.info("获取用户在线列表失败:"+patient);
            }
        }
        return result;
    }