|
@ -0,0 +1,284 @@
|
|
|
package com.yihu.jw.hospital.message.service;
|
|
|
|
|
|
import com.yihu.jw.entity.hospital.message.BaseBannerDO;
|
|
|
import com.yihu.jw.entity.hospital.message.BaseUserMessageDO;
|
|
|
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.util.date.DateUtil;
|
|
|
import com.yihu.jw.utils.hibernate.HibenateUtils;
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
import com.yihu.mysql.query.URLQueryParser;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.checkerframework.checker.units.qual.A;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.jpa.provider.HibernateUtils;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.swing.plaf.PanelUI;
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUserMessageDao> {
|
|
|
|
|
|
@Autowired
|
|
|
private BaseUserMessageDao baseUserMessageDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
@Autowired
|
|
|
private HibenateUtils hibenateUtils;
|
|
|
|
|
|
@Value("${wechat.id}")
|
|
|
private String wxId;
|
|
|
|
|
|
|
|
|
@Value("${wechat.flag}")
|
|
|
private boolean flag;
|
|
|
|
|
|
//患者给医生自身留言接口
|
|
|
public void leaveMessage(String content, String reciverId, String reciverName, String senderId, String senderName, String relationCode) {
|
|
|
|
|
|
List<BaseUserMessageDO> baseUserMessageDOS = baseUserMessageDao.getMessageByCode(relationCode);
|
|
|
if (baseUserMessageDOS.size()>0){
|
|
|
BaseUserMessageDO peiviousMessage = baseUserMessageDOS.get(0);
|
|
|
peiviousMessage.setStatus(2);
|
|
|
baseUserMessageDao.save(peiviousMessage);
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("自身留言");
|
|
|
baseUserMessageDO.setRelationType(1);
|
|
|
baseUserMessageDO.setStatus(2);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("自身留言");
|
|
|
baseUserMessageDO.setRelationType(1);
|
|
|
baseUserMessageDO.setStatus(1);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//回复留言接口
|
|
|
@Transactional
|
|
|
public void responseMessage(String content, String reciverId, String reciverName, String senderId, String senderName, String relationCode) {
|
|
|
List<BaseUserMessageDO> baseUserMessageDOS = baseUserMessageDao.getMessageByCode(relationCode);
|
|
|
BaseUserMessageDO peiviousMessage = baseUserMessageDOS.get(0);
|
|
|
peiviousMessage.setStatus(2);
|
|
|
baseUserMessageDao.save(peiviousMessage);
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("自身留言");
|
|
|
baseUserMessageDO.setRelationType(1);
|
|
|
baseUserMessageDO.setStatus(2);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
}
|
|
|
|
|
|
//评论留言展示
|
|
|
public List<Map<String,Object>> getMessage(String doctor, String showAll, String showAllType, String beginTime,String endTime) {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
sql.append("select t.id as \"id\" ,t.content as \"content\"," +
|
|
|
"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.status as \"status\",t.update_time as \"update_time\"");
|
|
|
/*if("xm_ykyy_wx".equals(wxId)){
|
|
|
flag = true;
|
|
|
if (flag){
|
|
|
sql.append(",date_format(t.update_time,'%Y-%m-%d %H:%i:%S' ) AS \"update_time\"");
|
|
|
}else {
|
|
|
sql.append(",to_char(t.update_time,'YYYY-MM-DD hh24:mi:ss') AS \"update_time\"");
|
|
|
}
|
|
|
}else{
|
|
|
sql.append("date_format(t.update_time,'%Y-%m-%d %H:%i:%S' ) AS \"update_time\"");
|
|
|
}*/
|
|
|
|
|
|
sql.append(" from base_user_message t where 1 = 1");
|
|
|
if (StringUtils.isNotEmpty(doctor)) {
|
|
|
sql.append(" and t.receiver = '" + doctor + "'");
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(showAll)) {
|
|
|
sql.append(" and t.status = " + showAll);
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(showAllType)) {
|
|
|
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")
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(endTime)) {
|
|
|
sql.append(" and t.update_time < '" + endTime+"'");//DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss")
|
|
|
}
|
|
|
sql.append(" GROUP BY t.relation_code ORDER BY t.update_time ASC");
|
|
|
System.out.println(sql.toString());
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql.toString());
|
|
|
List<Map<String, Object>> returnList = new ArrayList<>();
|
|
|
for (Map<String, Object> map : list) {
|
|
|
String relationCode = map.get("relation_code").toString();
|
|
|
String updateTime = map.get("update_time").toString();
|
|
|
map.put("update_time",DateUtil.dateToStrLong(DateUtil.strToDateLong(updateTime)));
|
|
|
List<Map<String,Object>> scoreList = this.getListByRelationCode(relationCode);
|
|
|
if(null!=scoreList){
|
|
|
map.put("scoreList",scoreList);
|
|
|
}
|
|
|
returnList.add(map);
|
|
|
}
|
|
|
return returnList;
|
|
|
}
|
|
|
public List<Map<String,Object>> getListByRelationCode(String relationCode){
|
|
|
//查询评价明细
|
|
|
String sqlScoreList = "SELECT " +
|
|
|
"a.score as \"score\"," +
|
|
|
"a.score_type as \"score_type\"," +
|
|
|
"a.content as \"content\",";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
if (flag){
|
|
|
sqlScoreList += "date_format(b.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"create_time\",";
|
|
|
}else {
|
|
|
sqlScoreList += "to_char(b.create_time,'YYYY-MM-DD hh24:mi:ss') AS \"create_time\",";
|
|
|
}
|
|
|
}else{
|
|
|
sqlScoreList += "date_format(b.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"create_time\",";
|
|
|
}
|
|
|
|
|
|
sqlScoreList += "c.type as \"type\"," +
|
|
|
"c.name as \"patientname\"," +
|
|
|
"b.id as \"id\"," +
|
|
|
"c.photo as \"patientphoto\"," +
|
|
|
"b.type as \"niming\" " +
|
|
|
"FROM " +
|
|
|
"base_evaluate a " +
|
|
|
"LEFT JOIN base_evaluate_score b ON b.id=a.relation_code " +
|
|
|
"LEFT JOIN wlyy_consult_team c ON c.consult=b.relation_code " +
|
|
|
"WHERE a.relation_code=b.id "+
|
|
|
"AND c.consult='"+relationCode+"'";
|
|
|
System.out.println(sqlScoreList);
|
|
|
List<Map<String,Object>> scoreList = hibenateUtils.createSQLQuery(sqlScoreList);
|
|
|
if(scoreList.isEmpty()){
|
|
|
return null;
|
|
|
}
|
|
|
return scoreList;
|
|
|
}
|
|
|
//获取单条评论详细信息
|
|
|
public List<Map<String,Object>> getSingle(String id){
|
|
|
BaseUserMessageDO baseUserMessageDO=baseUserMessageDao.findOne(id);
|
|
|
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<>();
|
|
|
map.put("scoreList",scoreList);
|
|
|
map.put("sender",baseUserMessageDO.getSender());
|
|
|
map.put("senderName",baseUserMessageDO.getSenderName());
|
|
|
map.put("content",baseUserMessageDO.getContent());
|
|
|
map.put("receiver",baseUserMessageDO.getReceiver());
|
|
|
map.put("receiverName",baseUserMessageDO.getReceiverName());
|
|
|
map.put("relationCode",baseUserMessageDO.getRelationCode());
|
|
|
map.put("relationType",baseUserMessageDO.getRelationType());
|
|
|
map.put("status",baseUserMessageDO.getStatus());
|
|
|
map.put("updateTime",DateUtil.dateToStrLong(DateUtil.strToDateLong(baseUserMessageDO.getUpdateUserName())));
|
|
|
map.put("relationName",baseUserMessageDO.getRelationName());
|
|
|
returnResult.add(map);
|
|
|
return returnResult;
|
|
|
}
|
|
|
//专家咨询留言
|
|
|
public void expertMessage(String content, String reciverId, String reciverName, String senderId, String senderName, String relationCode) {
|
|
|
|
|
|
List<BaseUserMessageDO> baseUserMessageDOS = baseUserMessageDao.getMessageByCode(relationCode);
|
|
|
if (baseUserMessageDOS.size()>0){
|
|
|
BaseUserMessageDO peiviousMessage = baseUserMessageDOS.get(0);
|
|
|
peiviousMessage.setStatus(2);
|
|
|
baseUserMessageDao.save(peiviousMessage);
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("专家咨询");
|
|
|
baseUserMessageDO.setRelationType(3);
|
|
|
baseUserMessageDO.setStatus(2);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("专家咨询");
|
|
|
baseUserMessageDO.setRelationType(3);
|
|
|
baseUserMessageDO.setStatus(1);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//在线复诊留言
|
|
|
public void onlineVisitMessage(String content, String reciverId, String reciverName, String senderId, String senderName, String relationCode) {
|
|
|
|
|
|
List<BaseUserMessageDO> baseUserMessageDOS = baseUserMessageDao.getMessageByCode(relationCode);
|
|
|
if (baseUserMessageDOS.size()>0){
|
|
|
BaseUserMessageDO peiviousMessage = baseUserMessageDOS.get(0);
|
|
|
peiviousMessage.setStatus(2);
|
|
|
baseUserMessageDao.save(peiviousMessage);
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("在线复诊");
|
|
|
baseUserMessageDO.setRelationType(4);
|
|
|
baseUserMessageDO.setStatus(2);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
|
|
|
}
|
|
|
else{
|
|
|
BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
|
|
|
baseUserMessageDO.setContent(content);
|
|
|
baseUserMessageDO.setSender(senderId);
|
|
|
baseUserMessageDO.setSenderName(senderName);
|
|
|
baseUserMessageDO.setReceiver(reciverId);
|
|
|
baseUserMessageDO.setReceiverName(reciverName);
|
|
|
baseUserMessageDO.setRelationCode(relationCode);
|
|
|
baseUserMessageDO.setRelationName("在线复诊");
|
|
|
baseUserMessageDO.setRelationType(4);
|
|
|
baseUserMessageDO.setStatus(1);
|
|
|
baseUserMessageDO.setDel(1);
|
|
|
baseUserMessageDao.save(baseUserMessageDO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|