From a569bee108e25295e5f836dcf636ae3ce86adb37 Mon Sep 17 00:00:00 2001 From: gaohan <1910974473@qq.com> Date: Sat, 11 May 2024 09:52:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91PC=E7=AB=AF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=A8=A1=E5=9D=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lyms/platform/biz/dal/MsgDao.java | 17 ++ .../platform/biz/dal/impl/CourseEvalDaoImpl.java | 3 + .../com/lyms/platform/biz/dal/impl/MygDaoImpl.java | 36 ++++ .../platform/biz/service/CourseEvalService.java | 21 +++ .../java/com/lyms/platform/pojo/CourseModel.java | 20 +++ .../main/java/com/lyms/platform/pojo/MsgModel.java | 157 ++++++++++++++++++ .../java/com/lyms/platform/query/MsgQuery.java | 184 +++++++++++++++++++++ .../operate/web/controller/CourseController.java | 86 +++++++++- .../platform/operate/web/facade/CourseFacade.java | 92 +++++++++++ 9 files changed, 615 insertions(+), 1 deletion(-) create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java 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 new file mode 100644 index 0000000..bfb9299 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/MsgDao.java @@ -0,0 +1,17 @@ +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; + +public interface MsgDao { + public int queryMsgListCount(MongoQuery mongoQuery); + + public List queryMsgList(MongoQuery query); + + public void addMsg(MsgModel model); + + public void updateMsg(MongoQuery mongoQuery, MsgModel 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 99fd9c8..6d4ad01 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 @@ -4,6 +4,7 @@ import com.lyms.platform.biz.dal.ICourseEvalDao; import com.lyms.platform.common.dao.BaseMongoDAOImpl; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.pojo.CourseEvaluateModel; +import com.lyms.platform.pojo.MsgModel; import org.springframework.stereotype.Repository; import java.util.List; @@ -32,4 +33,6 @@ public class CourseEvalDaoImpl extends BaseMongoDAOImpl imp public void updateCourseEval(MongoQuery mongoQuery,CourseEvaluateModel model) { update(mongoQuery.convertToMongoQuery(),model); } + + } 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 new file mode 100644 index 0000000..e988a56 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MygDaoImpl.java @@ -0,0 +1,36 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.ICourseEvalDao; +import com.lyms.platform.biz.dal.MsgDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.CourseEvaluateModel; +import com.lyms.platform.pojo.CourseModel; +import com.lyms.platform.pojo.MsgModel; +import org.springframework.stereotype.Repository; + +import java.util.List; +@Repository("msgDao") + +public class MygDaoImpl extends BaseMongoDAOImpl implements MsgDao { + + @Override + public int queryMsgListCount(MongoQuery mongoQuery) { + return (int)count(mongoQuery.convertToMongoQuery()); + } + + @Override + public List queryMsgList(MongoQuery query) { + return find(query.convertToMongoQuery()); + } + + @Override + public void addMsg(MsgModel model) { + save(model); + } + + @Override + public void updateMsg(MongoQuery mongoQuery, MsgModel model) { + update(mongoQuery.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 09fd875..ba0c9e2 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 @@ -2,12 +2,15 @@ package com.lyms.platform.biz.service; import com.lyms.platform.biz.dal.ICourseEvalDao; +import com.lyms.platform.biz.dal.MsgDao; 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.YnEnums; import com.lyms.platform.pojo.CourseEvaluateModel; +import com.lyms.platform.pojo.MsgModel; import com.lyms.platform.query.CourseEvalQuery; +import com.lyms.platform.query.MsgQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -23,6 +26,8 @@ public class CourseEvalService { @Autowired private ICourseEvalDao courseEvalDao; + @Autowired + private MsgDao msgDao; public List queryCourseEvalList(CourseEvalQuery courseEvalQuery) { MongoQuery query = courseEvalQuery.convertToQuery(); @@ -59,4 +64,20 @@ public class CourseEvalService { return null; } + public List queryMsgList(MsgQuery msgQuery) { + MongoQuery query = msgQuery.convertToQuery(); + if (StringUtils.isNotEmpty(msgQuery.getNeed())) { + msgQuery.mysqlBuild(msgDao.queryMsgListCount(msgQuery.convertToQuery())); + query.start(msgQuery.getOffset()).end(msgQuery.getLimit()); + } + return msgDao.queryMsgList(query.addOrder(Sort.Direction.DESC, "created")); + } + + public void addMsg(MsgModel model) { + msgDao.addMsg(model); + } + + public void updateMsg(MsgModel model) { + msgDao.updateMsg(new MongoQuery(new MongoCondition("id", model.getId(), MongoOper.IS)), 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 31c7f0a..fb6f887 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 @@ -79,6 +79,26 @@ public class CourseModel extends BaseModel { //发布时间 private Date publishTime; + //视频 + private String courseVideo; + + private byte[][] chunks; + + public byte[][] getChunks() { + return chunks; + } + + public void setChunks(byte[][] chunks) { + this.chunks = chunks; + } + + public String getCourseVideo() { + return courseVideo; + } + + public void setCourseVideo(String courseVideo) { + this.courseVideo = courseVideo; + } public Date getPublishTime() { return publishTime; 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 new file mode 100644 index 0000000..afbba9a --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MsgModel.java @@ -0,0 +1,157 @@ +package com.lyms.platform.pojo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.lyms.platform.beans.SerialIdEnum; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Document(collection="lyms_msg") +public class MsgModel 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; + // + private Integer oarentId; + //标题0.医生停诊通知 1.检查停诊通知 2.医院放假通知 + private Integer title; + + private String hospitalId; + + private String readIds; + + private String readCount; + + public String getReadCount() { + return readCount; + } + + public void setReadCount(String readCount) { + this.readCount = readCount; + } + + public String getReadIds() { + return readIds; + } + + public void setReadIds(String readIds) { + this.readIds = readIds; + } + + 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 getOarentId() { + return oarentId; + } + + public void setOarentId(Integer oarentId) { + this.oarentId = oarentId; + } + + 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 new file mode 100644 index 0000000..fabdd41 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/MsgQuery.java @@ -0,0 +1,184 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +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 java.util.Date; + +public class MsgQuery extends BaseQuery implements IConvertToNativeQuery { + + //消息id + private Integer id; + //1.用户端APP 2. 医生端APP + private Integer type; + //消息内容 + private String content; + //发布人id + private Integer publishId; + //发布人名称 + private String publishName; + //1.有效 2.无效 + private Integer yn; + //最后修改时间 + private Date modified; + //创建时间 + private Date created; + //状态 0.已读 1.未读 + private Integer state; + // + private Integer parentId; + //标题0.医生停诊通知 1.检查停诊通知 2.医院放假通知 + private Integer title; + + private String hospitalId; + + private String readIds; + + private String readCount; + + public String getReadCount() { + return readCount; + } + + public void setReadCount(String readCount) { + this.readCount = readCount; + } + + public String getReadIds() { + return readIds; + } + + public void setReadIds(String readIds) { + this.readIds = readIds; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public Integer getId() { + return id; + } + + public void setId(Integer 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 Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public Integer getTitle() { + return title; + } + + public void setTitle(Integer title) { + this.title = title; + } + + @Override + public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance(); + if(null != id){ + condition = condition.and("id", id, MongoOper.IS); + } + if(null != type){ + condition = condition.and("type", type, MongoOper.IS); + } + if(null != content){ + condition = condition.and("content", content, MongoOper.IS); + }if(null != publishId){ + condition = condition.and("publishId", publishId, MongoOper.IS); + }if(null != publishName){ + condition = condition.and("publishName", publishName, MongoOper.IS); + }if(null != yn){ + condition = condition.and("yn", yn, MongoOper.IS); + }if(null != modified){ + condition = condition.and("modified", modified, MongoOper.IS); + }if(null != created){ + condition = condition.and("created", created, MongoOper.IS); + }if(null != state){ + condition = condition.and("state", state, MongoOper.IS); + }if(null != parentId){ + condition = condition.and("parentId", parentId, MongoOper.IS); + }if(null != title){ + condition = condition.and("title", title, 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 b0b31d6..acd899f 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 @@ -9,11 +9,23 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.operate.web.facade.CourseFacade; import com.lyms.platform.operate.web.request.CourseRequest; import com.lyms.platform.pojo.CourseEvaluateModel; +import com.lyms.platform.pojo.MsgModel; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; + +import org.springframework.data.mongodb.gridfs.GridFsOperations; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; - +import org.springframework.web.multipart.MultipartFile; +import org.bson.types.ObjectId; import javax.servlet.http.HttpServletRequest; +import javax.swing.text.Document; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import org.springframework.http.ResponseEntity; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; /** @@ -274,5 +286,77 @@ public class CourseController extends BaseController { return courseFacade.queryCourseEvalById(id); } + /* + * 视频上传 + * + * */ + @RequestMapping(method = RequestMethod.POST, value = "/upload") + @ResponseBody + @TokenRequired + public String upload(@RequestParam("file") MultipartFile file) { + if (file.isEmpty()) { + return "Please select a file to upload."; + } + try { + byte[] bytes = file.getBytes(); + String uploadDir = "F:/"; + File uploadedFile = new File(uploadDir + file.getOriginalFilename()); + file.transferTo(uploadedFile); + return "File uploaded successfully!"; + } catch (IOException e) { + e.printStackTrace(); + return "File upload failed!"; + } + } + + + /* + * 消息通知列表 + * */ + @RequestMapping(method = RequestMethod.GET, value = "/msgList") + @ResponseBody + @TokenRequired + public BaseResponse msgList(@RequestParam Integer page, + @RequestParam Integer limit, + HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return courseFacade.msgList(page,limit,loginState.getId()); + } + + /* + * 发布消息 + * */ + @RequestMapping(method = RequestMethod.POST, value = "/msgAdd") + @ResponseBody + @TokenRequired + public BaseResponse msgAdd(@RequestBody MsgModel model, HttpServletRequest request) { + return courseFacade.msgAdd(model,getUserId(request)); + } + + /* + * 编辑消息 + * */ + @RequestMapping(method = RequestMethod.POST, value = "/msgUpdate") + @ResponseBody + @TokenRequired + public BaseResponse msgUpdate(@RequestBody MsgModel model, + HttpServletRequest request) { + return courseFacade.msgUpdate(model,getUserId(request)); + } + + /** + * 删除消息 + * @param request + * @param id + * @return + */ + @RequestMapping(method = RequestMethod.DELETE, value = "/deleteMsgById/{id}") + @ResponseBody + @TokenRequired + public BaseResponse deleteMsgById(HttpServletRequest request, @PathVariable(value = "id") String id) { + return courseFacade.deleteMsgById(id); + } + + } 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 dc6c805..f7a6fce 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 @@ -4,6 +4,7 @@ package com.lyms.platform.operate.web.facade; import com.google.common.base.Strings; import com.lyms.platform.beans.MsgRequest; import com.lyms.platform.biz.service.*; +import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseListResponse; @@ -20,16 +21,27 @@ 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.BasicDBObject; +import com.mongodb.DBObject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; 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.Update; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.stereotype.Service; +import org.springframework.data.mongodb.gridfs.GridFsTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.Future; @@ -72,6 +84,10 @@ public class CourseFacade { @Autowired private PatientsService patientsService; + + @Autowired + private MongoTemplate mongoTemplate; + @Autowired @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; @@ -1121,4 +1137,80 @@ public class CourseFacade { } return new BaseObjectResponse().setData(results).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); } + + public BaseResponse msgList(Integer page, Integer limit,Integer userId) { + String hospitalId = autoMatchFacade.getHospitalId(userId); + MsgQuery msgQuery = new MsgQuery(); + msgQuery.setYn(YnEnums.YES.getId()); + msgQuery.setNeed("true"); + msgQuery.setLimit(limit); + msgQuery.setPage(page); + msgQuery.setHospitalId(hospitalId); + BaseListResponse objectResponse = new BaseListResponse(); + List models = courseEvalService.queryMsgList(msgQuery); + objectResponse.setData(models); + objectResponse.setPageInfo(msgQuery.getPageInfo()); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + public BaseResponse msgAdd(MsgModel model,Integer userId) { + + + BaseResponse objectResponse = new BaseResponse(); + + Date day=new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + model.setCreated(df.format(day)); + model.setState(0); + model.setYn(YnEnums.YES.getId()); + //发布人id + model.setPublishId(userId); + model.setHospitalId(model.getHospitalId()); + courseEvalService.addMsg(model); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + + public BaseResponse msgUpdate(MsgModel model,Integer userId) { + BaseResponse objectResponse = new BaseResponse(); + 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; + } + + public BaseResponse deleteMsgById(String id) { + BaseResponse objectResponse = new BaseResponse(); + Date day=new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String format = df.format(day); + + if (StringUtils.isNotEmpty(id)) + { + MsgModel model = new MsgModel(); + model.setYn(YnEnums.NO.getId()); + model.setId(id); + model.setModified(format); + courseEvalService.updateMsg(model); + } + + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } + } \ No newline at end of file -- 1.8.3.1