فهرست منبع

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

wangzhinan 4 سال پیش
والد
کامیت
a30e6693cf
13فایلهای تغییر یافته به همراه299 افزوده شده و 41 حذف شده
  1. 1 0
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseBannerDao.java
  2. 2 1
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseBannerDoctorDao.java
  3. 11 2
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseUserMessageDao.java
  4. 1 1
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseUserMsgContentDao.java
  5. 27 4
      business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseBannerDoctorService.java
  6. 98 24
      business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java
  7. 57 0
      business/base-service/src/main/java/com/yihu/jw/hospital/message/service/UserMsgContentService.java
  8. 10 2
      business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java
  9. 13 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/BaseBannerDoctorDO.java
  10. 34 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/BaseUserMessageDO.java
  11. 3 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  12. 23 2
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/message/BannerDoctorController.java
  13. 19 5
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/message/BaseUserMsgController.java

+ 1 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseBannerDao.java

@ -30,4 +30,5 @@ public interface BaseBannerDao extends PagingAndSortingRepository<BaseBannerDO,
    BaseBannerDO upBanner(Integer sort);
    @Query(value = "select * from base_banner where id = ( select id from base_banner where sort < ?1 order by sort desc limit 0,1)",nativeQuery = true)
    BaseBannerDO downBanner(Integer sort);
}

+ 2 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseBannerDoctorDao.java

@ -18,5 +18,6 @@ public interface BaseBannerDoctorDao extends PagingAndSortingRepository<BaseBann
    //获取医生获得锦旗总量的接口
    @Query( value = "SELECT COUNT(1) AS \"total\"  FROM base_banner_doctor a LEFT JOIN base_banner b on a.banner_id= b.id where a.doctor = ?1",nativeQuery = true)
    Integer getTotalBannerCount(String doctor);
    @Query( value = "SELECT * from base_banner_doctor t where t.doctor = ?1 and t.patient_id =?2 and t.relation_code =?3" ,nativeQuery = true)
    List<BaseBannerDoctorDO> getBanners(String doctor,String patientId,String relationCode);
}

+ 11 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseUserMessageDao.java

@ -14,11 +14,20 @@ import java.util.List;
 * Created at 2020.07.08
 */
public interface BaseUserMessageDao extends PagingAndSortingRepository<BaseUserMessageDO, String>, JpaSpecificationExecutor<BaseUserMessageDO> {
    @Query(value = "select * from base_user_message t where  t.status = 1 and t.id = ?1 order by t.update_time asc limit 0,1",nativeQuery = true)
    @Query(value = "select * from base_user_message t where  t.status = 1 and t.id = ?1 order by t.update_time desc limit 0,1",nativeQuery = true)
    List<BaseUserMessageDO> getMessageByCode(String Id);
    @Query(value = "select * from base_user_message t where t.relation_code = ?1 order by t.update_time asc ",nativeQuery = true)
    @Query(value = "select * from base_user_message t where t.relation_code = ?1 order by t.update_time desc ",nativeQuery = true)
    List<BaseUserMessageDO> getAllMessageByCode(String relationCode);
    @Query(value = "select * from base_user_message t where t.receiver = ?1 order by t.update_time desc limit ?2,?3 ",nativeQuery = true)
    List<BaseUserMessageDO> getAllMessageByDoctor(String doctor,Integer page,Integer pageSize);
    @Query(value = "select count(1) from base_user_message t where t.receiver = ?1 order by t.update_time desc ",nativeQuery = true)
    Integer getAllMessageTotalCount(String doctor);
    @Query(value = "select count(1) from base_user_message t where t.receiver = ?1 and t.is_read = 0 order by t.update_time desc ",nativeQuery = true)
    Integer getMessageNotReadCount(String doctor);
    @Query(value = "select * from base_user_message t where t.receiver = ?1 and t.is_read = 0 order by t.update_time desc limit ?2,?3",nativeQuery = true)
    List<BaseUserMessageDO> getMessageNotRead(String doctor,Integer page ,Integer pageSize);
}

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/BaseUserMsgContentDao.java

