|
@ -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();
|
|
|
}
|
|
|
|
|
|
}
|