From 5128196eacc8ea12a920a6da624db611f941dcde Mon Sep 17 00:00:00 2001 From: zhangchao Date: Thu, 6 Jun 2024 17:01:34 +0800 Subject: [PATCH] =?UTF-8?q?#fix:=E4=BC=98=E5=8C=96=E5=AD=95=E5=A6=87?= =?UTF-8?q?=E5=AD=A6=E6=A0=A1=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=AB=98=E5=8D=B1=E7=B1=BB=E5=9E=8B=E9=80=9A?= =?UTF-8?q?=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/service/CourseEvalService.java | 17 ++ .../java/com/lyms/platform/pojo/CourseModel.java | 9 + .../main/java/com/lyms/platform/pojo/MsgModel.java | 52 +++- .../com/lyms/platform/pojo/MsgModelRecord.java | 163 +++++++++++ .../java/com/lyms/platform/query/MsgQuery.java | 21 +- .../operate/web/controller/CourseController.java | 26 +- .../platform/operate/web/facade/CourseFacade.java | 313 +++++++++++++++++---- .../operate/web/request/CourseRequest.java | 10 + 8 files changed, 530 insertions(+), 81 deletions(-) create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/MsgModelRecord.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java index ed8a643..b591b78 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java @@ -10,6 +10,7 @@ import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.pojo.CourseEvaluateModel; import com.lyms.platform.pojo.MsgModel; +import com.lyms.platform.pojo.MsgModelRecord; import com.lyms.platform.pojo.ReviewModel; import com.lyms.platform.query.CourseEvalQuery; import com.lyms.platform.query.MsgQuery; @@ -18,6 +19,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Service; import java.util.List; @@ -35,6 +37,10 @@ public class CourseEvalService { @Autowired private ReviewDao reviewDao; + + @Autowired + private MongoTemplate mongoTemplate; + public List queryCourseEvalList(CourseEvalQuery courseEvalQuery) { MongoQuery query = courseEvalQuery.convertToQuery(); @@ -80,6 +86,17 @@ public class CourseEvalService { return msgDao.queryMsgList(query.addOrder(Sort.Direction.DESC, "created")); } + public List queryMsgRecordList(MsgQuery msgQuery) { + MongoQuery query = msgQuery.convertToQuery(); + if (StringUtils.isNotEmpty(msgQuery.getNeed())) { + msgQuery.mysqlBuild((int)mongoTemplate.count(query.convertToMongoQuery(),MsgModelRecord.class)); + query.start(msgQuery.getOffset()).end(msgQuery.getLimit()); + } + System.out.println(query.convertToMongoQuery()); + return mongoTemplate.find(query.convertToMongoQuery(),MsgModelRecord.class); + } + + public void addMsg(MsgModel model) { msgDao.addMsg(model); } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/CourseModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/CourseModel.java index 396c151..948c19d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/CourseModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/CourseModel.java @@ -83,7 +83,16 @@ public class CourseModel extends BaseModel { private byte[][] chunks; + //听课方式 1线上 2现场 + private Integer courseType; + public Integer getCourseType() { + return courseType; + } + + public void setCourseType(Integer courseType) { + this.courseType = courseType; + } public byte[][] getChunks() { return chunks; diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java index 393ae33..f131725 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java @@ -32,8 +32,6 @@ public class MsgModel extends BaseModel { private String created; //状态 0.未读 1.已读 private Integer state; - // - private Integer oarentId; //标题0.医生停诊通知 1.检查停诊通知 2.医院放假通知 3.排课表 private Integer title; @@ -41,11 +39,51 @@ public class MsgModel extends BaseModel { private String readCount; - //阅读量 private Integer readNum; private String img; + //发送人群 1、双胎专病 2、稀有血型 3、稀有血型专病 4、糖尿病专病 5、高血压专病 6、瘢痕子宫专病 7、剖宫产再孕专病 8、高龄孕产妇专病 9、传染性疾病专病 + private Integer crowd; + //发送人数 + private Integer crowdNum; + //课程Id + private String courseId; + //状态 0是未发布 1发布 + private Integer status; + + + public String getCourseId() { + return courseId; + } + + public void setCourseId(String courseId) { + this.courseId = courseId; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getCrowd() { + return crowd; + } + + public void setCrowd(Integer crowd) { + this.crowd = crowd; + } + + public Integer getCrowdNum() { + return crowdNum; + } + + public void setCrowdNum(Integer crowdNum) { + this.crowdNum = crowdNum; + } public String getImg() { return img; @@ -152,14 +190,6 @@ public class MsgModel extends BaseModel { this.state = state; } - public Integer getOarentId() { - return oarentId; - } - - public void setOarentId(Integer oarentId) { - this.oarentId = oarentId; - } - public Integer getTitle() { return title; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModelRecord.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModelRecord.java new file mode 100644 index 0000000..2b7fb18 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModelRecord.java @@ -0,0 +1,163 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +@Document(collection="lyms_msg_record") +public class MsgModelRecord extends BaseModel { + private static final long serialVersionUID = SerialIdEnum.ModularFunctionConfigModel.getCid(); + //消息id + private String id; + //1.用户端APP 2. 医生端APP + private Integer type; + //消息内容 + private String content; + //发布人id + private Integer publishId; + //发布人名称 + private String publishName; + //1.有效 2.无效 + private Integer yn; + //最后修改时间 + private String modified; + //创建时间 + private String created; + //状态 0.未读 1.已读 + private Integer state; + //标题0.医生停诊通知 1.检查停诊通知 2.医院放假通知 3.排课表 + private Integer title; + + private String hospitalId; + + private String img; + //课程Id + private String courseId; + private String msgId; + private String patientId; + + public String getMsgId() { + return msgId; + } + + public void setMsgId(String msgId) { + this.msgId = msgId; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getCourseId() { + return courseId; + } + + public void setCourseId(String courseId) { + this.courseId = courseId; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } + + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getPublishId() { + return publishId; + } + + public void setPublishId(Integer publishId) { + this.publishId = publishId; + } + + public String getPublishName() { + return publishName; + } + + public void setPublishName(String publishName) { + this.publishName = publishName; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public String getModified() { + return modified; + } + + public void setModified(String modified) { + this.modified = modified; + } + + public String getCreated() { + return created; + } + + public void setCreated(String created) { + this.created = created; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Integer getTitle() { + return title; + } + + public void setTitle(Integer title) { + this.title = title; + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java index c6c5650..6835f4c 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java @@ -28,8 +28,10 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { private Date created; //状态 0.已读 1.未读 private Integer state; + + private Integer status; // - private Integer parentId; + private String parentId; //标题0.医生停诊通知 1.检查停诊通知 2.医院放假通知 private Integer title; @@ -43,6 +45,14 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { private String img; + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + public String getImg() { return img; } @@ -155,11 +165,11 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { this.state = state; } - public Integer getParentId() { + public String getParentId() { return parentId; } - public void setParentId(Integer parentId) { + public void setParentId(String parentId) { this.parentId = parentId; } @@ -195,10 +205,13 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { }if(null != state){ condition = condition.and("state", state, MongoOper.IS); }if(null != parentId){ - condition = condition.and("parentId", parentId, MongoOper.IS); + condition = condition.and("patientId", parentId, MongoOper.IS); }if(null != title){ condition = condition.and("title", title, MongoOper.IS); } + if (null!=status){ + condition = condition.and("status", status, MongoOper.IS); + } return condition.toMongoQuery(); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CourseController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CourseController.java index bb350c9..e4493a6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CourseController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CourseController.java @@ -139,6 +139,7 @@ public class CourseController extends BaseController { @RequestParam(required = false) String courseSpeaker, @RequestParam(required = false) String createdTime, @RequestParam(required = false) String courseTime, + HttpServletRequest request) { return courseFacade.getCoureseList(courseTypeId, status, courseName, courseSpeaker, @@ -312,19 +313,30 @@ public class CourseController extends BaseController { @TokenRequired public BaseResponse msgList(@RequestParam Integer page, @RequestParam Integer limit, + Integer status, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return courseFacade.msgList(page,limit,loginState.getId()); + return courseFacade.msgList(page,limit,status,loginState.getId()); } /* - * 发布消息 + * 添加消息 * */ @RequestMapping(method = RequestMethod.POST, value = "/msgAdd") @ResponseBody @TokenRequired public BaseResponse msgAdd(@RequestBody MsgModel model, HttpServletRequest request) { - return courseFacade.msgAdd(model,getUserId(request)); + return courseFacade.msgAdd(model); + } + + /* + * 发布消息 + * */ + @RequestMapping(method = RequestMethod.GET, value = "/msgSend") + @ResponseBody + @TokenRequired + public BaseResponse msgSend(String msgId, HttpServletRequest request) { + return courseFacade.msgSend(msgId,getUserId(request)); } /* @@ -358,24 +370,22 @@ public class CourseController extends BaseController { @RequestMapping(method = RequestMethod.GET, value = "/getMsgList") @ResponseBody public BaseResponse msgList( - HttpServletRequest request) { - return courseFacade.getMsgList(); + HttpServletRequest request,String patientId,Integer limit,Integer page) { + return courseFacade.getMsgList(patientId,limit,page); } /** * 消息详情 * @param msgId - * @param parentId * @param request * @return */ @RequestMapping(method = RequestMethod.GET, value = "/getMsgById") @ResponseBody public BaseResponse getMsgById(@RequestParam(required = false) String msgId, - @RequestParam(required = false) String parentId, HttpServletRequest request) { - return courseFacade.getMsgById(msgId,parentId); + return courseFacade.getMsgById(msgId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java index d06a858..60f933c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CourseFacade.java @@ -5,13 +5,14 @@ import com.google.common.base.Strings; import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.ExceptionUtils; -import com.lyms.platform.common.utils.PropertiesUtils; +import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.request.CourseRequest; import com.lyms.platform.operate.web.result.CourseResult; import com.lyms.platform.operate.web.worker.CourseCountWorker; @@ -20,6 +21,7 @@ import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; +import com.mongodb.WriteResult; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -27,6 +29,9 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; @@ -76,6 +81,7 @@ public class CourseFacade { private PatientsService patientsService; + @Autowired private MongoTemplate mongoTemplate; @@ -129,6 +135,7 @@ public class CourseFacade { model.setCourseSpeaker(request.getCourseSpeaker()); model.setCourseVideo(request.getCourseVideo()); model.setId(request.getId()); + model.setCourseType(request.getCourseType()); return model; } @@ -1131,9 +1138,12 @@ public class CourseFacade { return new BaseObjectResponse().setData(results).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); } - public BaseResponse msgList(Integer page, Integer limit,Integer userId) { + public BaseResponse msgList(Integer page, Integer limit,Integer status,Integer userId) { String hospitalId = autoMatchFacade.getHospitalId(userId); MsgQuery msgQuery = new MsgQuery(); + if (status!=null){ + msgQuery.setStatus(status); + } msgQuery.setYn(YnEnums.YES.getId()); msgQuery.setNeed("true"); msgQuery.setLimit(limit); @@ -1148,7 +1158,194 @@ public class CourseFacade { return objectResponse; } - public BaseResponse msgAdd(MsgModel model,Integer userId) { + public BaseResponse msgSend( String msgId,Integer userId) { + BaseResponse objectResponse = new BaseResponse(); + final String hospitalId = autoMatchFacade.getHospitalId(userId); + Date day=new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format = df.format(day); + MsgQuery msgQuery = new MsgQuery(); + msgQuery.setId(msgId); + msgQuery.setState(0); + msgQuery.setHospitalId(hospitalId); + List msgModels= courseEvalService.queryMsgList(msgQuery); + if(CollectionUtils.isEmpty(msgModels)){ + objectResponse.setErrorcode(-1); + objectResponse.setErrormsg("当前通知状态异常"); + return objectResponse; + } + final MsgModel model= msgModels.get(0); + model.setModified(format); + model.setStatus(1); + //操作人为当前用户id + model.setPublishId(userId); + courseEvalService.updateMsg(model); + + final Integer crowd=model.getCrowd(); + //发送通知 + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + PatientsQuery patientsQuery=new PatientsQuery(); + patientsQuery.setYn(1); + patientsQuery.setHospitalId(hospitalId); + List patientses =null; + if (crowd==null){ + patientses= patientsService.queryPatient(patientsQuery); + }else { + //发送人群 0、健康 1、双胎专病 2、稀有血型专病 3、糖尿病专病 4、高血压专病 5、瘢痕子宫专病 6、剖宫产再孕专病 7、甲减专病 8、高龄孕产妇专病 9传染性疾病专病 + if (crowd==0){ + //健康 + List rFactorList = new ArrayList <>(); + rFactorList.add("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); + patientsQuery.setrFactorList(rFactorList); + patientses = patientsService.queryPatient(patientsQuery); + }else{ + Query yn =null; + if (crowd==1){ + //双胎专病 + Criteria criteria1 = Criteria.where("name").is("双胎妊娠(双绒双羊)"); + Criteria criteria2 = Criteria.where("name").is("双胎妊娠(单绒双羊)"); + Criteria criteria3 = Criteria.where("name").is("双胎妊娠(单绒单羊)"); + Criteria criteria4 = Criteria.where("name").is("双胎妊娠"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3,criteria4)); + }else if (crowd==2){ + //稀有血型专病 + Criteria criteria1 = Criteria.where("name").is("RH(-)"); + Criteria criteria2 = Criteria.where("name").is("Rh血型不合"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2)); + }else if (crowd==3){ + //糖尿病专病 + Criteria criteria1 = Criteria.where("name").is("妊娠期糖尿病(无需药物治疗)"); + Criteria criteria2 = Criteria.where("name").is("妊娠期糖尿病病史"); + Criteria criteria3 = Criteria.where("name").is("糖尿病合并妊娠(无需药物治疗)"); + Criteria criteria4 = Criteria.where("name").is("糖尿病并发肾病V级、严重心血管病、增生性视网膜病变或玻璃体出血、周围神经病变等"); + Criteria criteria5 = Criteria.where("name").is("糖尿病并发肾病V级"); + Criteria criteria6 = Criteria.where("name").is("糖尿病并发严重心血管病"); + Criteria criteria7 = Criteria.where("name").is("糖尿病并发增生性视网膜病变"); + Criteria criteria8 = Criteria.where("name").is("糖尿病并发玻璃体出血"); + Criteria criteria9 = Criteria.where("name").is("糖尿病并发周围神经病变等"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6, criteria7, criteria8, criteria9)); + }else if (crowd==4){ + //高血压专病 + Criteria criteria1 = Criteria.where("name").is("妊娠期高血压疾病(除外红、橙色)"); + Criteria criteria2 = Criteria.where("name").is("妊娠期高血压"); + Criteria criteria3 = Criteria.where("name").is("子痫前期(轻)"); + Criteria criteria4 = Criteria.where("name").is("慢性高血压合并妊娠"); + Criteria criteria5 = Criteria.where("name").is("妊娠期高血压性心脏病"); + Criteria criteria6 = Criteria.where("name").is("急性肾脏疾病伴高血压"); + Criteria criteria7 = Criteria.where("name").is("慢性肾脏疾病伴高血压"); + Criteria criteria8 = Criteria.where("name").is("妊娠期高血压疾病病史"); + Criteria criteria9 = Criteria.where("name").is("重度子痫前期"); + Criteria criteria10 = Criteria.where("name").is("慢性高血压合并子痫前期"); + Criteria criteria12 = Criteria.where("name").is("泌尿系统疾病:急、慢性肾脏疾病伴高血压、肾功能不全(肌酐超过正常值上限的1.5倍)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6, criteria7,criteria8,criteria9,criteria10,criteria12)); + }else if (crowd==5){ + //瘢痕子宫专病 + Criteria criteria1 = Criteria.where("name").is("瘢痕子宫"); + Criteria criteria2 = Criteria.where("name").is("剖宫产1次"); + Criteria criteria3 = Criteria.where("name").is("子宫肌瘤挖出术1次"); + Criteria criteria4 = Criteria.where("name").is("宫角妊娠1次"); + Criteria criteria5 = Criteria.where("name").is("瘢痕子宫(距末次子宫手术间隔<18月)"); + Criteria criteria6 = Criteria.where("name").is("疤痕子宫伴中央性前置胎盘或伴有可疑胎盘植入"); + Criteria criteria7 = Criteria.where("name").is("瘢痕子宫伴中央性前置胎盘"); + Criteria criteria8 = Criteria.where("name").is("瘢痕子宫伴有可疑胎盘植入"); + Criteria criteria9 = Criteria.where("name").is("各类子宫手术史(如剖宫产、宫角妊娠、子宫肌瘤挖除术等)≥2次"); + Criteria criteria10 = Criteria.where("name").is("剖宫产≥2次"); + Criteria criteria11 = Criteria.where("name").is("宫角妊娠≥2次"); + Criteria criteria12 = Criteria.where("name").is("子宫肌瘤挖出术≥2次"); + Criteria criteria13 = Criteria.where("name").is("各类子宫手术史≥2次"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6, criteria7, criteria8, criteria9, criteria10, criteria11, criteria12, criteria13)); + + }else if (crowd==6){ + //剖宫产再孕专病 + Criteria criteria1 = Criteria.where("name").is("各类子宫手术史(如剖宫产、宫角妊娠、子宫肌瘤挖除术等)≥2次"); + Criteria criteria2 = Criteria.where("name").is("剖宫产1次"); + Criteria criteria3 = Criteria.where("name").is("剖宫产≥2次"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3)); + }else if (crowd==7){ + //甲减专病 + Criteria criteria1 = Criteria.where("name").is("亚临床甲减"); + Criteria criteria2 = Criteria.where("name").is("甲减(需药物治疗)"); + Criteria criteria3 = Criteria.where("name").is("甲状腺功能减退引起相应系统功能障碍,基础代谢率小于-50%"); + Criteria criteria4 = Criteria.where("name").is("甲状腺功能减低(无需药物治疗)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3, criteria4)); + + }else if (crowd==8){ + //高龄孕产妇专病 + Criteria criteria1 = Criteria.where("name").is("40岁>年龄≥35岁"); + Criteria criteria2 = Criteria.where("name").is("年龄≥40岁"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2)); + + }else if (crowd==9){ + // 传染性疾病专病 + Criteria criteria1 = Criteria.where("name").is("梅毒"); + Criteria criteria2 = Criteria.where("name").is("HIV感染及艾滋病"); + Criteria criteria3 = Criteria.where("name").is("特殊病毒感染(H1N7、寨卡等)"); + Criteria criteria4 = Criteria.where("name").is("结核病"); + Criteria criteria5 = Criteria.where("name").is("病毒性肝炎"); + Criteria criteria6 = Criteria.where("name").is("重症感染性肺炎"); + Criteria criteria7 = Criteria.where("name").is("所有妊娠合并传染性疾病"); + Criteria criteria8 = Criteria.where("name").is("尖锐湿疣"); + Criteria criteria9 = Criteria.where("name").is("淋病"); + Criteria criteria10 = Criteria.where("name").is("丙肝阳性"); + Criteria criteria11 = Criteria.where("name").is("乙肝大三阳"); + Criteria criteria12 = Criteria.where("name").is("乙肝小三阳"); + Criteria criteria13=Criteria.where("name").is("所有妊娠合井传染性疾病--如病毒性肝炎、梅毒、HV感染及艾滋病、结核病、重症盛染性肺炎、特殊病毒感染(H1N7、寨卡等)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3, criteria4,criteria5,criteria6,criteria7,criteria8,criteria9,criteria10,criteria11,criteria12,criteria13)); + + } + List models = mongoTemplate.find(yn, BasicConfig.class); + List rFactorList = new ArrayList <>(); + if (models != null && models.size() > 0) { + for (int i = 0; i < models.size(); i++) { + rFactorList.add(models.get(i).getId()); + } + } + patientsQuery.setrFactorList(rFactorList); + patientses = patientsService.queryPatient(patientsQuery); + } + } + if (CollectionUtils.isNotEmpty(patientses)){ + List msgModelRecords=new ArrayList<>(); + for (Patients patients:patientses){ + MsgModelRecord msgModelRecord=getRecord(model); + System.out.println(patients.getId()); + msgModelRecord.setPatientId(patients.getId()); + msgModelRecords.add(msgModelRecord); + } + mongoTemplate.insertAll(msgModelRecords); + model.setCrowdNum(patientses.size()); + courseEvalService.updateMsg(model); + } + } + }); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + + public MsgModelRecord getRecord(MsgModel msgModel){ + MsgModelRecord msgModelRecord=new MsgModelRecord(); + msgModelRecord.setMsgId(msgModel.getId()); + msgModelRecord.setContent(msgModel.getContent()); + msgModelRecord.setCourseId(msgModel.getCourseId()); + msgModelRecord.setCreated(msgModel.getCreated()); + msgModelRecord.setHospitalId(msgModel.getHospitalId()); + msgModelRecord.setImg(msgModel.getImg()); + msgModelRecord.setState(msgModel.getState()); + msgModelRecord.setPublishId(msgModel.getPublishId()); + msgModelRecord.setPublishName(msgModel.getPublishName()); + msgModelRecord.setTitle(msgModel.getTitle()); + msgModelRecord.setType(msgModel.getType()); + msgModelRecord.setYn(1); + return msgModelRecord; + } + + + + public BaseResponse msgAdd(MsgModel model) { BaseResponse objectResponse = new BaseResponse(); @@ -1158,9 +1355,7 @@ public class CourseFacade { model.setCreated(df.format(day)); model.setState(0); model.setYn(YnEnums.YES.getId()); - //发布人id - model.setPublishId(userId); - model.setHospitalId(model.getHospitalId()); + model.setStatus(0); courseEvalService.addMsg(model); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); objectResponse.setErrormsg("成功"); @@ -1168,21 +1363,29 @@ public class CourseFacade { } public BaseResponse msgUpdate(MsgModel model,Integer userId) { + MsgQuery msgQuery=new MsgQuery(); + msgQuery.setId(model.getId()); + msgQuery.setYn(1); + + List list= courseEvalService.queryMsgList(msgQuery); + MsgModel msgModel= list.get(0); BaseResponse objectResponse = new BaseResponse(); + if (msgModel==null ||(msgModel.getStatus()!=null && msgModel.getStatus()==1)){ + objectResponse.setErrorcode(-1); + objectResponse.setErrormsg("已经发布的通知不能做修改"); + return objectResponse; + } + Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = df.format(day); model.setModified(format); model.setState(0); - model.setYn(YnEnums.YES.getId()); //操作人为当前用户id model.setPublishId(userId); - model.setHospitalId(model.getHospitalId()); - courseEvalService.updateMsg(model); - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); objectResponse.setErrormsg("成功"); return objectResponse; @@ -1190,6 +1393,19 @@ public class CourseFacade { public BaseResponse deleteMsgById(String id) { BaseResponse objectResponse = new BaseResponse(); + + MsgQuery msgQuery=new MsgQuery(); + msgQuery.setId(id); + msgQuery.setYn(1); + + List list= courseEvalService.queryMsgList(msgQuery); + MsgModel msgModel= list.get(0); + if (msgModel==null || (msgModel.getStatus()!=null &&msgModel.getStatus()==1)){ + objectResponse.setErrorcode(-1); + objectResponse.setErrormsg("已经发布的通知不能删除"); + return objectResponse; + } + Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = df.format(day); @@ -1208,12 +1424,15 @@ public class CourseFacade { return objectResponse; } - public BaseResponse getMsgList() { + public BaseResponse getMsgList(String patientId,Integer limit,Integer page) { MsgQuery msgQuery = new MsgQuery(); msgQuery.setYn(YnEnums.YES.getId()); msgQuery.setNeed("true"); + msgQuery.setLimit(limit); + msgQuery.setPage(page); + msgQuery.setParentId(patientId); BaseListResponse objectResponse = new BaseListResponse(); - List models = courseEvalService.queryMsgList(msgQuery); + List models= courseEvalService.queryMsgRecordList(msgQuery); objectResponse.setData(models); objectResponse.setPageInfo(msgQuery.getPageInfo()); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); @@ -1221,60 +1440,38 @@ public class CourseFacade { return objectResponse; } - public BaseResponse getMsgById(String msgId, String parentId) { + public BaseResponse getMsgById(String msgId) { MsgQuery msgQuery = new MsgQuery(); msgQuery.setYn(YnEnums.YES.getId()); - msgQuery.setNeed("true"); msgQuery.setId(msgId); - BaseListResponse objectResponse = new BaseListResponse(); - List models = courseEvalService.queryMsgList(msgQuery); - for (MsgModel model : models) { - if (parentId!=null){ - String readCount = model.getReadCount(); - //判断此条信息有没有值 - if (readCount==null || readCount==""){ - //如果没有值,直接添加数据 - model.setReadCount(parentId); - model.setReadNum(1); - courseEvalService.updateMsgReadCount(model); - }else{ - // 判断 parentId 是否存在于 readCount 中 - if (!readCount.contains(parentId)) { - // 如果不存在,执行下面的逻辑 - // 继续添加 parentId,并设置到 model 中 - readCount += "," + parentId; - model.setReadCount(readCount); - - int commaCount = readCount.split(",").length-1; - // 统计逗号数量,用于计算字段数量 - //int commaCount = 0; - //for (int i = 0; i < readCount.length(); i++) { - // if (readCount.charAt(i) == ',') { - // commaCount++; - // } - //} - - // 计算字段数量 - //int fieldCount = commaCount + 1; - model.setReadNum(commaCount+1); - // 更新消息阅读量 - courseEvalService.updateMsgReadCount(model); - } - } - } + BaseResponse objectResponse = new BaseResponse(); + List models = courseEvalService.queryMsgRecordList(msgQuery); + MsgModelRecord msgModelRecord= models.get(0); + if (msgModelRecord.getState()==0){ + msgModelRecord.setState(1); + Update update= MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(msgModelRecord)); + mongoTemplate.updateMulti(msgQuery.convertToQuery().convertToMongoQuery(),update, MsgModelRecord.class); + msgQuery.setId(msgModelRecord.getMsgId()); + List msgModels= courseEvalService.queryMsgList(msgQuery); + MsgModel msgModel= msgModels.get(0); + msgModel.setReadNum(msgModel.getReadNum()+1); + courseEvalService.updateMsg(msgModel); } - objectResponse.setData(models); - objectResponse.setPageInfo(msgQuery.getPageInfo()); + objectResponse.setObject(msgModelRecord); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); objectResponse.setErrormsg("成功"); return objectResponse; } public BaseResponse getMsgCountById(String parentId) { - BaseListResponse baseResponse = new BaseListResponse(); + BaseResponse baseResponse = new BaseResponse(); MsgQuery msgQuery = new MsgQuery(); msgQuery.setYn(YnEnums.YES.getId()); - msgQuery.setNeed("true"); + msgQuery.setState(0); + msgQuery.setParentId(parentId); + List models = courseEvalService.queryMsgRecordList(msgQuery); + /* msgQuery.setNeed("true"); List models = courseEvalService.queryMsgList(msgQuery); // 初始化计数器 int notContainCount = 0; @@ -1287,8 +1484,8 @@ public class CourseFacade { // readCount 为空,或者不包含当前登录人的 ID,则增加计数器 notContainCount++; } - } - baseResponse.setData(Collections.singletonList(notContainCount)); + }*/ + baseResponse.setObject(models.size()); baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); baseResponse.setErrormsg("成功"); return baseResponse; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseRequest.java index b2bbbe6..8ea1ef5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseRequest.java @@ -16,6 +16,8 @@ public class CourseRequest { //课程地址 private String courseAddress; + //听课方式 1线上 2现场 + private Integer courseType; //课程时间 private String courseTime; @@ -43,6 +45,14 @@ public class CourseRequest { private String courseVideo; + public Integer getCourseType() { + return courseType; + } + + public void setCourseType(Integer courseType) { + this.courseType = courseType; + } + public String getCourseVideo() { return courseVideo; } -- 1.8.3.1