@ -9,6 +9,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseUserMsgContentDao extends PagingAndSortingRepository<BaseUserMsgContentDO, String>, JpaSpecificationExecutor<BaseUserMsgContentDO> {
    @Query(value = "select * from base_user_msg_content t where t.base_user_msg_id = ?1 order by t.update_time asc ",nativeQuery = true)
    @Query(value = "select * from base_user_msg_content t where t.base_user_msg_id = ?1 order by t.update_time desc ",nativeQuery = true)
    List<BaseUserMsgContentDO> getContentListByID(String base_user_msg_id);
}

+ 27 - 4
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseBannerDoctorService.java

@ -40,10 +40,11 @@ public class BaseBannerDoctorService extends BaseJpaService<BaseBannerDoctorDO,
    //批量新增锦旗
    @Transactional
    public List<BaseBannerDoctorDO> bannerGive(String patientId, List<String> list,String content,
                           String doctor,String doctorName){
                           String doctor,String doctorName,Integer type){
        String patientName = null;
        BasePatientDO basePatientDO=patientDao.findById(patientId);
        List<BaseBannerDoctorDO> bannerList = new ArrayList<>();
        String relationCode= UUID.randomUUID().toString();
        if(null!=basePatientDO){
            patientName = basePatientDO.getName();
        }
@ -58,20 +59,22 @@ public class BaseBannerDoctorService extends BaseJpaService<BaseBannerDoctorDO,
                baseBannerDoctorDO.setPatientName(patientName);
                baseBannerDoctorDO.setRelationType(1);
                baseBannerDoctorDO.setRelationName("赠送锦旗");
                baseBannerDoctorDO.setRelationCode("system");
                baseBannerDoctorDO.setRelationCode(relationCode);
                bannerList.add(baseBannerDoctorDO);
                baseBannerDoctorDao.save(baseBannerDoctorDO);
            }
            BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
            baseUserMessageDO.setReceiver(doctor);
            baseUserMessageDO.setReceiverName(doctorName);
            baseUserMessageDO.setRelationCode(UUID.randomUUID().toString());
            baseUserMessageDO.setRelationCode(relationCode);
            baseUserMessageDO.setSender(patientId);
            baseUserMessageDO.setSenderName(patientName);
            baseUserMessageDO.setRelationName("赠送锦旗");
            baseUserMessageDO.setRelationType(3);
            baseUserMessageDO.setRelationType(2);
            baseUserMessageDO.setStatus(1);
            baseUserMessageDO.setDel(1);
            baseUserMessageDO.setType(type);
            baseUserMessageDO.setIsRead(0);
            baseUserMessageDao.save(baseUserMessageDO);
        }
        return bannerList;
@ -92,4 +95,24 @@ public class BaseBannerDoctorService extends BaseJpaService<BaseBannerDoctorDO,
        return jsonObject;
    }
    //未读消息改为已读的接口
    public void isRead(String messageId){
        BaseUserMessageDO baseUserMessageDO = baseUserMessageDao.findOne(messageId);
        if (null!=baseUserMessageDO){
            baseUserMessageDO.setIsRead(1);
            baseUserMessageDao.save(baseUserMessageDO);
        }
    }
    //获取未读消息
    public JSONObject getMessageNotRead(String doctor,Integer page,Integer pageSize){
        Integer pagecount = (page-1)*pageSize;
        int count = baseUserMessageDao.getMessageNotReadCount(doctor);
        List<BaseUserMessageDO> list = baseUserMessageDao.getMessageNotRead(doctor,pagecount,pageSize);
        JSONObject jsonObject = new JSONObject();
        if (list.size()>0){
            jsonObject.put("messageNotRead",list);
        }
        jsonObject.put("totalCount",count);
        return jsonObject;
    }
}

+ 98 - 24
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java

