Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

yeshijie 3 years ago
parent
commit
995f072d52

+ 4 - 0
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -2139,6 +2139,10 @@ public class ImService {
		return imUtil.SessionsUnreadMessageCount(userid,type);
	}
	public Integer SessionsUnreadMessageCountByUserId(String userid){
		return imUtil.SessionsUnreadMessageCountByUserId(userid);
	}
	/**
	 * 发送复诊诊断和药品消息
	 * @param wlyyPrescriptionVO

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

@ -780,6 +780,18 @@ public class ImUtil {
			return 0;
		}
	}
	public Integer SessionsUnreadMessageCountByUserId(String userid){
		String url = im_host + "api/v2/sessions/unread_message_count?user_id="+userid;
//		String url = "http://ehr.yihu.com/api/v2/sessions/unread_message_count?user_id="+userid;
		String ret = HttpClientUtil.get(url,"utf-8");
		JSONObject obj = JSON.parseObject(ret);
//		if(obj.getInteger("count") ==200){
		return obj.getInteger("count");
//		}else{
//			return 0;
//		}
	}
	
	/**
	 *获取所有会话未读消息数。

+ 8 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/course/RecruitStudentsRecordDao.java

@ -2,7 +2,10 @@ package com.yihu.jw.base.dao.course;
import com.yihu.jw.entity.care.course.RecruitStudentsRecordDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -17,4 +20,9 @@ public interface RecruitStudentsRecordDao extends PagingAndSortingRepository<Rec
        JpaSpecificationExecutor<RecruitStudentsRecordDO> {
    List<RecruitStudentsRecordDO> findByRecruitStudentsIdAndStatus(String recruitStudentsId,String status);
    @Transactional
    @Modifying
    @Query("update RecruitStudentsRecordDO a set a.status = 8 where a.id = ?1")
    int updateStatus(String id);
}

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/course/RecruitStudentsRecordEndpoint.java

@ -112,6 +112,21 @@ public class RecruitStudentsRecordEndpoint extends EnvelopRestEndpoint {
    }
    @PostMapping(value = "leaveSchool")
    @ApiOperation(value = "退学")
    public Envelop leaveSchool(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try{
            recruitStudentsRecordService.leaveSchool(id);
            return success("退学成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("退学失败",-1);
        }
    }
    @PostMapping(value = "admissions")
    @ApiOperation(value = "录取")

+ 5 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/course/RecruitStudentsRecordService.java

@ -56,6 +56,11 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
    }
    public int leaveSchool(String id){
       int ret = recruitStudentsRecordDao.updateStatus(id);
       return ret;
    }
    /**
     * 批量录取
     * @param ids

+ 3 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/doorCoach/BaseDoorCoachOrderDao.java

@ -47,4 +47,7 @@ public interface BaseDoorCoachOrderDao extends PagingAndSortingRepository<BaseDo
    @Query("select o from BaseDoorCoachOrderDO o where o.relationCode = ?1 order by o.createTime desc")
    List<BaseDoorCoachOrderDO> findByRelationCode(String relationCode);
    @Query("select o from BaseDoorCoachOrderDO o where o.doctor = ?1 and o.status in (1,2,3,4,5)")
    List<BaseDoorCoachOrderDO> getUnFinishOrderByDoctor(String doctor);
}

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorEndpoint.java

@ -3,6 +3,7 @@ package com.yihu.jw.care.endpoint.doctor;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.doctor.CareDoctorService;
import com.yihu.jw.care.service.doorCoach.DoctorDoorCoachOrderService;
import com.yihu.jw.care.service.sign.CapacityAssessmentRecordService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.restmodel.web.Envelop;
@ -166,4 +167,17 @@ public class DoctorEndpoint extends EnvelopRestEndpoint {
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "getNotificationCount")
    @ApiOperation(value = "教师首页-上门辅导待完成工单、在线咨询未回复、消息列表未回复")
    public ObjEnvelop getNotificationCount(
            @ApiParam(name = "doctor", value = "doctor", defaultValue = "4028030c796376b801796380a2b50003") @RequestParam(value = "doctor",required = true) String doctor,
            @ApiParam(name = "type", value = "type", defaultValue = "0") @RequestParam(value = "type",required = false) Integer type){
        try {
            return ObjEnvelop.getSuccess("查询成功",doctorService.getNotificationCount(doctor,type));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
}

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doorCoach/DoctorDoorCoachOrderController.java

@ -517,7 +517,19 @@ public class DoctorDoorCoachOrderController extends BaseController {
        }
    }
    @PostMapping(value = "payOrder")
    @ApiOperation(value = "医生确认付款")
    public ObjEnvelop payOrder(
            @ApiParam(name = "orderId", value = "工单id") @RequestParam(value = "orderId", required = true) String orderId,
            @ApiParam(name = "payWay", value = "支付方式:1-微信支付,2-线下支付") @RequestParam(value = "payWay", required = false,defaultValue = "2") int payWay) {
        try {
            return ObjEnvelop.getSuccess("操作成功",doctorDoorCoachOrderService.payOrder(orderId, payWay));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询成功");
        }
    }
    /**
     * 获取服务项目

+ 78 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/patient/PatientNoLoginEndPoint.java

@ -0,0 +1,78 @@
package com.yihu.jw.care.endpoint.third.patient;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.service.WechatInfoService;
import io.swagger.annotations.Api;
import org.apache.axis.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
 * Created by Bing on 2021/5/28.
 */
