Ver código fonte

我的家人代码提交

liuwenbin 6 anos atrás
pai
commit
4d57cf5177

+ 5 - 6
business/base-service/src/main/java/com/yihu/jw/message/dao/MessageDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.message.dao;
import com.yihu.jw.entity.base.message.BaseMessageDO;
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;
@ -13,14 +14,12 @@ import java.util.List;
 */
public interface MessageDao extends PagingAndSortingRepository<BaseMessageDO, String>, JpaSpecificationExecutor<BaseMessageDO> {
    @Query("select m from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 and m.type=2 order by m.readState desc")
    List<BaseMessageDO> messageList(Integer platform, String code, String saasId,String msgTypeCode);
    @Query("select m from BaseMessageDO m where m.platform=?1 and m.receiver=?2  and m.del=1 and m.msgTypeCode like ?3  order by m.readState desc")
    List<BaseMessageDO> messageList(Integer platform, String code,String msgTypeCode);
    @Query("select count(m.id) from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 and m.type=2 and m.readState=1")
    Integer countMessage(Integer platform, String code, String saasId,String msgTypeCode);
    @Query("select count(m.id) from BaseMessageDO m where m.platform=?1 and m.receiver=?2  and m.del=1 and m.msgTypeCode like ?3  and m.readState=1")
    Integer countMessage(Integer platform, String code,String msgTypeCode);
    BaseMessageDO findById(Integer id);
    @Query("select m from BaseMessageDO m where m.receiver=?1 and m.type=1 and m.failureTime>=?2 and m.msgTypeCode=?3")
    List<BaseMessageDO> applyMessageList(String patient,Date failureTime,String msgTypeCode);
}

+ 16 - 16
business/base-service/src/main/java/com/yihu/jw/message/service/MessageService.java