@ -7,10 +7,13 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.score.BaseEvaluateDO;
import com.yihu.jw.entity.base.score.BaseEvaluateScoreDO;
import com.yihu.jw.entity.hospital.message.BaseBannerDO;
import com.yihu.jw.entity.hospital.message.BaseBannerDoctorDO;
import com.yihu.jw.entity.hospital.message.BaseUserMessageDO;
import com.yihu.jw.entity.hospital.message.BaseUserMsgContentDO;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateDao;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateScoreDao;
import com.yihu.jw.hospital.message.dao.BaseBannerDao;
import com.yihu.jw.hospital.message.dao.BaseBannerDoctorDao;
import com.yihu.jw.hospital.message.dao.BaseUserMessageDao;
import com.yihu.jw.hospital.message.dao.BaseUserMsgContentDao;
import com.yihu.jw.patient.dao.BasePatientDao;
@ -25,6 +28,7 @@ import com.yihu.mysql.query.URLQueryParser;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.hibernate.dialect.Ingres9Dialect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.jpa.provider.HibernateUtils;
@ -33,6 +37,7 @@ import org.springframework.stereotype.Service;
import javax.swing.plaf.PanelUI;
import javax.transaction.Transactional;
import java.lang.annotation.ElementType;
import java.util.*;
@Service
@ -54,6 +59,10 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
    private BasePatientDao basePatientDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private BaseBannerDoctorDao baseBannerDoctorDao;
    @Autowired
    private BaseBannerDao bannerDao;
    @Value("${wechat.id}")
    private String wxId;