@RestController
@RequestMapping(value = "/cloudCare/noLogin/patient")
@Api(value = "患者不用登陆访问控制类", description = "患者不用登陆访问控制类")
public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Autowired
    private WechatInfoService wechatInfoService;
    @Autowired
    private BasePatientWechatDao basePatientWechatDao;
    /**
     * 获取微信openid
     *
     * @param code
     * @return
     */
    @RequestMapping(value = "/getOpenidByCode", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public Envelop getOpenidByCode(String code, @RequestParam(value = "patientId", required = false)String patientId) throws Exception {
        try {
            //通过redis获取openid, 获取不到,则调用微信接口去取
            String key = wxId+":code";
            String openid = redisTemplate.opsForValue().get(key);
            if(!StringUtils.isEmpty(openid)){
                return success(PatientRequestMapping.Wechat.api_success,openid);
            }
            openid = wechatInfoService.getOpenidByCode(code, wxId);
            if (!StringUtils.isEmpty(patientId)){
                List<BasePatientWechatDo> list = basePatientWechatDao.findByWechatIdAndPatientId(wxId,patientId);
                if (list!=null&&list.size()>0){
                    for (BasePatientWechatDo basePatientWechatDo:list){
                        basePatientWechatDo.setOpenid(openid);
                        basePatientWechatDao.save(basePatientWechatDo);
                    }
                }else {
                    BasePatientWechatDo basePatientWechatDo = new BasePatientWechatDo();
                    basePatientWechatDo.setPatientId(patientId);
                    basePatientWechatDo.setWechatId(wxId);
                    basePatientWechatDo.setCreateTime(new Date());
                    basePatientWechatDo.setOpenid(openid);
                    basePatientWechatDao.save(basePatientWechatDo);
                }
            }
            redisTemplate.opsForValue().set(key,openid);
            redisTemplate.expire(key,10, TimeUnit.SECONDS);
            return success(PatientRequestMapping.Wechat.api_success,openid);
        } catch (Exception e){
            return  failedException(e);
        }
    }
}

+ 19 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/course/CourseService.java

@ -700,6 +700,25 @@ public class CourseService {
            }
            object.put("count",count);//已报名人数
        }else {
            String sql1 = "SELECT o.id,o.`code`,o.`name`,o.mobile,o.photo,o.address,o.brief " +
                    "FROM base_org o " +
                    "WHERE o.id = '"+id+"' ";
            mapList = jdbcTemplate.queryForList(sql1);
            object.put("id",mapList.get(0).get("id"));//机构id
            object.put("name",mapList.get(0).get("name"));//机构名称
            object.put("mobile",mapList.get(0).get("mobile"));//机构联系方式
            object.put("photo",mapList.get(0).get("photo"));//机构图片
            object.put("address",mapList.get(0).get("address"));//机构地址
            object.put("intro",mapList.get(0).get("brief"));//机构简介
            String sql3 = "SELECT *  FROM base_doctor d,base_doctor_hospital dh\n" +
                    "WHERE d.doctor_level = 3 AND d.locked = 0 AND d.enabled = 1 AND d.del = 1 AND d.id = dh.doctor_code AND dh.del = 1 AND dh.org_code = '"+mapList.get(0).get("code")+"'" ;
            List<Map<String , Object >> bmapList = jdbcTemplate.queryForList(sql3);
            if (bmapList.size() > 0){
                object.put("allDoctor",bmapList);//教师
            }else {
                object.put("allDoctor","");//教师
            }
        }
        return object;
    }

