diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseDao.java index d650a79..5383417 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseDao.java @@ -3,6 +3,7 @@ package com.lyms.platform.biz.dal; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.pojo.CourseModel; +import com.lyms.platform.pojo.MsgModel; import java.util.List; diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseEvalDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseEvalDao.java index eee16f3..fa3919d 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseEvalDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseEvalDao.java @@ -18,4 +18,5 @@ public interface ICourseEvalDao { public void addCourseEval(CourseEvaluateModel model); public void updateCourseEval(MongoQuery mongoQuery, CourseEvaluateModel model); + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java index bfb9299..db1c1b4 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java @@ -14,4 +14,6 @@ public interface MsgDao { public void addMsg(MsgModel model); public void updateMsg(MongoQuery mongoQuery, MsgModel model); + + void updateReadCount(MongoQuery id, MsgModel model); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseDaoImpl.java index f8e4995..e8e60ca 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseDaoImpl.java @@ -6,6 +6,7 @@ import com.lyms.platform.common.dao.BaseMongoDAOImpl; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.pojo.CourseModel; import com.lyms.platform.pojo.CourseTypeModel; +import com.lyms.platform.pojo.MsgModel; import org.springframework.stereotype.Repository; import java.util.List; @@ -34,4 +35,6 @@ public class CourseDaoImpl extends BaseMongoDAOImpl implements ICou public void updateCourse(MongoQuery mongoQuery,CourseModel model) { update(mongoQuery.convertToMongoQuery(),model); } + + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java index 6d4ad01..046ee5c 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java @@ -35,4 +35,5 @@ public class CourseEvalDaoImpl extends BaseMongoDAOImpl imp } + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java index e988a56..a430d33 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java @@ -33,4 +33,10 @@ public class MygDaoImpl extends BaseMongoDAOImpl implements MsgDao { public void updateMsg(MongoQuery mongoQuery, MsgModel model) { update(mongoQuery.convertToMongoQuery(),model); } + + @Override + public void updateReadCount(MongoQuery id, MsgModel model) { + update(id.convertToMongoQuery(),model); + } + } 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 ba0c9e2..f0a5a38 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 @@ -80,4 +80,10 @@ public class CourseEvalService { public void updateMsg(MsgModel model) { msgDao.updateMsg(new MongoQuery(new MongoCondition("id", model.getId(), MongoOper.IS)), model); } + + + public void updateMsgReadCount(MsgModel model) { + msgDao.updateReadCount(new MongoQuery(new MongoCondition("id", model.getId(), MongoOper.IS)), model); + } + } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseService.java index 1fa3e77..ae05178 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseService.java @@ -10,9 +10,11 @@ import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.pojo.CourseModel; import com.lyms.platform.pojo.MeasureInfoModel; +import com.lyms.platform.pojo.MsgModel; import com.lyms.platform.pojo.PersonModel; import com.lyms.platform.query.CourseQuery; import com.lyms.platform.query.MeasureInfoQuery; +import com.lyms.platform.query.MsgQuery; import com.lyms.platform.query.PersonModelQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -77,4 +79,5 @@ public class CourseService { } return null; } + } 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 afbba9a..bb2340c 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 @@ -39,10 +39,20 @@ public class MsgModel extends BaseModel { private String hospitalId; - private String readIds; - private String readCount; + + //阅读量 + private Integer readNum; + + public Integer getReadNum() { + return readNum; + } + + public void setReadNum(Integer readNum) { + this.readNum = readNum; + } + public String getReadCount() { return readCount; } @@ -51,13 +61,6 @@ public class MsgModel extends BaseModel { this.readCount = readCount; } - public String getReadIds() { - return readIds; - } - - public void setReadIds(String readIds) { - this.readIds = readIds; - } public String getHospitalId() { return hospitalId; 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 fabdd41..4dc521e 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 @@ -11,7 +11,7 @@ import java.util.Date; public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { //消息id - private Integer id; + private String id; //1.用户端APP 2. 医生端APP private Integer type; //消息内容 @@ -39,6 +39,16 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { private String readCount; + private Integer readNum; + + public Integer getReadNum() { + return readNum; + } + + public void setReadNum(Integer readNum) { + this.readNum = readNum; + } + public String getReadCount() { return readCount; } @@ -63,11 +73,11 @@ public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { this.hospitalId = hospitalId; } - public Integer getId() { + public String getId() { return id; } - public void setId(Integer id) { + public void setId(String id) { this.id = id; } 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 9e7f4d0..494d6a6 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 @@ -367,4 +367,34 @@ public class CourseController extends BaseController { HttpServletRequest request) { return courseFacade.getMsgList(); } + + + /** + * 消息详情 + * @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); + } + + + /** + * 未读数量 + * @param parentId + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getMsgCountById") + @ResponseBody + public String getMsgCountById(@RequestParam(required = false) String parentId, + HttpServletRequest request) { + return courseFacade.getMsgCountById(parentId); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientCourseController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientCourseController.java index c01c58c..b5aadd0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientCourseController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientCourseController.java @@ -178,4 +178,8 @@ public class PatientCourseController extends BaseController { return patientCourseFacade.getAppPatientCourseList(status,hospitalIds, patientId,keyword,page,limit); } + + } + + 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 ee85581..d21272e 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 @@ -15,6 +15,7 @@ import com.lyms.platform.common.utils.ExceptionUtils; import com.lyms.platform.common.utils.PropertiesUtils; import com.lyms.platform.operate.web.request.CourseRequest; import com.lyms.platform.operate.web.result.CourseResult; +import com.lyms.platform.operate.web.result.MsgMessageResult; import com.lyms.platform.operate.web.worker.CourseCountWorker; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.OrganizationService; @@ -1225,4 +1226,77 @@ public class CourseFacade { objectResponse.setErrormsg("成功"); return objectResponse; } + + public BaseResponse getMsgById(String msgId, String parentId) { + 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.isEmpty()){ + //如果没有值,直接添加数据 + model.setReadCount(parentId); + courseEvalService.updateMsgReadCount(model); + }else{ + // 判断 parentId 是否存在于 readCount 中 + if (!readCount.contains(parentId)) { + // 如果不存在,执行下面的逻辑 + // 继续添加 parentId,并设置到 model 中 + readCount += "," + parentId; + model.setReadCount(readCount); + + // 统计逗号数量,用于计算字段数量 + int commaCount = 0; + for (int i = 0; i < readCount.length(); i++) { + if (readCount.charAt(i) == ',') { + commaCount++; + } + } + + // 计算字段数量 + int fieldCount = commaCount + 1; + model.setReadNum(fieldCount); + + // 更新消息阅读量 + courseEvalService.updateMsgReadCount(model); + } + } + } + } + objectResponse.setData(models); + objectResponse.setPageInfo(msgQuery.getPageInfo()); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + public String getMsgCountById(String parentId) { + MsgQuery msgQuery = new MsgQuery(); + msgQuery.setYn(YnEnums.YES.getId()); + msgQuery.setNeed("true"); + List models = courseEvalService.queryMsgList(msgQuery); + // 初始化计数器 + int userIdCount = 0; + // 遍历 models 列表 + for (MsgModel model : models) { + // 获取当前消息的 readCount + String readCount = model.getReadCount(); + // 检查 readCount 是否包含当前登录人的 ID + if (readCount != null && readCount.contains(parentId)) { + // 使用正则表达式将 readCount 拆分为多个 ID,并计算包含当前登录人 ID 的数量 + String[] ids = readCount.split(","); + for (String id : ids) { + if (id.equals(parentId)) { + userIdCount++; + } + } + } + } + return String.valueOf(userIdCount); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientCourseFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientCourseFacade.java index 7d5ef2c..81d0d54 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientCourseFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientCourseFacade.java @@ -704,4 +704,5 @@ public class PatientCourseFacade { objectResponse.setErrormsg("成功"); return objectResponse; } + } \ No newline at end of file