@ -63,7 +72,7 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
    private boolean flag;
    //患者给医生自身留言接口
    public void leaveMessage(String content, String reciverId, String reciverName, String senderId) {
    public void leaveMessage(String content, String reciverId, String reciverName, String senderId, Integer type) {
        BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
        BasePatientDO patientDO= basePatientDao.findById(senderId);
        String senderName=null;
@ -81,27 +90,38 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
        baseUserMessageDO.setRelationType(1);
        baseUserMessageDO.setStatus(1);
        baseUserMessageDO.setDel(1);
        baseUserMessageDO.setType(type);
        baseUserMessageDO.setIsRead(0);
        baseUserMessageDao.save(baseUserMessageDO);
    }
    //回复留言接口
    @Transactional
    public void responseMessage(String contentId,String content, String reciverId, String reciverName, String senderId,Integer isDoctor) {
    public void responseMessage(String contentId,String content, String reciverId, String senderId,Integer isDoctor) {
        BaseUserMessageDO baseUserMessageDOS = baseUserMessageDao.findOne(contentId);
        if(null!=baseUserMessageDOS){
            baseUserMessageDOS.setStatus(2);
            baseUserMessageDOS.setIsRead(1);
        }
        baseUserMessageDao.save(baseUserMessageDOS);
        BaseUserMsgContentDO baseUserMsgContentDO =new BaseUserMsgContentDO();
        String senderName = null;
        if(1==isDoctor){
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(senderId);
            BasePatientDO reciver= basePatientDao.findById(reciverId);
            if (null!=reciver){
                baseUserMsgContentDO.setReceiverName(reciver.getName());
            }
            if(null!=baseDoctorDO){
                senderName = baseDoctorDO.getName();
            }
            baseUserMsgContentDO.setIsDoctor(1);
        }else {
            BasePatientDO patientDO= basePatientDao.findById(senderId);
            BaseDoctorDO reciver = baseDoctorDao.findById(reciverId);
            if(null!=reciver){
                baseUserMsgContentDO.setReceiverName(reciver.getName());
            }
            if(null!=patientDO){
                senderName = patientDO.getName();
            }
@ -112,7 +132,6 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
        baseUserMsgContentDO.setSender(senderId);
        baseUserMsgContentDO.setSenderName(senderName);
        baseUserMsgContentDO.setReceiver(reciverId);
        baseUserMsgContentDO.setReceiverName(reciverName);
        baseUserMsgContentDO.setDel(1);
        baseUserMsgContentDO.setStatus(1);
        baseUserMsgContentDao.save(baseUserMsgContentDO);
@ -122,7 +141,7 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
    public Envelop getMessage(String doctor, String showAll, String showAllType, String beginTime, String endTime, Integer page, Integer pageSize) {
        StringBuffer sql = new StringBuffer();
        Map<String,Object> params = new HashedMap();
        sql.append("select t.id as \"id\" ,t.content as \"content\"," +
        sql.append("select t.id as \"id\" ,t.content as \"content\",t.type as \"type\"," +
                "t.sender as \"sender\",t.sender_name as \"sender_name\",t.receiver as \"receiver\"," +
                "t.receiver_name as \"receiver_name\",t.relation_type as \"relation_type\"," +
                "t.relation_code as \"relation_code\",t.relation_name as \"relation_name\",t.status as \"status\",t.update_time as \"update_time\"");
@ -148,19 +167,38 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
            sql.append(" and t.relation_type = " + showAllType);
        }
        if (StringUtils.isNotEmpty(beginTime)) {
            sql.append(" and t.update_time > '" + beginTime+"'");//DateUtil.stringToDate(beginTime,"yyyy-MM-dd HH:mm:ss")
            //sql.append(" and t.update_time > '" + beginTime+"'");//DateUtil.stringToDate(beginTime,"yyyy-MM-dd HH:mm:ss")
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql.append( " and t.create_time >= str_to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }else {
                    sql.append(  " and t.create_time >= to_date('" + beginTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }
            } else {
                sql.append( " AND t.create_time >='" + beginTime + " 00:00:00'");
            }
        }
        if (StringUtils.isNotEmpty(endTime)) {
            sql.append(" and t.update_time < '" + endTime+"'");//DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss")
            //sql.append(" and t.update_time < '" + endTime+"'");//DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss")
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql.append( " and t.update_time <= str_to_date('" + endTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }else {
                    sql.append(  " and t.update_time <= to_date('" + endTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')");
                }
            } else {
                sql.append( " AND t.update_time <='" + endTime + " 00:00:00'");
            }
        }
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql.toString()+") t";
        sql.append(" GROUP BY t.relation_code ORDER BY t.update_time Desc");
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql.toString()+") q";
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlcount,params);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        sql.append(" GROUP BY t.relation_code ORDER BY t.update_time Desc");
        System.out.println(sql.toString());
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql.toString(),params,page,pageSize);
        List<Map<String, Object>> returnList = new ArrayList<>();
@ -168,24 +206,46 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
            Map<String,Object> returnMap = new HashMap<>();
            String relationCode = map.get("relation_code").toString();
            String id =  map.get("id").toString();
            BaseUserMessageDO baseUserMsgContentDO =new BaseUserMessageDO();
            baseUserMsgContentDO.setId(id);
            baseUserMsgContentDO.setReceiver(map.get("receiver").toString());
            baseUserMsgContentDO.setReceiverName(map.get("receiver_name").toString());
            baseUserMsgContentDO.setSender(map.get("sender").toString());
            baseUserMsgContentDO.setContent(map.get("content")==null?"":map.get("content").toString());
            baseUserMsgContentDO.setRelationCode(map.get("relation_code").toString());
            baseUserMsgContentDO.setRelationType(Integer.valueOf(map.get("relation_type").toString()));
            baseUserMsgContentDO.setRelationName(map.get("relation_name").toString());
            String patientID = map.get("sender").toString();
            BaseUserMessageDO baseUserMsgDO =new BaseUserMessageDO();
            baseUserMsgDO.setId(id);
            if (map.get("type")!=null){
                baseUserMsgDO.setType(Integer.valueOf(map.get("type").toString()));
            }
            baseUserMsgDO.setReceiver(map.get("receiver").toString());
            baseUserMsgDO.setReceiverName(map.get("receiver_name").toString());
            baseUserMsgDO.setSender(map.get("sender").toString());
            baseUserMsgDO.setContent(map.get("content")==null?"":map.get("content").toString());
            baseUserMsgDO.setRelationCode(map.get("relation_code").toString());
            baseUserMsgDO.setRelationType(Integer.valueOf(map.get("relation_type").toString()));
            baseUserMsgDO.setRelationName(map.get("relation_name").toString());
            baseUserMsgDO.setStatus(Integer.valueOf(map.get("status").toString()));
            BasePatientDO patientDO = basePatientDao.findById(map.get("sender").toString());
            if(baseUserMsgDO.getRelationType()==2){
                List<BaseBannerDoctorDO> ba =  baseBannerDoctorDao.getBanners(baseUserMsgDO.getReceiver(),baseUserMsgDO.getSender(),baseUserMsgDO.getRelationCode());
                for (BaseBannerDoctorDO bannerDoctorDO:ba){
                    BaseBannerDO bannerDO = bannerDao.findOne(bannerDoctorDO.getBannerId());
                    bannerDoctorDO.setBaseBannerDO(bannerDO);
                }
                baseUserMsgDO.setBannerList(ba);
            }
            String icon = null;
            if (null!=patientDO){
                icon = patientDO.getPhoto();
            }
            List<BaseUserMsgContentDO> contentlist=baseUserMsgContentDao.getContentListByID(id);
            baseUserMsgContentDO.setMsgList(contentlist);
            if(contentlist.size()>0){
                for (BaseUserMsgContentDO dealList :contentlist){
                    if (null!=baseUserMsgDO.getType()&&baseUserMsgDO.getType()==2){
                        dealList.setSenderName(patientID==dealList.getSender()?dealList.getSenderName().substring(0,1)+"**":dealList.getSenderName());
                        dealList.setReceiverName(patientID==dealList.getReceiver()?dealList.getReceiverName().substring(0,1)+"**":dealList.getReceiverName());
                    }
                }
            }
            baseUserMsgDO.setMsgList(contentlist);
            String updateTime = map.get("update_time").toString();
            baseUserMsgContentDO.setUpdateTime(DateUtil.strToDateLong(updateTime));
            baseUserMsgDO.setUpdateTime(DateUtil.strToDateLong(updateTime));
            //map.put("update_time",DateUtil.dateToStrLong(DateUtil.strToDateLong(updateTime)));
            List<BaseEvaluateDO> baseEvaluateDO=baseEvaluateDao.findByRelationCode(relationCode);
@ -199,12 +259,14 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
                }
            }
            if(scoreList!=null){
                baseUserMsgContentDO.setSenderName(scoreList.getType()==1?map.get("sender_name").toString():map.get("sender_name").toString().substring(0,1)+"**");
                baseUserMsgDO.setSenderName(scoreList.getType()==1?map.get("sender_name").toString():map.get("sender_name").toString().substring(0,1)+"**");
            }else {
                baseUserMsgContentDO.setSenderName(map.get("sender_name").toString());
                baseUserMsgDO.setSenderName(map.get("sender_name").toString());
            }if(null!=baseUserMsgDO.getType()&&baseUserMsgDO.getType()==2){
                baseUserMsgDO.setSenderName(map.get("sender_name").toString().substring(0,1)+"**");
            }
            returnMap.put("contentList",baseUserMsgContentDO);
            returnMap.put("contentList",baseUserMsgDO);
            returnMap.put("patientIcon",icon);
            returnList.add(returnMap);
        }