@ -2,6 +2,7 @@ package com.yihu.jw.message.service;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.jw.message.dao.MessageDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,12 +31,11 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
     * 消息列表
     * @param platform
     * @param code
     * @param saasId
     * @param page
     * @param pageSize
     * @return
     */
    public List<Map<String,Object>> messageList(Integer platform,String code,String saasId,Integer page,Integer pageSize){
    public List<Map<String,Object>> messageList(Integer platform,String code,Integer page,Integer pageSize){
        if(page==null){
            page = 0;
@ -50,10 +50,10 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "createTime");
        // 分页信息
        List<BaseMessageDO> applyList = messageDao.messageList(platform,code,saasId,"00%");
        Integer applyReadCount = messageDao.countMessage(platform,code,saasId,"00%");
        List<BaseMessageDO> systemList = messageDao.messageList(platform,code,saasId,"01%");
        Integer systemReadCount = messageDao.countMessage(platform,code,saasId,"01%");
        List<BaseMessageDO> applyList = messageDao.messageList(platform,code,"00%");
        Integer applyReadCount = messageDao.countMessage(platform,code,"00%");
        List<BaseMessageDO> systemList = messageDao.messageList(platform,code,"01%");
        Integer systemReadCount = messageDao.countMessage(platform,code,"01%");
        List<Map<String,Object>> resultList = new LinkedList<>();
        Map<String,Object> applyMap = new HashedMap();
@ -73,7 +73,7 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
        }
        //1、未读消息(置顶)
        List<Map<String, Object>> unReadResult = messageListSql(platform,code,saasId,0,page,unReadPageSize);
        List<Map<String, Object>> unReadResult = messageListSql(platform,code,0,page,unReadPageSize);
        for(Map<String, Object> one:unReadResult){
            Map<String,Object> unReadMap = new HashedMap();
            unReadMap.put("name",one.get("sender_name"));
@ -82,9 +82,9 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
            resultList.add(unReadMap);
        }
        if(unReadResult.size()<unReadPageSize){
            page = messageCountSql(platform,code,saasId,1,page,pageSize);
            page = messageCountSql(platform,code,1,page,pageSize);
            //2、已读消息
            List<Map<String, Object>> readResult = messageListSql(platform,code,saasId,1,page,unReadPageSize);
            List<Map<String, Object>> readResult = messageListSql(platform,code,1,page,unReadPageSize);
            for(Map<String, Object> one:readResult){
                Map<String,Object> readMap = new HashedMap();
                readMap.put("name",one.get("sender_name"));
@ -104,14 +104,17 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
    }
    public List<BaseMessageDO> applyMessageList(String patient, Date failureTime, String msgTypeCode){
        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
    public List<Map<String, Object>> applyMessageList(String patient, Date failureTime, String msgTypeCode){
        String failureTimeStr = DateUtil.dateToStr(failureTime,"yyyy-MM-dd HH:mm:ss");
        String sql = "select m.* from base_message m join patient_apply_for_log l on m.relation_data=l.id where m.failure_Time>='"+failureTimeStr+"' and m.msgTypeCode='"+msgTypeCode+"'";
        return jdbcTemplate.queryForList(sql);
//        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
    }
    private List<Map<String, Object>> messageListSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer pageSize){
    private List<Map<String, Object>> messageListSql(Integer platform,String code,Integer readState,Integer page,Integer pageSize){
        String sql =" SELECT " +
                " a.*, b.msg_content " +
                " FROM " +
@ -126,7 +129,6 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +
@ -139,20 +141,18 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
                " AND a.create_time = b.create_time " +
                " AND b.platform = '"+platform+"' " +
                " AND b.receiver = '"+code+"' " +
                " AND b.saas_id = '"+saasId+"' " +
                " AND b.del = 1 " +
                " AND m.read_state = "+readState;
        return jdbcTemplate.queryForList(sql);
    }
    private Integer messageCountSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer originalPageSize){
    private Integer messageCountSql(Integer platform,String code,Integer readState,Integer page,Integer originalPageSize){
        String sql ="  SELECT count(*) as num " +
                "  FROM " +
                "   base_message m " +
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +

+ 0 - 14
common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java

@ -18,10 +18,6 @@ import java.util.Date;
@Table(name = "base_message")
public class BaseMessageDO extends IntegerIdentityEntity {
    /**
     * saas配置id,消息里不可为空
     */
    private String saasId;
    /**
     * 消息接收人(微信平台为患者标识,医生APP平台为医生标识)
@ -127,16 +123,6 @@ public class BaseMessageDO extends IntegerIdentityEntity {
     */
    private Date failureTime;
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "receiver")
    public String getReceiver() {
        return receiver;

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/patient/PatientRequestMapping.java

@ -55,6 +55,7 @@ public class PatientRequestMapping {
        public static final String confirmApply  = "/confirmApply";
        public static final String applyMessageList  = "/applyMessageList";
        public static final String cancelApply  = "/cancelApply";
        public static final String myFamilyBindList  = "/myFamilyBindList";
    }

+ 14 - 3
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/myFamily/MyFamilyEndpoint.java

@ -67,14 +67,12 @@ public class MyFamilyEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "patient",required = false) String patient,
            @ApiParam(name = "wechatId", value = "wechatId", required = true)
            @RequestParam(value = "wechatId",required = true) String wechatId,
            @ApiParam(name = "saasId", value = "saasId", required = true)
            @RequestParam(value = "saasId",required = true) String saasId,
            @ApiParam(name = "familyMobile", value = "家人的手机号码", required = true)
            @RequestParam(value = "familyMobile",required = true) String familyMobile,
            @ApiParam(name = "familyBindRole", value = "家庭关系关系 1配偶 2父亲 3母亲 4公公 5婆婆 6岳父 7岳母 8子女", required = true)
            @RequestParam(value = "familyBindRole",required = true) Integer familyBindRole,HttpServletRequest request) throws Exception {
        try{
            PatientApplyLog patientApplyLog = myFamilyService.bindingMyFamily(request,wechatId, saasId, getUID(patient), familyMobile, 1,familyBindRole);
            PatientApplyLog patientApplyLog = myFamilyService.bindingMyFamily(request,wechatId, getUID(patient), familyMobile, 1,familyBindRole);
            return success(patientApplyLog);
        }catch (Exception e){
            e.printStackTrace();
@ -164,5 +162,18 @@ public class MyFamilyEndpoint extends EnvelopRestEndpoint {
            return failed(e.getMessage());
        }
    }
    @GetMapping(value = PatientRequestMapping.MyFamily.myFamilyBindList)
    @ApiOperation(value = "我绑定的记录")
    public Envelop myFamilyBindList(
            @ApiParam(name = "patient", value = "居民code", required = false)
            @RequestParam(value = "patient",required = false) String patient) throws Exception {
        try{
            List<Map<String,Object>> resultList = myFamilyService.myFamilyBindList(getUID(patient));
            return success(resultList);
        }catch (Exception e){
            e.printStackTrace();
            return failed(e.getMessage());
        }
    }
}

+ 35 - 20
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/MyFamilyService.java

@ -93,14 +93,13 @@ public class MyFamilyService {
     * 一键绑定
     * @param request
     * @param wechatId
     * @param saasId
     * @param patient
     * @param familyMobile
     * @param platform
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
    public PatientApplyLog bindingMyFamily(HttpServletRequest request,String wechatId, String saasId, String patient, String familyMobile, Integer platform,Integer familyBindRole) throws Exception{
    public PatientApplyLog bindingMyFamily(HttpServletRequest request,String wechatId, String patient, String familyMobile, Integer platform,Integer familyBindRole) throws Exception{
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);
        //1、检验手机号码是否有存在账号,
@ -113,7 +112,6 @@ public class MyFamilyService {
        PatientApplyLog patientApplyLog = createFamilyQrCode(request,familyPatient,wechatId,patient,familyBindRole);
        //4、发送绑定家人的系统消息
        BaseMessageDO messageDO = new BaseMessageDO();
        messageDO.setSaasId(saasId);
        messageDO.setReceiver(familyPatient.getId());
        messageDO.setReceiverName(familyPatient.getName());
        messageDO.setSender(patient);
@ -139,16 +137,15 @@ public class MyFamilyService {
     * 签约绑定家人
     * @param request
     * @param wechatId
     * @param saasId
     * @param patient
     * @param familyMobile
     * @param platform
     * @param familyBindRole 1"配偶",2"父亲",3"母亲",4"公公",5"婆婆",6"岳父",7"岳母",8"女婿",9"儿媳",10"子女"
     * @param isAdult 0未成年人 1成年人
     */
    public PatientApplyLog signBindFamily(HttpServletRequest request,String wechatId, String saasId, String patient, String familyMobile, Integer platform,Integer familyBindRole,Integer isAdult) throws Exception{
    public PatientApplyLog signBindFamily(HttpServletRequest request,String wechatId, String patient, String familyMobile, Integer platform,Integer familyBindRole,Integer isAdult) throws Exception{
        if(isAdult==1){
            PatientApplyLog p = bindingMyFamily(request,wechatId, saasId,patient, familyMobile, platform,familyBindRole);
            PatientApplyLog p = bindingMyFamily(request,wechatId,patient, familyMobile, platform,familyBindRole);
            return p;
        }else if(isAdult==0){
            //注册一个没有手机号码的用户信息
@ -309,7 +306,7 @@ public class MyFamilyService {
        return resultList;
    }
    public void myFamilyBindList(String patient) throws Exception{
    public List<Map<String,Object>> myFamilyBindList(String patient) throws Exception{
        List<Map<String,Object>> resultList = new LinkedList<>();
        //已绑定的
        List<BasePatientFamilyMemberDO> bindList = patientFamilyMemberService.getByPatientAndFamilyMember(patient);
@ -368,7 +365,18 @@ public class MyFamilyService {
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")+1));//角色名称
            map.put("mobile",familyMember.getMobile());//手机号码
            Integer status = null;
            if("1".equals(one.get("status")+"")||"2".equals(one.get("status")+"")){
                status = 5;
            }else if("4".equals(one.get("status")+"")||"5".equals(one.get("status")+"")){
                status = Integer.valueOf(one.get("status")+"");
            }
            map.put("status",one.get("status"));//状态
            map.put("statusName",getStatusName(status));//状态名称;
            map.put("type",3);
            resultList.add(map);
        }
        return resultList;
    }
    /**
@ -377,13 +385,13 @@ public class MyFamilyService {
     */
    @Transactional(rollbackFor = Exception.class)
    public List<Map<String,Object>> applyMessageList(String patient) throws Exception{
        List<BaseMessageDO> msgList = messageService.applyMessageList(patient, new Date(), "010801");
        List<Map<String, Object>> msgList = messageService.applyMessageList(patient, new Date(), "010801");
        List<Map<String,Object>> result = new ArrayList<>();
        PatientApplyLog patientApplyLog = null;
        for(BaseMessageDO one:msgList){
        for(Map<String, Object> one:msgList){
            Map<String,Object> map = new HashedMap();
            String o = one.getRelationData();
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(o));
            String relationData = one.get("relation_data")+"";
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(relationData));
            Integer bindRole = patientApplyLog.getFamilyBindRole();
            String createUser = patientApplyLog.getCreateUser();//申请人code
@ -391,14 +399,15 @@ public class MyFamilyService {
            BasePatientDO createPatient = patientService.findByIdAndDel(createUser);//绑定人
            Integer converRole = familyRelationTrans(bindRole,createPatient.getSex());//转换后的角色
            map.put("patientApplyLogId",one.getId());
            map.put("patientApplyLogId",relationData);
            map.put("patientPhoto",patientDO.getPhoto());
            map.put("applyPatientPhoto",createPatient.getPhoto());
            map.put("explain","您的"+role.get(converRole-1)+createPatient.getName()+"邀请您绑定家人账号");
            result.add(map);
            one.setReadonly(1);
            one.setReadTime(new Date());
            messageService.save(one);
            BaseMessageDO msg = messageService.findById(Integer.valueOf(one.get("id")+""));
            msg.setReadonly(1);
            msg.setReadTime(new Date());
            messageService.save(msg);
        }
        return result;
    }
@ -468,10 +477,16 @@ public class MyFamilyService {
        return relationTrans;
    }
//    public String getStatusName(Integer status){
//        switch (){
//            case
//        }
//    }
    public String getStatusName(Integer status){
        String statusName ="";
        switch (status){
            case 1:statusName="已邀请";break;
            case 2:statusName="已邀请";break;
            case 3:statusName="已通过";break;
            case 4:statusName="已拒绝";break;
            case 5:statusName="已取消";break;
        }
        return statusName;
    }
}