From 56403057df4851688184eaf38df39a07a2c66841 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 15:16:17 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/api/CourseManageApi.java | 2 + .../xboe/module/course/dto/CourseFullDto.java | 5 ++ .../com/xboe/school/api/PortalConsoleApi.java | 68 +++++++++---------- 3 files changed, 40 insertions(+), 35 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java index 4ea652bb..6c40a482 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseManageApi.java @@ -389,6 +389,8 @@ public class CourseManageApi extends ApiBaseController{ return badRequest("请选择资源归属"); } + //如果是默认管理员,就直接发布,不经过审核 + if(dto.getAuditUser()==null) { return badRequest("HRBP审核信息错误"); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/CourseFullDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/CourseFullDto.java index aa23a75e..f9094633 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/CourseFullDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/dto/CourseFullDto.java @@ -57,6 +57,11 @@ public class CourseFullDto { */ private CourseAuditUser auditUser; + /** + * 管理员类型 + */ + private Integer adminType; + /** * 生成课程的目录树 * @return diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/api/PortalConsoleApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/api/PortalConsoleApi.java index ab4335bd..76db321b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/api/PortalConsoleApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/api/PortalConsoleApi.java @@ -67,11 +67,11 @@ public class PortalConsoleApi extends ApiBaseController{ return error("账号错误,无此账号"); } -// UserData userData = outsideDataService.getUserInfoByUserId(null); -// if(userData==null) { -// log.error("通过api获取用用户信息错误【"+getCurrent().getAccountId()+"】对应的用户"); -// return error("未能获取当前用户信息"); -// } + UserData userData = outsideDataService.getUserInfoByUserId(null); + if(userData==null) { + log.error("通过api获取用用户信息错误【"+getCurrent().getAccountId()+"】对应的用户"); + return error("未能获取当前用户信息"); + } User user = userService.get(getCurrent().getAccountId()); Organization org = null; @@ -87,44 +87,42 @@ public class PortalConsoleApi extends ApiBaseController{ } } //检查是否是教师,并计算用户的类型,修改于220507 - Teacher t = teacherService.get(account.getId()); - int utype=1,ttype=0; - //本地判断是否是管理员 - if(user.getUserType()!=null && user.getUserType()==3) { - utype=3; - } - //判断是否是老师 - if(t!=null && (t.getDeleted()==null || !t.getDeleted())) { - ttype=2; - } - if(utype==3) { - if(ttype==2) { - utype=5;//是管理员,又是教师 - } - }else { - if(ttype==2) { - utype=2; - } - } - -// int utype=1;//仅仅是学员 -// if(userData.getTeacher()) { -// utype=2; +// Teacher t = teacherService.get(account.getId()); +// int utype=1,ttype=0; +// //本地判断是否是管理员 +// if(user.getUserType()!=null && user.getUserType()==3) { +// utype=3; // } -// if(userData.getAdminType()>0) { -// if(utype==2) { +// //判断是否是老师 +// if(t!=null && (t.getDeleted()==null || !t.getDeleted())) { +// ttype=2; +// } +// if(utype==3) { +// if(ttype==2) { // utype=5;//是管理员,又是教师 -// }else { -// utype=3; +// } +// }else { +// if(ttype==2) { +// utype=2; // } // } - + int utype=1;//仅仅是学员 + if(userData.getTeacher()) { + utype=2; + } + if(userData.getAdminType()>0) { + if(utype==2) { + utype=5;//是管理员,又是教师 + }else { + utype=3; + } + } map.put("aid",account.getId()); map.put("sysId",user.getSysId()); - //map.put("adminType",userData.getAdminType());//管理员类型,1表默认管理员,2表非默认管理员,0表不是管理员 - map.put("adminType",0); + map.put("adminType",userData.getAdminType());//管理员类型,1表默认管理员,2表非默认管理员,0表不是管理员 + //map.put("adminType",0); map.put("companyId",user.getCompanyId()); map.put("name",user.getName()); map.put("sex",user.getGender()); From 193c56c0187d18b16e1d6e367c38b1e7189133d9 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 15:44:51 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/elasticsearc/CourseElasticsearchImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java index 47ae4aec..6970c402 100644 --- a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java +++ b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java @@ -373,6 +373,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ if(StringUtils.isNotBlank(params.getKeywords())) { + String words=QueryParser.escape(params.getKeywords()); // System.out.println(params.getKeywords()); @@ -380,9 +381,10 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ BoolQueryBuilder keywordQuery = QueryBuilders.boolQuery(); keywordQuery.should(QueryBuilders.wildcardQuery("name", "*"+words+"*").boost(9f)); + keywordQuery.should(QueryBuilders.wildcardQuery("teacher", "*"+words+"*").boost(7f)); //keywordQuery.should(QueryBuilders.queryStringQuery(words).field("name", 9f));//用此方法无法查询出有转义符的处理 //keywordQuery.should(QueryBuilders.queryStringQuery(words).field("teacher", 8f)); - keywordQuery.should(QueryBuilders.wildcardQuery("teacher", "*"+words+"*").boost(7f)); + keywordQuery.minimumShouldMatch(1); boolQuery.must(keywordQuery); //boolQuery.must(QueryBuilders.wildcardQuery("name", "*"+params.getKeywords()+"*").boost(9f)); From 20966f092154917a1cfb28497abbe815457a683c Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 16:57:59 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/elasticsearc/CourseElasticsearchImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java index 6970c402..2113f0e8 100644 --- a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java +++ b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java @@ -439,7 +439,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ timeLimit.gte(second); boolQuery.filter(timeLimit); } - + System.out.println(boolQuery.toString()); return boolQuery; } @@ -623,6 +623,8 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ List list=new ArrayList<>(); ObjectMapper mapper=new ObjectMapper(); + + SearchResponse response = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); SearchHits hits = response.getHits(); From ccb094851639c5b1dbbb26e1e82e7a0c1decaa14 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 16:58:47 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/elasticsearc/CourseElasticsearchImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java index 2113f0e8..227944a4 100644 --- a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java +++ b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java @@ -439,7 +439,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ timeLimit.gte(second); boolQuery.filter(timeLimit); } - System.out.println(boolQuery.toString()); + //System.out.println(boolQuery.toString()); return boolQuery; } From 06831f18af0b22a507aaf3162291d6348c4d2028 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 30 Dec 2022 17:22:01 +0800 Subject: [PATCH 5/5] =?UTF-8?q?ES=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../course/service/ICourseFullTextSearch.java | 3 +++ .../elasticsearc/CourseElasticsearchImpl.java | 23 ++++++++++++++++++- .../module/course/api/CourseFullTextApi.java | 3 +++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java b/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java index 545cc310..15acbac8 100644 --- a/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java +++ b/modules/boe-module-course/src/main/java/com/xboe/module/course/service/ICourseFullTextSearch.java @@ -40,6 +40,9 @@ public interface ICourseFullTextSearch { */ boolean checkHas(String indexName,String id); + + boolean reCreateIndex(String indexName) throws Exception; + /** * 更新一个字段 * @param indexName diff --git a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java index 227944a4..81a59fea 100644 --- a/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java +++ b/modules/boe-module-es/src/main/java/com/xboe/module/elasticsearc/CourseElasticsearchImpl.java @@ -74,6 +74,18 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ * @param indexName * @return */ + @Override + public boolean reCreateIndex(String indexName) throws Exception{ + boolean isExists = esUtil.isIndexExists(indexName); + if(!isExists) { + boolean ok =createIndex(indexName); + if(!ok) { + log.error("创建索引【"+indexName+"】失败"); + return false; + } + } + return true; + } /** * 创建索引 @@ -99,7 +111,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ XContentBuilder builder = XContentFactory.jsonBuilder(); builder.startObject(); builder.field("properties").startObject(); - builder.field("id").startObject().field("index", "true").field("type", "text").endObject(); + builder.field("id").startObject().field("index", "true").field("type", "keyword").endObject(); //builder.field("name").startObject().field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer","ik_smart").endObject(); builder.field("name").startObject().field("type", "keyword").endObject(); builder.field("keywords").startObject().field("type", "text").field("analyzer", "ik_max_word").field("search_analyzer","ik_smart").endObject(); @@ -208,6 +220,15 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ @Override public String republish(String indexName, CourseFullText item, String fullTextId) throws Exception{ + boolean isExists = esUtil.isIndexExists(indexName); + if(!isExists) { + boolean ok =createIndex(indexName); + if(!ok) { + log.error("创建索引【"+indexName+"】失败"); + return null; + } + } + String fullId=fullTextId; boolean exists=false; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java index bc9c5d83..c8979f2f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFullTextApi.java @@ -55,6 +55,9 @@ public class CourseFullTextApi extends ApiBaseController{ if(fullTextSearch==null) { return error("初始化失败:未实现全文检索功能"); } + //重新创建索引,如果已经存在,不会重新建 + fullTextSearch.reCreateIndex(ICourseFullTextSearch.DEFAULT_INDEX_NAME); + //提取课程信息,因为现在课程没有太多,所以一次性全部查出来, CourseQueryDto dto =new CourseQueryDto(); dto.setPublish(true);//必须是已发布的