@ -247,9 +309,16 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
    //获取单条评论详细信息
    public List<Map<String,Object>> getSingle(String id){
        BaseUserMessageDO baseUserMessageDO=baseUserMessageDao.findOne(id);
        String patientId= baseUserMessageDO.getSender();
        Integer type = baseUserMessageDO.getType();
        List<BaseUserMsgContentDO> contentlist=baseUserMsgContentDao.getContentListByID(id);
        if (null!=type&&type==2){
            for (BaseUserMsgContentDO baseUserMsgContentDO:contentlist){
                baseUserMsgContentDO.setSenderName(baseUserMsgContentDO.getSender()==patientId?baseUserMsgContentDO.getSenderName().substring(0,1)+"**":baseUserMsgContentDO.getSenderName());
                baseUserMsgContentDO.setReceiverName(baseUserMsgContentDO.getReceiver()==patientId?baseUserMsgContentDO.getReceiverName().substring(0,1)+"**":baseUserMsgContentDO.getReceiverName());
            }
        }
        String relationCode= baseUserMessageDO.getRelationCode();
        List<Map<String,Object>> returnResult = new ArrayList<>();
        //List<Map<String,Object>> scoreList = this.getListByRelationCode(relationCode);
        Map<String,Object> map = new HashMap<>();
@ -265,7 +334,11 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
        }
        map.put("scoreList",scoreList);
        map.put("sender",baseUserMessageDO.getSender());
        map.put("senderName",baseUserMessageDO.getSenderName());
        if (null!=type&&type==2){
            map.put("senderName",baseUserMessageDO.getSenderName().substring(0,1)+"**");
        }else {
            map.put("senderName",baseUserMessageDO.getSenderName());
        }
        map.put("content",baseUserMessageDO.getContent());
        map.put("receiver",baseUserMessageDO.getReceiver());
        map.put("receiverName",baseUserMessageDO.getReceiverName());
@ -354,4 +427,5 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
        }
        return sql.toString();
    }
}

+ 57 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/UserMsgContentService.java

