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 new file mode 100644 index 0000000..eee16f3 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ICourseEvalDao.java @@ -0,0 +1,21 @@ +package com.lyms.platform.biz.dal; + + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.CourseEvaluateModel; +import com.lyms.platform.pojo.CourseModel; + +import java.util.List; + +/** + */ +public interface ICourseEvalDao { + + public List queryCourseEvalList(MongoQuery query); + + public int queryCourseEvalListCount(MongoQuery mongoQuery); + + 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/impl/CourseEvalDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java new file mode 100644 index 0000000..99fd9c8 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/CourseEvalDaoImpl.java @@ -0,0 +1,35 @@ +package com.lyms.platform.biz.dal.impl; + +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 org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2018-01-10. + */ +@Repository("courseEvalDao") +public class CourseEvalDaoImpl extends BaseMongoDAOImpl implements ICourseEvalDao { + @Override + public List queryCourseEvalList(MongoQuery query) { + return find(query.convertToMongoQuery()); + } + + @Override + public int queryCourseEvalListCount(MongoQuery mongoQuery) { + return (int)count(mongoQuery.convertToMongoQuery()); + } + + @Override + public void addCourseEval(CourseEvaluateModel model) { + save(model); + } + + @Override + 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/service/CourseEvalService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java new file mode 100644 index 0000000..193793f --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/CourseEvalService.java @@ -0,0 +1,62 @@ +package com.lyms.platform.biz.service; + + +import com.lyms.platform.biz.dal.ICourseEvalDao; +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.query.CourseEvalQuery; +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.stereotype.Service; + +import java.util.List; + + +@Service +public class CourseEvalService { + + @Autowired + private ICourseEvalDao courseEvalDao; + + public List queryCourseEvalList(CourseEvalQuery courseEvalQuery) { + + MongoQuery query = courseEvalQuery.convertToQuery(); + if (StringUtils.isNotEmpty(courseEvalQuery.getNeed())) { + courseEvalQuery.mysqlBuild(courseEvalDao.queryCourseEvalListCount(courseEvalQuery.convertToQuery())); + query.start(courseEvalQuery.getOffset()).end(courseEvalQuery.getLimit()); + } + return courseEvalDao.queryCourseEvalList(query.addOrder(Sort.Direction.DESC, "modified")); + } + + + public int queryCourseEvalCount(CourseEvalQuery courseEvalQuery) { + return courseEvalDao.queryCourseEvalListCount(courseEvalQuery.convertToQuery()); + } + + + public void addCourseEval(CourseEvaluateModel model) { + courseEvalDao.addCourseEval(model); + } + + public void updateCourseEval(CourseEvaluateModel model) { + courseEvalDao.updateCourseEval(new MongoQuery(new MongoCondition("id", model.getId(), MongoOper.IS)), model); + } + + public CourseEvaluateModel getCourseEvalById(String id) { + CourseEvalQuery query = new CourseEvalQuery(); + query.setYn(YnEnums.YES.getId()); + query.setId(id); + List list = queryCourseEvalList(query); + if (CollectionUtils.isNotEmpty(list)) + { + return list.get(0); + } + return null; + } + +} diff --git a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java index ba99489..1b63e20 100644 --- a/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java +++ b/platform-dal/src/main/java/com/lyms/platform/beans/SerialIdEnum.java @@ -71,6 +71,7 @@ public enum SerialIdEnum { CancerScreeningModel("CancerScreeningModel", 97531039591L), CourseModel("CourseModel", 97531029990L), + CourseEvaluateModel("CourseEvaluateModel", 97531059990L), CourseTypeModel("CourseTypeModel", 97831039590L), PatientCourseModel("PatientCourseModel", 92531039591L), ModularFunctionConfigModel("ModularFunctionConfigModel", 97531039991L), diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/CourseEvaluateModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/CourseEvaluateModel.java new file mode 100644 index 0000000..09b2288 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/CourseEvaluateModel.java @@ -0,0 +1,153 @@ +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; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 课程评分 + * Created by Administrator on 2018-10-18. + */ +@Document(collection="lyms_course_eval") +public class CourseEvaluateModel extends BaseModel { + + private static final long serialVersionUID = SerialIdEnum.CourseModel.getCid(); + + private String id; + //课程id + private String courseId; + //课程类型评价 + private List courseTypeEvaluates; + + //课程医生评价 + private List courseDocEvaluates; + + //课程类型评分 + private Integer courseTypeSocre; + //课程医生评分 + private Integer courseDocSocre; + + //评价日期 + private Date evaluateDate; + + //孕妇id + private String patientId; + //医院id + private String hospitalId; + + //孕妇预约课程id + private String patientCourseId; + + private Integer yn; + + private Date modified; + private Date created; + + 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 getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getPatientId() { + return patientId; + } + + public void setPatientId(String patientId) { + this.patientId = patientId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCourseId() { + return courseId; + } + + public void setCourseId(String courseId) { + this.courseId = courseId; + } + + public List getCourseTypeEvaluates() { + return courseTypeEvaluates; + } + + public void setCourseTypeEvaluates(List courseTypeEvaluates) { + this.courseTypeEvaluates = courseTypeEvaluates; + } + + public List getCourseDocEvaluates() { + return courseDocEvaluates; + } + + public void setCourseDocEvaluates(List courseDocEvaluates) { + this.courseDocEvaluates = courseDocEvaluates; + } + + public Integer getCourseTypeSocre() { + return courseTypeSocre; + } + + public void setCourseTypeSocre(Integer courseTypeSocre) { + this.courseTypeSocre = courseTypeSocre; + } + + public Integer getCourseDocSocre() { + return courseDocSocre; + } + + public void setCourseDocSocre(Integer courseDocSocre) { + this.courseDocSocre = courseDocSocre; + } + + public Date getEvaluateDate() { + return evaluateDate; + } + + public void setEvaluateDate(Date evaluateDate) { + this.evaluateDate = evaluateDate; + } + + public String getPatientCourseId() { + return patientCourseId; + } + + public void setPatientCourseId(String patientCourseId) { + this.patientCourseId = patientCourseId; + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/query/CourseEvalQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/CourseEvalQuery.java new file mode 100644 index 0000000..3e16b96 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/CourseEvalQuery.java @@ -0,0 +1,439 @@ +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 org.springframework.data.mongodb.core.query.Criteria; + +import java.util.Date; +import java.util.List; + +/** + * 孕妇课程评分查询 + */ +public class CourseEvalQuery extends BaseQuery implements IConvertToNativeQuery { + + private String id; + + //课程名称 + private String courseName; + + //课程主讲 + private String courseSpeaker; + + //课程地址 + private String courseAddress; + + //课程时间 + private Date courseTimeStart; + + private Date courseTimeEnd; + + //课程发布时间 + private Date publishTimeStart; + + private Date publishTimeEnd; + + //时长 + private String timeLong; + + //上线人数 + private Integer limitNum; + + //报名人数 + private Integer enrolmentNum; + + //签到人数 + private Integer signNum; + + //状态 1待发布,2 已发布,3已结束 + private Integer status; + + //课程描述 + private String courseDesc; + //课程备注 + private String courseRemark; + + //课程类别id + private String courseTypeId; + + //创建人id + private String createUserId; + + //发布人id + private String publishUserId; + + private Date createdStart; + private Date createdEnd; + + private Date modifiedStart; + private Date modifiedEnd; + + private Integer yn; + + private String hospitalId; + private List hospitalIds; + + private Date courseEndTime; + private String keyword; + + private boolean isSend; + + @Override + public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance(); + if (null != id) { + condition = condition.and("id", id, MongoOper.IS); + } + + if (null != yn) { + condition = condition.and("yn", yn, MongoOper.IS); + } + + if (null != courseName) { + condition = condition.and("courseName", courseName, MongoOper.IS); + } + + + if (null != courseTypeId) { + condition = condition.and("courseTypeId", courseTypeId, MongoOper.IS); + } + + + if (null != courseSpeaker) { + condition = condition.and("courseSpeaker", courseSpeaker, MongoOper.IS); + } + + + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } + + + if (null != createUserId) { + condition = condition.and("createUserId", createUserId, MongoOper.IS); + } + + if (null != status) { + condition = condition.and("status", status, MongoOper.IS); + } + + if (isSend) { + condition = condition.and("isSend", false, MongoOper.EXISTS); + } + + if (null != courseEndTime) { + condition = condition.and("courseEndTime", courseEndTime, MongoOper.LTE); + } + + if (null != keyword) + { + MongoCondition con1 = MongoCondition.newInstance("courseSpeaker", keyword, MongoOper.LIKE); + MongoCondition con = MongoCondition.newInstance("courseName", keyword, MongoOper.LIKE); + condition = condition.orCondition(new MongoCondition[]{con1, con}); + } + + if (null != hospitalIds && hospitalIds.size() > 0) { + condition = condition.and("hospitalId", hospitalIds, MongoOper.IN); + } + + +// if (null != keyword && null != hospitalIds && hospitalIds.size() > 0) { +// MongoCondition con1 = MongoCondition.newInstance("courseSpeaker", keyword, MongoOper.LIKE); +// MongoCondition con = MongoCondition.newInstance("courseName", keyword, MongoOper.LIKE); +// MongoCondition condition2 = MongoCondition.newInstance("hospitalId", hospitalIds, MongoOper.IN); +// condition = condition.orCondition(new MongoCondition[]{con1, con,condition2}); +// } +// else if (null != keyword) +// { +// MongoCondition con1 = MongoCondition.newInstance("courseSpeaker", keyword, MongoOper.LIKE); +// MongoCondition con = MongoCondition.newInstance("courseName", keyword, MongoOper.LIKE); +// condition = condition.orCondition(new MongoCondition[]{con1, con}); +// } +// else if (null != hospitalIds && hospitalIds.size() > 0) { +// condition = condition.and("hospitalId", hospitalIds, MongoOper.IN); +// } + + Criteria c1 = null; + + if (null != courseTimeStart) { + if (null != c1) { + c1 = c1.and("courseTime").gte(courseTimeStart); + } else { + c1 = Criteria.where("courseTime").gte(courseTimeStart); + } + } + + if (null != courseTimeEnd) { + if (null != c1) { + c1 = c1.lte(courseTimeEnd); + } else { + c1 = Criteria.where("courseTime").lte(courseTimeEnd); + } + } + + + if (null != publishTimeStart) { + if (null != c1) { + c1 = c1.and("publishTime").gte(publishTimeStart); + } else { + c1 = Criteria.where("publishTime").gte(publishTimeStart); + } + } + + if (null != publishTimeEnd) { + if (null != c1) { + c1 = c1.lte(publishTimeEnd); + } else { + c1 = Criteria.where("publishTime").lte(publishTimeEnd); + } + } + + if (null != createdStart) { + if (null != c1) { + c1 = c1.and("created").gte(createdStart); + } else { + c1 = Criteria.where("created").gte(createdStart); + } + } + + if (null != createdEnd) { + if (null != c1) { + c1 = c1.lte(createdEnd); + } else { + c1 = Criteria.where("created").lte(createdEnd); + } + } + + if (null != c1) { + condition = condition.andCondition(new MongoCondition(c1)); + } + return condition.toMongoQuery(); + } + + public Date getPublishTimeStart() { + return publishTimeStart; + } + + public void setPublishTimeStart(Date publishTimeStart) { + this.publishTimeStart = publishTimeStart; + } + + public Date getPublishTimeEnd() { + return publishTimeEnd; + } + + public void setPublishTimeEnd(Date publishTimeEnd) { + this.publishTimeEnd = publishTimeEnd; + } + + public boolean isSend() { + return isSend; + } + + public void setIsSend(boolean isSend) { + this.isSend = isSend; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public List getHospitalIds() { + return hospitalIds; + } + + public void setHospitalIds(List hospitalIds) { + this.hospitalIds = hospitalIds; + } + + public Date getCourseEndTime() { + return courseEndTime; + } + + public void setCourseEndTime(Date courseEndTime) { + this.courseEndTime = courseEndTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getCourseName() { + return courseName; + } + + public void setCourseName(String courseName) { + this.courseName = courseName; + } + + public String getCourseSpeaker() { + return courseSpeaker; + } + + public void setCourseSpeaker(String courseSpeaker) { + this.courseSpeaker = courseSpeaker; + } + + public String getCourseAddress() { + return courseAddress; + } + + public void setCourseAddress(String courseAddress) { + this.courseAddress = courseAddress; + } + + public Date getCourseTimeStart() { + return courseTimeStart; + } + + public void setCourseTimeStart(Date courseTimeStart) { + this.courseTimeStart = courseTimeStart; + } + + public Date getCourseTimeEnd() { + return courseTimeEnd; + } + + public void setCourseTimeEnd(Date courseTimeEnd) { + this.courseTimeEnd = courseTimeEnd; + } + + public String getTimeLong() { + return timeLong; + } + + public void setTimeLong(String timeLong) { + this.timeLong = timeLong; + } + + public Integer getLimitNum() { + return limitNum; + } + + public void setLimitNum(Integer limitNum) { + this.limitNum = limitNum; + } + + public Integer getEnrolmentNum() { + return enrolmentNum; + } + + public void setEnrolmentNum(Integer enrolmentNum) { + this.enrolmentNum = enrolmentNum; + } + + public Integer getSignNum() { + return signNum; + } + + public void setSignNum(Integer signNum) { + this.signNum = signNum; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getCourseDesc() { + return courseDesc; + } + + public void setCourseDesc(String courseDesc) { + this.courseDesc = courseDesc; + } + + public String getCourseRemark() { + return courseRemark; + } + + public void setCourseRemark(String courseRemark) { + this.courseRemark = courseRemark; + } + + public String getCourseTypeId() { + return courseTypeId; + } + + public void setCourseTypeId(String courseTypeId) { + this.courseTypeId = courseTypeId; + } + + public String getCreateUserId() { + return createUserId; + } + + public void setCreateUserId(String createUserId) { + this.createUserId = createUserId; + } + + public String getPublishUserId() { + return publishUserId; + } + + public void setPublishUserId(String publishUserId) { + this.publishUserId = publishUserId; + } + + public Date getCreatedStart() { + return createdStart; + } + + public void setCreatedStart(Date createdStart) { + this.createdStart = createdStart; + } + + public Date getCreatedEnd() { + return createdEnd; + } + + public void setCreatedEnd(Date createdEnd) { + this.createdEnd = createdEnd; + } + + public Date getModifiedStart() { + return modifiedStart; + } + + public void setModifiedStart(Date modifiedStart) { + this.modifiedStart = modifiedStart; + } + + public Date getModifiedEnd() { + return modifiedEnd; + } + + public void setModifiedEnd(Date modifiedEnd) { + this.modifiedEnd = modifiedEnd; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } +} 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 1a03a27..4c79a85 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 @@ -7,6 +7,7 @@ import com.lyms.platform.common.base.LoginContext; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -114,8 +115,8 @@ public class CourseController extends BaseController { @RequestParam(required = false) String courseTime, HttpServletRequest request) { - return courseFacade.getCoureseList(courseTypeId, status,courseName,courseSpeaker, - createdTime, courseTime, page, limit, getUserId(request),"true"); + return courseFacade.getCoureseList(courseTypeId, status, courseName, courseSpeaker, + createdTime, courseTime, page, limit, getUserId(request), "true"); } @@ -188,6 +189,21 @@ public class CourseController extends BaseController { @TokenRequired public BaseResponse getCourseCount(HttpServletRequest request, @RequestParam(required = false) String time) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return courseFacade.getCourseCount(time,loginState.getId()); + return courseFacade.getCourseCount(time, loginState.getId()); + } + + + /** + * 添加课程评价 + * @param model + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/addCoureseEval") + @ResponseBody + public BaseResponse addCoureseEval(@RequestBody CourseEvaluateModel model, + HttpServletRequest request) { + + return courseFacade.addCoureseEval(model); } } 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 b597c73..e26b299 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 @@ -2,6 +2,7 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.beans.MsgRequest; +import com.lyms.platform.biz.service.CourseEvalService; import com.lyms.platform.biz.service.CourseService; import com.lyms.platform.biz.service.CourseTypeService; import com.lyms.platform.biz.service.PatientCourseService; @@ -66,6 +67,9 @@ public class CourseFacade { private SmsConfigFacade smsConfigFacade; @Autowired + private CourseEvalService courseEvalService; + + @Autowired @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; @@ -668,4 +672,16 @@ public class CourseFacade { objectResponse.setErrormsg("成功"); return objectResponse; } + + public BaseResponse addCoureseEval(CourseEvaluateModel model) { + BaseResponse objectResponse = new BaseResponse(); + model.setCreated(new Date()); + model.setModified(new Date()); + model.setEvaluateDate(new Date()); + model.setYn(YnEnums.YES.getId()); + courseEvalService.addCourseEval(model); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseEvalRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseEvalRequest.java new file mode 100644 index 0000000..0af996b --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/CourseEvalRequest.java @@ -0,0 +1,35 @@ +package com.lyms.platform.operate.web.request; + + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * Created by Administrator on 2018-02-05. + */ +public class CourseEvalRequest { + + private String id; + //课程id + private String courseId; + //课程类型评价 + private List courseTypeEvaluates; + + //课程医生评价 + private List courseDocEvaluates; + + //课程类型评分 + private Integer courseTypeSocre; + //课程医生评分 + private Integer courseDocSocre; + + //孕妇id + private String patientId; + //医院id + private String hospitalId; + + //孕妇预约课程id + private String patientCourseId; + +}