+ 29 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java

@ -1,12 +1,15 @@
package com.yihu.jw.care.service.doctor;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.doorCoach.BaseDoorCoachOrderDao;
import com.yihu.jw.care.service.role.RoleService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.doctor.dao.DoctorSpecialDiseaseDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
@ -50,6 +53,10 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
    private BaseDoctorHospitalDao doctorHospitalDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private BaseDoorCoachOrderDao baseDoorCoachOrderDao;
    @Autowired
    private ImService imService;
    /**
     * 获取医生详情
@ -228,14 +235,14 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        List<Map<String,Object>> list = new ArrayList<>();
        //未入学
        String sql0 = "select Distinct sor.patient from base_course_sales_order_record sor INNER JOIN base_course bc on sor.course_id = bc.id " +
                " and bc.del=1 where bc.doctor ='"+doctor+"'  and sor.`status` =5 and not EXISTS (select DISTINCT rsr.patient " +
                " and bc.del=1 where bc.doctor ='"+doctor+"'  and sor.`status` =2 and not EXISTS (select DISTINCT rsr.patient " +
                " from base_recruit_students_record rsr INNER JOIN  base_org org on rsr.org_code = org.`code` and org.del=1 " +
                " INNER JOIN base_doctor_hospital dh on rsr.org_code = dh.org_code and dh.del =1  where rsr.patient=sor.patient and " +
                " dh.doctor_code='"+doctor+"'   and rsr.del<>0  and rsr.`status` = 3  )";
                " dh.doctor_code='"+doctor+"'   and rsr.del<>0  and rsr.`status` = 2  )";
        //已入学
        String sql1=" select DISTINCT rsr.patient from base_recruit_students_record rsr INNER JOIN  base_org org on rsr.org_code = org.`code` " +
                "and org.del=1 INNER JOIN base_doctor_hospital dh on rsr.org_code = dh.org_code and dh.del =1  where dh.doctor_code='"+doctor+"' " +
                "and rsr.del<>0  and rsr.`status` = 3 GROUP BY dh.doctor_code  ";
                "and rsr.del<>0  and rsr.`status` = 2 GROUP BY dh.doctor_code  ";
        String sql = "select p.id,p.name,p.photo,p.sex,p.idcard,p.openid,p.mobile,group_concat( pd.category_code) deviceType from ( {sqlReplace} )tmp Inner JOIN base_patient p on tmp.patient  = p.id " +
                " LEFT JOIN wlyy_patient_device pd on pd.`user`=p.id and pd.category_code BETWEEN 1 and 2 GROUP BY p.id ";
        String sqlcpunt = "select count(Distinct p.id) from ( {sqlReplace} )tmp Inner JOIN base_patient p on tmp.patient  = p.id " +
@ -275,14 +282,14 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        Map<String,Long> result = new HashMap<>();
        //未入学
        String sql0 = "select Distinct sor.patient from base_course_sales_order_record sor INNER JOIN base_course bc on sor.course_id = bc.id " +
                " and bc.del=1 where bc.doctor ='"+doctor+"'  and sor.`status` =5 and not EXISTS (select DISTINCT rsr.patient " +
                " and bc.del=1 where bc.doctor ='"+doctor+"'  and sor.`status` =2 and not EXISTS (select DISTINCT rsr.patient " +
                " from base_recruit_students_record rsr INNER JOIN  base_org org on rsr.org_code = org.`code` and org.del=1 " +
                " INNER JOIN base_doctor_hospital dh on rsr.org_code = dh.org_code and dh.del =1  where rsr.patient=sor.patient and " +
                " dh.doctor_code='"+doctor+"'   and rsr.del<>0  and rsr.`status` = 3  )";
                " dh.doctor_code='"+doctor+"'   and rsr.del<>0  and rsr.`status` = 2  )";
        //已入学
        String sql1=" select DISTINCT rsr.patient from base_recruit_students_record rsr INNER JOIN  base_org org on rsr.org_code = org.`code` " +
                "and org.del=1 INNER JOIN base_doctor_hospital dh on rsr.org_code = dh.org_code and dh.del =1  where dh.doctor_code='"+doctor+"' " +
                "and rsr.del<>0  and rsr.`status` = 3 GROUP BY dh.doctor_code  ";
                "and rsr.del<>0  and rsr.`status` = 2 GROUP BY dh.doctor_code  ";
        String sqlcpunt = "select count(Distinct p.id) from ( {sqlReplace} )tmp Inner JOIN base_patient p on tmp.patient  = p.id " +
                " LEFT JOIN wlyy_patient_device pd on pd.`user`=p.id and pd.category_code BETWEEN 1 and 2  ";
@ -293,4 +300,20 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        result.put("enrol",count);
        return result;
    }
    public JSONObject getNotificationCount(String doctor,Integer type){
        JSONObject object = new JSONObject();
        // 上门辅导工单 待完成
        List<BaseDoorCoachOrderDO> coachOrderDOList = baseDoorCoachOrderDao.getUnFinishOrderByDoctor(doctor);
        if (type > 0){
            return object;
        }else {
            Integer unreadMessageCount = imService.SessionsUnreadMessageCountByUserId(doctor);
            object.put("unreadMessageCount",unreadMessageCount);
            object.put("doorCoachOrder",coachOrderDOList.size());//上门辅导待完成数量
            return object;
        }
    }
}

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doorCoach/DoctorDoorCoachOrderService.java

@ -1115,6 +1115,18 @@ public class DoctorDoorCoachOrderService {
        doctorStatusDao.save(doctorSwitch);
    }
    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
    public boolean payOrder(String orderId,int payWay) {
        BaseDoorCoachOrderDO orderDO= wlyyDoorServiceOrderDao.findOne(orderId);
        if(null == orderDO){
            return false;
        }
        orderDO.setPayWay(payWay);
        orderDO.setPayTime(new Date());
        wlyyDoorServiceOrderDao.save(orderDO);
        return true;
    }
    /**
     * 门牌地址解析
     * @param url

+ 4 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -232,11 +232,11 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
    public List<Map<String,Object>> getTeacherOrgList(String patient){
        String sql = "select Distinct sor.org_code,org.name from base_course_sales_order_record sor " +
                "INNER JOIN base_org org on sor.org_code = org.code " +
                "where sor.patient ='"+patient+"' and sor.`status` =3 " +
                "where sor.patient ='"+patient+"' and sor.`status` =2 " +
                "UNION " +
                "select DISTINCT rsr.org_code,org.name from base_recruit_students_record rsr INNER JOIN  " +
                "base_org org on rsr.org_code = org.`code` and org.del=1 " +
                "where rsr.patient='"+patient+"' and rsr.del<>0 and rsr.`status` = 3";
                "where rsr.patient='"+patient+"' and rsr.del<>0 and rsr.`status` = 2";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
@ -258,12 +258,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        String sqlCondition = " from  " +
                "(select Distinct bc.doctor doctor,sor.org_code from base_course_sales_order_record sor INNER JOIN base_course bc on " +
                "sor.course_id = bc.id and bc.del=1 " +
                "where sor.patient ='"+patient+"'  and sor.`status` =3   GROUP BY bc.doctor  " +//购入课程
                "where sor.patient ='"+patient+"'  and sor.`status` =2   GROUP BY bc.doctor  " +//购入课程
                "UNION " +
                "select DISTINCT dh.doctor_code doctor,rsr.org_code from base_recruit_students_record rsr INNER JOIN  " +
                "base_org org on rsr.org_code = org.`code` and org.del=1 INNER JOIN base_doctor_hospital dh on rsr.org_code = dh.org_code " +
                "and dh.del =1  " +
                "where rsr.patient='"+patient+"' and rsr.del<>0  and rsr.`status` = 3 GROUP BY dh.doctor_code " +//入学机构
                "where rsr.patient='"+patient+"' and rsr.del<>0  and rsr.`status` = 2 GROUP BY dh.doctor_code " +//入学机构
                ")A INNER JOIN base_doctor_hospital dh on A.doctor =dh.doctor_code and a.org_code = dh.org_code " +
                "INNER JOIN base_doctor doc on dh.doctor_code = doc.id LEFT JOIN dict_hospital_dept dict on dh.dept_code = dict.`code` " +
                "and dh.org_code = dict.org_code and dh.del=1 where 1=1 ";