@ -1,5 +1,6 @@
package com.yihu.jw.hospital.message.service;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.hospital.message.BaseUserMessageDO;
import com.yihu.jw.entity.hospital.message.BaseUserMsgContentDO;
import com.yihu.jw.hospital.message.dao.BaseUserMessageDao;
@ -29,6 +30,8 @@ public class UserMsgContentService extends BaseJpaService<BaseUserMsgContentDO,
    private MsgContentDao msgContentDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseBannerDoctorService bannerDoctorService;
    //获取评论
    public List getAllMessage(String relationCode){
        List<BaseUserMessageDO> list = msgContentDao.findByRelationCode(relationCode);
@ -121,5 +124,59 @@ public class UserMsgContentService extends BaseJpaService<BaseUserMsgContentDO,
        }
        return sqlForExpert.toString();
    }
    //医生主页展示的医生信息
    public JSONObject showContentByDoctor(String doctor,Integer page,Integer pageSize){
        //锦旗总数和各个锦旗数量
        JSONObject jsonObject = bannerDoctorService.getDoctorBanners(doctor);
        //留言总数
        int messageTotal = userMessageDao.getAllMessageTotalCount(doctor);
        //查询医生各项评价平均分
        String sqlscore = "SELECT " +
                "AVG(a.score) AS \"score\"," +
                "a.score_type AS \"score_type\" " +
                "FROM base_evaluate a,base_evaluate_score b " +
                "WHERE " +
                "a.relation_code=b.id " +
                "AND b.doctor='" + doctor + "' " +
                "GROUP BY a.score_type ORDER BY  a.score_type ASC ";
        List<Map<String, Object>> listscore = jdbcTemplate.queryForList(sqlscore);
        Double doctorScore = new Double("0");
        if (listscore != null && listscore.size() > 0) {
            for (Map<String, Object> _listscore : listscore) {
                doctorScore += Double.parseDouble(_listscore.get("score").toString());
            }
        }
        doctorScore = doctorScore / 3;
        //总评
        jsonObject.put("doctorScore", doctorScore);
        if (listscore != null && listscore.size() > 0) {
            //各项平均分
            jsonObject.put("scoreDoctor", listscore);
        } else {
            jsonObject.put("scoreDoctor", null);
        }
        Integer curPage = (page-1)*pageSize;
        List<BaseUserMessageDO> messageList= userMessageDao.getAllMessageByDoctor(doctor,curPage,pageSize);
        if (null!=messageList){
            for (BaseUserMessageDO baseUserMessageDO:messageList){
                String id = baseUserMessageDO.getId();
                Integer type = baseUserMessageDO.getType();
                List<BaseUserMsgContentDO> contentlist=baseUserMsgContentDao.getContentListByID(id);
                if (type!=null&&2==type){
                    baseUserMessageDO.setSenderName(baseUserMessageDO.getSenderName().substring(0,1)+"**");
                    String patientId = baseUserMessageDO.getSender();
                    for (BaseUserMsgContentDO bumLsit:contentlist){
                        bumLsit.setSenderName(bumLsit.getSender()==patientId?bumLsit.getSenderName().substring(0,1)+"**":bumLsit.getSenderName());
                        bumLsit.setReceiverName(bumLsit.getReceiver()==patientId?bumLsit.getReceiverName().substring(0,1)+"**":bumLsit.getReceiverName());
                    }
                }
                baseUserMessageDO.setMsgList(contentlist);
            }
            jsonObject.put("messageList", messageList);
        }
        return jsonObject;
    }
}

