|  | @ -0,0 +1,326 @@
 | 
												
													
														
															|  | 
 |  | package com.yihu.jw.hospital.message.service;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import com.google.j2objc.annotations.AutoreleasePool;
 | 
												
													
														
															|  | 
 |  | 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.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.BaseUserMessageDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.hospital.message.dao.BaseUserMsgContentDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.rm.base.BaseRequestMapping;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
 | 
												
													
														
															|  | 
 |  | 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.collections.map.HashedMap;
 | 
												
													
														
															|  | 
 |  | 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.*;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | @Service
 | 
												
													
														
															|  | 
 |  | public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUserMessageDao> {
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseUserMessageDao baseUserMessageDao;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseUserMsgContentDao baseUserMsgContentDao;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private JdbcTemplate jdbcTemplate;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private HibenateUtils hibenateUtils;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseEvaluateScoreDao baseEvaluateScoreDao;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseEvaluateDao baseEvaluateDao;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BasePatientDao basePatientDao;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     @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) {
 | 
												
													
														
															|  | 
 |  |         BaseUserMessageDO baseUserMessageDO = new BaseUserMessageDO();
 | 
												
													
														
															|  | 
 |  |         String relationCode=UUID.randomUUID().toString();
 | 
												
													
														
															|  | 
 |  |         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 contentId,String content, String reciverId, String reciverName, String senderId, String senderName) {
 | 
												
													
														
															|  | 
 |  |         BaseUserMessageDO baseUserMessageDOS = baseUserMessageDao.findOne(contentId);
 | 
												
													
														
															|  | 
 |  |         if(null!=baseUserMessageDOS){
 | 
												
													
														
															|  | 
 |  |             baseUserMessageDOS.setStatus(2);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         baseUserMessageDao.save(baseUserMessageDOS);
 | 
												
													
														
															|  | 
 |  |         BaseUserMsgContentDO baseUserMsgContentDO =new BaseUserMsgContentDO();
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setBaseUserMsgId(contentId);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setContent(content);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setSender(senderId);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setSenderName(senderName);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setReceiver(reciverId);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setReceiverName(reciverName);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setDel(1);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDO.setStatus(1);
 | 
												
													
														
															|  | 
 |  |         baseUserMsgContentDao.save(baseUserMsgContentDO);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     //评论留言展示
 | 
												
													
														
															|  | 
 |  |     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\"," +
 | 
												
													
														
															|  | 
 |  |                 "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")
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql.toString()+") t";
 | 
												
													
														
															|  | 
 |  |         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 ASC");
 | 
												
													
														
															|  | 
 |  |         System.out.println(sql.toString());
 | 
												
													
														
															|  | 
 |  |         List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql.toString(),params,page,pageSize);
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> returnList = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  |         for (Map<String, Object> map : list) {
 | 
												
													
														
															|  | 
 |  |             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.setSenderName(map.get("sender").toString());
 | 
												
													
														
															|  | 
 |  |             baseUserMsgContentDO.setContent(map.get("content").toString());
 | 
												
													
														
															|  | 
 |  |             BasePatientDO patientDO = basePatientDao.findById(map.get("sender").toString());
 | 
												
													
														
															|  | 
 |  |             String icon = null;
 | 
												
													
														
															|  | 
 |  |             if (null!=patientDO){
 | 
												
													
														
															|  | 
 |  |                 icon = patientDO.getPhoto();
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             List<BaseUserMsgContentDO> contentlist=baseUserMsgContentDao.getContentListByID(id);
 | 
												
													
														
															|  | 
 |  |             baseUserMsgContentDO.setMsgList(contentlist);
 | 
												
													
														
															|  | 
 |  |             String updateTime = map.get("update_time").toString();
 | 
												
													
														
															|  | 
 |  |             baseUserMsgContentDO.setUpdateTime(DateUtil.strToDateLong(updateTime));
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             //map.put("update_time",DateUtil.dateToStrLong(DateUtil.strToDateLong(updateTime)));
 | 
												
													
														
															|  | 
 |  |             List<BaseEvaluateDO> baseEvaluateDO=baseEvaluateDao.findByRelationCode(relationCode);
 | 
												
													
														
															|  | 
 |  |             BaseEvaluateScoreDO scoreList =null;
 | 
												
													
														
															|  | 
 |  |             if (baseEvaluateDO.size()>0){
 | 
												
													
														
															|  | 
 |  |                 String findRC=baseEvaluateDO.get(0).getRelationCode();
 | 
												
													
														
															|  | 
 |  |                 scoreList= baseEvaluateScoreDao.findOne(relationCode);
 | 
												
													
														
															|  | 
 |  |                 if(null!=scoreList){
 | 
												
													
														
															|  | 
 |  |                     returnMap.put("everangScore",scoreList);
 | 
												
													
														
															|  | 
 |  |                     returnMap.put("scoreList",baseEvaluateDO);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             baseUserMsgContentDO.setSenderName(scoreList.getType()==1?map.get("sender_name").toString():map.get("sender_name").toString().substring(0,1)+"**");
 | 
												
													
														
															|  | 
 |  |             returnMap.put("contentList",baseUserMsgContentDO);
 | 
												
													
														
															|  | 
 |  |             returnMap.put("patientIcon",icon);
 | 
												
													
														
															|  | 
 |  |             returnList.add(returnMap);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, returnList, page, pageSize, count);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     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);
 | 
												
													
														
															|  | 
 |  |         List<BaseUserMsgContentDO> contentlist=baseUserMsgContentDao.getContentListByID(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<>();
 | 
												
													
														
															|  | 
 |  |         BaseEvaluateScoreDO scoreList = new BaseEvaluateScoreDO();
 | 
												
													
														
															|  | 
 |  |         List<BaseEvaluateDO> baseEvaluateDO=baseEvaluateDao.findByRelationCode(relationCode);
 | 
												
													
														
															|  | 
 |  |         if (baseEvaluateDO.size()>0){
 | 
												
													
														
															|  | 
 |  |             String findRC=baseEvaluateDO.get(0).getRelationCode();
 | 
												
													
														
															|  | 
 |  |             scoreList= baseEvaluateScoreDao.findOne(relationCode);
 | 
												
													
														
															|  | 
 |  |             if(null!=scoreList){
 | 
												
													
														
															|  | 
 |  |                 map.put("everangScore",scoreList);
 | 
												
													
														
															|  | 
 |  |                 map.put("scoreList",baseEvaluateDO);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         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());
 | 
												
													
														
															|  | 
 |  |         map.put("contentlist",contentlist);
 | 
												
													
														
															|  | 
 |  |         returnResult.add(map);
 | 
												
													
														
															|  | 
 |  |         return returnResult;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     //专家咨询留言
 | 
												
													
														
															|  | 
 |  |     public void expertMessage(String content, String reciverId, String reciverName, String senderId, String senderName, String relationCode) {
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         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) {
 | 
												
													
														
															|  | 
 |  |         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);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     //评论回复展示
 | 
												
													
														
															|  | 
 |  |     public Envelop showReply(String relationCode, Integer page, Integer pageSize){
 | 
												
													
														
															|  | 
 |  |         String sql = dealSql(relationCode,false);
 | 
												
													
														
															|  | 
 |  |         String sqlCount = dealSql(relationCode,true);
 | 
												
													
														
															|  | 
 |  |         Map<String,Object> params = new HashedMap();
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isNotEmpty(relationCode)){
 | 
												
													
														
															|  | 
 |  |             params.put("relationCode",relationCode);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         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"));
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params,page,pageSize);
 | 
												
													
														
															|  | 
 |  |         for (Map<String,Object> map:list){
 | 
												
													
														
															|  | 
 |  |             String createTime= map.get("updateTime").toString();
 | 
												
													
														
															|  | 
 |  |             String updateTime = map.get("updateTime1").toString();
 | 
												
													
														
															|  | 
 |  |             map.put("updateTime",DateUtil.dateToStrLong(DateUtil.strToDateLong(createTime)));
 | 
												
													
														
															|  | 
 |  |             map.put("updateTime1",DateUtil.dateToStrLong(DateUtil.strToDateLong(updateTime)));
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, pageSize, count);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     private String dealSql(String relationCode,Boolean isCount){
 | 
												
													
														
															|  | 
 |  |         StringBuffer sql = new StringBuffer();
 | 
												
													
														
															|  | 
 |  |         if (isCount) {
 | 
												
													
														
															|  | 
 |  |             sql.append("SELECT COUNT(1) AS \"total\" FROM (");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql.append("select " +"b.id AS \"id\",b.content AS \"topContent\",b.sender_name AS \"topSenderName\" " +
 | 
												
													
														
															|  | 
 |  |                 ",a.content AS \"content\",b.update_time  AS \"updateTime\", a.sender_name AS \"senderName\",a.receiver_name AS \"receiverName\",a.update_time  AS \"updateTime1\""+
 | 
												
													
														
															|  | 
 |  |                 "from base_user_msg_content a left join base_user_message b" +
 | 
												
													
														
															|  | 
 |  |                 "on on b.id = a.base_user_msg_id");
 | 
												
													
														
															|  | 
 |  |         sql.append(" where 1=1 ");
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isNotEmpty(relationCode)){
 | 
												
													
														
															|  | 
 |  |             sql.append(" and a.relation_code = :relationCode");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if (isCount) {
 | 
												
													
														
															|  | 
 |  |             sql.append(") t");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return sql.toString();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | }
 |