Explorar o código

Merge branch 'dev' of shikejing/wlyy2.0 into dev

shikejing %!s(int64=3) %!d(string=hai) anos
pai
achega
f9eed7807f

+ 39 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/OnlineContactEndpoint.java

@ -0,0 +1,39 @@
package com.yihu.jw.care.endpoint.patient;
import com.yihu.jw.care.service.patient.OnlineContactService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/***
 * @ClassName: OnlineContactEndpoint
 * @Description: 在线联系
 * @Auther: shi kejing
 * @Date: 2021/8/11 16:43
 */
@RestController
@RequestMapping("online" )
@Api(tags = "在线联系", description = "在线联系")
public class OnlineContactEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private OnlineContactService service;
    @GetMapping(value = "getOnLineObj")
    @ApiOperation(value = "获取在线联系")
    public Envelop getOnLineObj(
            @ApiParam(name = "patient", value = "居民id") @RequestParam(value = "patient", required = true) String patient) {
        try{
            return success("获取成功",service.getOnLineObj(patient));
        }catch (Exception e){
            return failedException2(e);
        }
    }
}

+ 109 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/OnlineContactService.java

@ -0,0 +1,109 @@
package com.yihu.jw.care.service.patient;
import com.alibaba.fastjson.JSONObject;
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;
import java.util.List;
import java.util.Map;
/***
 * @ClassName: OnlineContactService
 * @Description:
 * @Auther: shi kejing
 * @Date: 2021/8/11 16:47
 */
@Service
public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePatientDao> {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private ImUtil imUtil;
    public JSONObject getOnLineObj(String patient){
        JSONObject obj = new JSONObject();
        String zlySql = "SELECT d.id,d.name,d.photo FROM base_doctor d,base_service_package_sign_record spsr\n" +
                "WHERE d.del = 1 AND d.doctor_level = 2 AND d.id = spsr.sign_doctor AND spsr.`status` = 1 AND spsr.patient = '"+patient+"'";
        String jsSql = "SELECT p.id,p.`name`,p.photo,pfm.family_relation familyRelation,p.archive_type\n" +
                "FROM base_patient_family_member pfm,base_patient p\n" +
                "WHERE pfm.del = 1 AND pfm.family_member = p.id AND p.patient_status = 1 AND pfm.patient = '"+patient+"'";
        String fwzSql = "SELECT o.`code`,o.`name`,o.photo,o.mobile,o.address\n" +
                "FROM base_doctor_hospital dh,base_org o,base_service_package_sign_record spsr\n" +
                "WHERE dh.del = 1 AND o.del = 1 AND spsr.`status` = 1 AND spsr.sign_doctor = dh.doctor_code\n" +
                "AND dh.org_code = o.`code` AND spsr.patient = '"+patient+"' GROUP BY o.`code`";
        List<Map<String,Object>> zlyList = jdbcTemplate.queryForList(zlySql);
        List<Map<String,Object>> jsList = jdbcTemplate.queryForList(jsSql);
        List<Map<String,Object>> fwzList = jdbcTemplate.queryForList(fwzSql);
        if (zlyList.size() > 0){
            for (int i=0;i<zlyList.size();i++){
                JSONObject helperObj = new JSONObject();
                helperObj.put("id",zlyList.get(i).get("id"));
                helperObj.put("name",zlyList.get(i).get("name"));
                helperObj.put("photo",zlyList.get(i).get("photo"));
                Integer onLineFlag =0;
                String onLineStr = imUtil.findByUserIdAndType(zlyList.get(i).get("id").toString(),"helper");
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                    }
                }
                helperObj.put("onLineFlag", onLineFlag);
                obj.put("helperObj",helperObj);
            }
        }
        if (jsList.size() > 0){
            for (int i=0;i<jsList.size();i++){
                JSONObject familyObj = new JSONObject();
                familyObj.put("id",jsList.get(i).get("id"));
                familyObj.put("name",jsList.get(i).get("name"));
                familyObj.put("photo",jsList.get(i).get("photo"));
                familyObj.put("familyRelation",jsList.get(i).get("familyRelation"));
                String archive_type = null;
                Integer onLineFlag =0;
                switch (jsList.get(i).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(jsList.get(i).get("id").toString(),archive_type);
                    JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                    if (200 == oneLineObj.getInteger("status")){
                        if (oneLineObj.getInteger("data")>0){
                            onLineFlag=1;
                        }
                    }
                }
                familyObj.put("onLineFlag", onLineFlag);
                obj.put("familyObj",familyObj);
            }
        }
        if (fwzList.size() > 0){
            for (int i=0;i<fwzList.size();i++){
                JSONObject serStationObj = new JSONObject();
                serStationObj.put("code",fwzList.get(i).get("code"));
                serStationObj.put("name",fwzList.get(i).get("name"));
                serStationObj.put("photo",fwzList.get(i).get("photo"));
                serStationObj.put("mobile",fwzList.get(i).get("mobile"));
                serStationObj.put("address",fwzList.get(i).get("address"));
                obj.put("serStationObj",serStationObj);
            }
        }
        return obj;
    }
}