+ 10 - 2
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -1632,7 +1632,7 @@ public class ImService {
			evaluateScoreDO.setEvaluateType(1);
			evaluateScoreDO.setType(type);
			evaluateScoreDO.setId(UUID.randomUUID().toString());
			
			String content = "";//评价内容
			
			List<BaseEvaluateDO> baseEvaluateDOS = new ArrayList<>();
@ -1667,7 +1667,10 @@ public class ImService {
					BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
					baseUserMessageDO.setCreateTime(new Date());
					baseUserMessageDO.setReceiver(consultTeamDo.getDoctor());
					baseUserMessageDO.setReceiverName(consultTeamDo.getDoctorName());
					BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(consultTeamDo.getDoctor());
					if (baseDoctorDO!=null){
						baseUserMessageDO.setReceiverName(baseDoctorDO.getName());
					}
					baseUserMessageDO.setSender(consultTeamDo.getPatient());
					baseUserMessageDO.setSenderName(consultTeamDo.getName());
					baseUserMessageDO.setRelationCode(baseEvaluateDO.getRelationCode());
@ -1678,7 +1681,12 @@ public class ImService {
						baseUserMessageDO.setRelationType(4);
						baseUserMessageDO.setRelationName("在线复诊");
					}
					baseUserMessageDO.setContent(baseEvaluateDO.getContent());
					baseUserMessageDO.setDel(1);
					baseUserMessageDO.setStatus(1);
					baseUserMessageDO.setType(type);
					baseUserMessageDO.setUpdateTime(new Date());
					baseUserMessageDO.setIsRead(0);
					userMessageDao.save(baseUserMessageDO);
					if (org.apache.commons.lang3.StringUtils.isNoneBlank(bannerList)){
						String str[]=bannerList.split(",");

+ 13 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/BaseBannerDoctorDO.java

@ -5,6 +5,7 @@ import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
 * @author zmk
@ -54,6 +55,9 @@ public class BaseBannerDoctorDO extends UuidIdentityEntityWithOperator {
     */
    private Integer relationType;
    @Transient
    private BaseBannerDO baseBannerDO;
    public Integer getRelationType() {
        return relationType;
    }
@ -125,4 +129,13 @@ public class BaseBannerDoctorDO extends UuidIdentityEntityWithOperator {
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Transient
    public BaseBannerDO getBaseBannerDO() {
        return baseBannerDO;
    }
    public void setBaseBannerDO(BaseBannerDO baseBannerDO) {
        this.baseBannerDO = baseBannerDO;
    }
}

+ 34 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/BaseUserMessageDO.java

@ -63,6 +63,40 @@ public class BaseUserMessageDO extends UuidIdentityEntityWithOperator {
     * 删除状态(1正常0删除)
     */
    private Integer del;
    /**
     * 是否匿名1、实名,2、匿名
     */
    private Integer type;
    /**
     * 是否匿名1、已读,2、未读
     */
    private Integer isRead;
    public Integer getIsRead() {
        return isRead;
    }
    public void setIsRead(Integer isRead) {
        this.isRead = isRead;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Transient
    private List<BaseBannerDoctorDO> bannerList;
    @Transient
    public List<BaseBannerDoctorDO> getBannerList() {
        return bannerList;
    }
    public void setBannerList(List<BaseBannerDoctorDO> bannerList) {
        this.bannerList = bannerList;
    }
    @Transient
    private List<BaseUserMsgContentDO> msgList;

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -1148,6 +1148,8 @@ public class BaseHospitalRequestMapping {
        public static final String doctorBanner  = "/doctorBanner";
        public static final String giveBanner  = "/giveBanner";
        public static final String getBanner  = "/getBanner";
        public static final String getMessageNotRead  = "/getMessageNotRead";
        public static final String changeIsRead = "/changeIsRead";
    }
    /**
@ -1175,6 +1177,7 @@ public class BaseHospitalRequestMapping {
        public static final String onlineVisitMessage  = "/onlineVisitMessage";
        public static final String getMessage  = "/getMessage";
        public static final String getPoint  = "/getPoint";
        public static final String showDoctorMessage  = "/showDoctorMessage";
    }
    /**

+ 23 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/message/BannerDoctorController.java

@ -11,6 +11,7 @@ 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.data.domain.Page;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -36,12 +37,14 @@ public class BannerDoctorController extends EnvelopRestEndpoint {
                              @ApiParam(name = "doctorName", value = "doctorName", required = false)
                                  @RequestParam(value = "doctorName", required = false)String doctorName,
                              @ApiParam(name = "content", value = "content", required = false)
                                  @RequestParam(value = "content", required = false)String content){
                                  @RequestParam(value = "content", required = false)String content,
                              @ApiParam(name = "type", value = "type", required = false)
                                  @RequestParam(value = "type", required = false)Integer type){
        List<BaseBannerDoctorDO> resultList = new ArrayList<>();
        if(StringUtils.isNotEmpty(bannerIds)){
            List<String> list =  Arrays.asList(bannerIds.split(","));
            String patientId= getUID();
            resultList = baseBannerDoctorService.bannerGive(patientId,list,content,doctor,doctorName);
            resultList = baseBannerDoctorService.bannerGive(patientId,list,content,doctor,doctorName,type);
        }
    return success("赠送成功",resultList);
    }
@ -52,4 +55,22 @@ public class BannerDoctorController extends EnvelopRestEndpoint {
        JSONObject jsonObject = baseBannerDoctorService.getDoctorBanners(doctor);
        return success(jsonObject);
    }
    @ApiOperation("查询未读消息")
    @PostMapping(value= BaseHospitalRequestMapping.DoctorBanner.getMessageNotRead)
    public Envelop getNotRead(@ApiParam(name = "doctor", value = "doctor", required = false)
                              @RequestParam(value = "doctor", required = false)String doctor,
                              @ApiParam(name = "page", value = "page", required = false)
                              @RequestParam(value = "page", required = false)Integer page,
                              @ApiParam(name = "pageSize", value = "pageSize", required = false)
                                  @RequestParam(value = "pageSize", required = false)Integer pageSize){
        JSONObject jsonObject = baseBannerDoctorService.getMessageNotRead(doctor,page,pageSize);
        return success(jsonObject);
    }
    @ApiOperation("修改消息已读状态")
    @PostMapping(value= BaseHospitalRequestMapping.DoctorBanner.changeIsRead)
    public Envelop changeIsRead(@ApiParam(name = "id", value = "id", required = false)
                              @RequestParam(value = "id", required = false)String id){
         baseBannerDoctorService.isRead(id);
        return success("success");
    }
}

+ 19 - 5
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/message/BaseUserMsgController.java

@ -31,8 +31,6 @@ public class BaseUserMsgController extends EnvelopRestEndpoint {
    @PostMapping(value= BaseHospitalRequestMapping.UserMessage.responseMessage)
    public Envelop responseMessage(@ApiParam(name = "reciverId", value = "reciverId", required = false)
                                       @RequestParam(value = "reciverId", required = false)String reciverId,
                                   @ApiParam(name = "reciverName", value = "reciverName", required = false)
                                       @RequestParam(value = "reciverName", required = false)String reciverName,
                                   @ApiParam(name = "content", value = "content", required = false)
                                       @RequestParam(value = "content", required = false)String content,
                                   @ApiParam(name = "contentId", value = "contentId", required = false)
@ -40,7 +38,7 @@ public class BaseUserMsgController extends EnvelopRestEndpoint {
                                   @ApiParam(name = "isDoctor", value = "isDoctor", required = false)
                                       @RequestParam(value = "isDoctor", required = false)Integer  isDoctor){
        String patient = getUID();
        baseUserMsgService.responseMessage(contentId,content,reciverId,reciverName,patient,isDoctor);
        baseUserMsgService.responseMessage(contentId,content,reciverId,patient,isDoctor);
        return success("回复成功" );
    }
    @ApiOperation("自身评论")
@ -50,11 +48,13 @@ public class BaseUserMsgController extends EnvelopRestEndpoint {
                              @ApiParam(name = "reciverName", value = "reciverName", required = false)
                              @RequestParam(value = "reciverName", required = false)String reciverName,
                              @ApiParam(name = "content", value = "content", required = false)
                              @RequestParam(value = "content", required = false)String content
                              @RequestParam(value = "content", required = false)String content,
                                @ApiParam(name = "type", value = "type", required = false)
                                    @RequestParam(value = "type", required = false)Integer type
                              ){
        String senderId = getUID();
        //String senderName = getUNAME();
        baseUserMsgService.leaveMessage(content,reciverId,reciverName,senderId);
        baseUserMsgService.leaveMessage(content,reciverId,reciverName,senderId,type);
        return success("留言成功" );
}
    @ApiOperation("医生评论展示")
@ -132,4 +132,18 @@ public class BaseUserMsgController extends EnvelopRestEndpoint {
        return success(userMsgContentService.countPoint(doctor));
    }
    @ApiOperation("医生评论展示")
    @PostMapping(value= BaseHospitalRequestMapping.UserMessage.showDoctorMessage)
    public Envelop showDoctorMessage(@ApiParam(name = "doctor", value = "doctor", required = false)
                               @RequestParam(value = "doctor", required = false)String doctor,
                               @ApiParam(name = "page", value = "第几页,从1开始", required = true, defaultValue = "1")
                               @RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
                               @ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
                               @RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize){
        JSONObject jsonObject=userMsgContentService.showContentByDoctor(doctor,page,pageSize);
        return success(jsonObject);
    }
}