diff --git a/platform-dal/src/main/java/com/lyms/platform/query/CourseQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/CourseQuery.java index 5954ef2..11138b3 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/CourseQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/CourseQuery.java @@ -73,7 +73,6 @@ public class CourseQuery extends BaseQuery implements IConvertToNativeQuery { private List hospitalIds; private Date courseEndTime; - private String keyword; @Override @@ -119,6 +118,12 @@ public class CourseQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.and("hospitalId", hospitalIds, MongoOper.IN); } + 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}); + } + Criteria c1 = null; if (null != courseTimeStart) { @@ -166,12 +171,11 @@ public class CourseQuery extends BaseQuery implements IConvertToNativeQuery { return condition.toMongoQuery(); } - @Override + public String getKeyword() { return keyword; } - @Override public void setKeyword(String keyword) { this.keyword = keyword; } 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 ba9e471..a58fe52 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 @@ -16,6 +16,7 @@ import com.lyms.platform.operate.web.result.CourseResult; import com.lyms.platform.operate.web.result.CourseTypeResult; import com.lyms.platform.operate.web.result.PatientCourseResult; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; @@ -358,6 +359,30 @@ public class PatientCourseFacade { hospitalIdList = Arrays.asList(hospitalIds.split(",")); } + if (StringUtils.isNotEmpty(keyword)) + { + List conditionHospitalIds = new ArrayList<>(); + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setNeed("true"); + organizationQuery.setPage(0); + organizationQuery.setLimit(100); + organizationQuery.setSort("modified desc"); + organizationQuery.setYn(YnEnums.YES.getId()); + organizationQuery.setKeyword(keyword); + List organizations = organizationService.queryHospitals(organizationQuery); + if (CollectionUtils.isNotEmpty(organizations)) + { + for (Organization org : organizations) + { + conditionHospitalIds.add(String.valueOf(org.getId())); + } + } + if (CollectionUtils.isNotEmpty(conditionHospitalIds)) + { + hospitalIdList.retainAll(conditionHospitalIds); + } + } + CourseQuery query = new CourseQuery(); query.setStatus(status); query.setYn(YnEnums.YES.getId());