From fab806b3378d394d89862f305f11aba8009d2a8f Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Tue, 1 Aug 2023 20:01:19 +0800 Subject: [PATCH 01/46] es --- .../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 a1ce43a0..15f9788d 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 @@ -623,7 +623,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ }else if (paras.getOrderType()==3){ sourceBuilder.sort("score",SortOrder.DESC); } - } + sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); From 52ecfc72f3ddae67aa9327fb88bed586ac4d6678 Mon Sep 17 00:00:00 2001 From: "BOE\\10867418" Date: Wed, 2 Aug 2023 10:35:46 +0800 Subject: [PATCH 02/46] =?UTF-8?q?=E5=BF=BD=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..7b127603 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +servers/boe-server-all/.idea/ +*.iml +.idea/ From cb10e5703b50a0d9de791dae1a4c87a207127659 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 14:37:25 +0800 Subject: [PATCH 03/46] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=BC=82=E5=B8=B8-?= =?UTF-8?q?=E5=A5=BD=E8=AF=84=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../elasticsearc/CourseElasticsearchImpl.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) 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 15f9788d..7a44b430 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 @@ -603,27 +603,26 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{ SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); sourceBuilder.from(startRow); sourceBuilder.size(pageSize); - + BoolQueryBuilder boolQuery=createQuery(paras); if(boolQuery.hasClauses()) { sourceBuilder.query(boolQuery); } - + //排序 if(StringUtils.isBlank(paras.getKeywords()) && paras.getOrderType()!=3) { sourceBuilder.sort("isTop",SortOrder.DESC); //sourceBuilder.sort("topTime",SortOrder.DESC); } if(paras.getOrderType()!=null) { - if(paras.getOrderType()==1) { - sourceBuilder.sort("publishTime",SortOrder.DESC); - }else if(paras.getOrderType()==2) { - sourceBuilder.sort("studies",SortOrder.DESC); - } - }else if (paras.getOrderType()==3){ - sourceBuilder.sort("score",SortOrder.DESC); + if (paras.getOrderType() == 1) { + sourceBuilder.sort("publishTime", SortOrder.DESC); + } else if (paras.getOrderType() == 2) { + sourceBuilder.sort("studies", SortOrder.DESC); + } else if (paras.getOrderType() == 3) { + sourceBuilder.sort("score", SortOrder.DESC); } - + } sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); From d97ba6ec210110d57b6ccf4653b7153e22074cc1 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 15:30:36 +0800 Subject: [PATCH 04/46] poi-ooxml --- servers/boe-server-all/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index 0ba96cba..e90e3b1f 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -38,6 +38,11 @@ ${nacos-client.version} + + org.apache.poi + poi-ooxml + 5.2.2 + cn.hutool hutool-all From 44dadc88238e2ba3d5a4b46e4260e07457be30ec Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 16:16:18 +0800 Subject: [PATCH 05/46] =?UTF-8?q?poi-ooxml=20=E6=9B=B4=E6=94=B9=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/boe-server-all/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml index e90e3b1f..e0406c88 100644 --- a/servers/boe-server-all/pom.xml +++ b/servers/boe-server-all/pom.xml @@ -41,7 +41,7 @@ org.apache.poi poi-ooxml - 5.2.2 + 4.0.1 cn.hutool From 3afa77697bf2ce326f04334fae8b2b0542a9e1c2 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 20:35:55 +0800 Subject: [PATCH 06/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=20explanation=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dict/service/impl/SysDictionaryServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java index d09ef4fc..f8e179ba 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java @@ -7,6 +7,7 @@ import com.xboe.constants.CacheName; import com.xboe.core.SysConstant; import com.xboe.core.orm.FieldFilters; import com.xboe.core.utils.OkHttpUtil; +import com.xboe.module.boecase.dao.CasesDao; import com.xboe.module.course.entity.Course; import com.xboe.module.dict.dao.SysDictionaryDao; import com.xboe.module.dict.entity.DictItem; @@ -33,6 +34,9 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{ @Resource SysDictionaryDao dao; + @Resource + CasesDao casesDao; + @Resource RedisTemplate redisTemplate; @@ -201,6 +205,10 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{ public PageList queryPage(String key,String code,String name,String filter,Integer pageIndex, Integer pageSize) { // PageList dictItemPageList = dao.queryPage(key,code,name,filter,pageIndex, pageSize); + for(DictItem dictItem :dictItemPageList.getList()){ + int count = casesDao.count(FieldFilters.eq("code",dictItem.getCode()),FieldFilters.eq("deleted",0)); + dictItem.setExplanation(String.valueOf(count)); + } return dictItemPageList; } From 6f740b0be0de7bc3a8e83b411a591366aafce0b9 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 20:46:25 +0800 Subject: [PATCH 07/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=20explanation=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/dict/service/impl/SysDictionaryServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java index f8e179ba..acbcedf6 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java @@ -203,10 +203,10 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{ @Override public PageList queryPage(String key,String code,String name,String filter,Integer pageIndex, Integer pageSize) { - // + PageList dictItemPageList = dao.queryPage(key,code,name,filter,pageIndex, pageSize); for(DictItem dictItem :dictItemPageList.getList()){ - int count = casesDao.count(FieldFilters.eq("code",dictItem.getCode()),FieldFilters.eq("deleted",0)); + int count = casesDao.count(FieldFilters.eq("major_type",dictItem.getCode()),FieldFilters.eq("deleted",0)); dictItem.setExplanation(String.valueOf(count)); } return dictItemPageList; From ee87bb25f0b6f29da559a5a8f9dd251ac012e039 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Wed, 2 Aug 2023 20:54:48 +0800 Subject: [PATCH 08/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=20explanation=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/dict/service/impl/SysDictionaryServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java index acbcedf6..3c2b236a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java @@ -206,7 +206,7 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{ PageList dictItemPageList = dao.queryPage(key,code,name,filter,pageIndex, pageSize); for(DictItem dictItem :dictItemPageList.getList()){ - int count = casesDao.count(FieldFilters.eq("major_type",dictItem.getCode()),FieldFilters.eq("deleted",0)); + int count = casesDao.count(FieldFilters.eq("major_type",dictItem.getCode()),FieldFilters.eq("deleted",false)); dictItem.setExplanation(String.valueOf(count)); } return dictItemPageList; From 9f52b36c0afb3a6f0215adb8d3e53e88fabb3517 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Thu, 3 Aug 2023 17:44:53 +0800 Subject: [PATCH 09/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B-=E4=B8=93=E4=B8=9A?= =?UTF-8?q?=E5=88=86=E7=B1=BB=20=E6=B2=A1=E6=9C=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B9=9F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/service/impl/CasesServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index a95c21d8..4823e308 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -849,13 +849,14 @@ public class CasesServiceImpl implements ICasesService { List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { + d.setExplanation("0"); for (Object[] objs : listByHql) { String s = (String) objs[0]; if (d.getCode().equals(s)) { d.setExplanation(objs[1].toString()); - dictItems.add(d); } } + dictItems.add(d); } return dictItems; From a1114899550cb1cb2ccabcc9ea8fd0492871e0ae Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Thu, 3 Aug 2023 17:46:31 +0800 Subject: [PATCH 10/46] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/dict/service/impl/SysDictionaryServiceImpl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java index 3c2b236a..8c533311 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/dict/service/impl/SysDictionaryServiceImpl.java @@ -205,10 +205,6 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{ public PageList queryPage(String key,String code,String name,String filter,Integer pageIndex, Integer pageSize) { PageList dictItemPageList = dao.queryPage(key,code,name,filter,pageIndex, pageSize); - for(DictItem dictItem :dictItemPageList.getList()){ - int count = casesDao.count(FieldFilters.eq("major_type",dictItem.getCode()),FieldFilters.eq("deleted",false)); - dictItem.setExplanation(String.valueOf(count)); - } return dictItemPageList; } From b09f9a1e0cc5e26d2ca0ba4dea96ef2b89f33f6d Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Thu, 3 Aug 2023 21:41:48 +0800 Subject: [PATCH 11/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesApi.java | 5 +++++ .../module/boecase/service/impl/CasesServiceImpl.java | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 848c6816..4d9d665b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -150,6 +150,11 @@ public class CasesApi extends ApiBaseController { } } + } else { + views = new PageList(); + views.setList(Collections.emptyList()); + views.setPageSize(req.getPageSize()); + views.setCount(0); } return success(views); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 4823e308..a47fd1d5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -285,10 +285,13 @@ public class CasesServiceImpl implements ICasesService { } else { order = OrderCondition.desc("sysCreateTime"); } - + String type = caseVo.getType(); + if (StrUtil.equals(type,"excellent")) { + query.addOrder(OrderCondition.rand()); + } else { + query.addOrder(order); + } query.addFilters(filters); - query.addOrder(order); - query.addOrder(OrderCondition.rand()); query.setPageIndex(caseVo.getPageIndex()); query.setPageSize(caseVo.getPageSize()); page = casesDao.findPage(query.builder()); @@ -845,7 +848,7 @@ public class CasesServiceImpl implements ICasesService { @Override public List majorTypes() { List major_type = sysDictionaryDao.findByKey("major_type"); - String hql = "select cm.majorId,count(cm.id) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null or c.filePath!='') group by cm.majorId"; + String hql = "select cm.majorId,count(cm.id) from CasesMajorType cm,Cases c where cm.caseId=c.id and cm.majorId=c.majorType and c.deleted=false and (c.filePath is not null or c.filePath!='') group by cm.majorId"; List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { From 7e434b46bec15af63876e9ae4472a7cd331f68ea Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Thu, 3 Aug 2023 22:03:17 +0800 Subject: [PATCH 12/46] =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/elasticsearc/CourseElasticsearchImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 7a44b430..0d6e4d54 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 @@ -405,8 +405,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("keywords")); - keywordQuery.should(QueryBuilders.queryStringQuery(words).field("keywords")); +// keywordQuery.should(QueryBuilders.queryStringQuery("*" + words + "*").field("keywords")); +// keywordQuery.should(QueryBuilders.queryStringQuery(words).field("keywords")); + keywordQuery.should(QueryBuilders.matchPhraseQuery("keywords", words)); + keywordQuery.should(QueryBuilders.fuzzyQuery("keywords", words)); //keywordQuery.should(QueryBuilders.queryStringQuery(words).field("name", 9f));//用此方法无法查询出有转义符的处理 //keywordQuery.should(QueryBuilders.queryStringQuery(words).field("teacher", 8f)); From d10c847ec7166921541f7bee5ff93064c7125f20 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Fri, 4 Aug 2023 10:44:57 +0800 Subject: [PATCH 13/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B-=E4=B8=93=E4=B8=9A?= =?UTF-8?q?=E5=88=86=E7=B1=BB=20=E6=94=B9=E5=9B=9E=E5=8F=AA=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9C=89=E6=95=B0=E6=8D=AE=E7=9A=84=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/service/impl/CasesServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index a47fd1d5..4a5d3102 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -852,14 +852,13 @@ public class CasesServiceImpl implements ICasesService { List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { - d.setExplanation("0"); for (Object[] objs : listByHql) { String s = (String) objs[0]; if (d.getCode().equals(s)) { d.setExplanation(objs[1].toString()); + dictItems.add(d); } } - dictItems.add(d); } return dictItems; From b29c659517f61c9f084da9def2c0625b969a0450 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 09:54:35 +0800 Subject: [PATCH 14/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/api/CasesRecommendApi.java | 22 ++- .../module/boecase/dao/CasesRecordDao.java | 53 +++---- .../xboe/module/boecase/dto/CasePageVo.java | 39 ++--- .../dto/CasesRecommendPushRecordExportVo.java | 11 +- .../service/impl/CasesServiceImpl.java | 146 ++++++++++++------ 5 files changed, 162 insertions(+), 109 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index 907fd0a9..812c3e15 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -137,6 +137,7 @@ public class CasesRecommendApi extends ApiBaseController { public void downloadTemplate(HttpServletResponse response) throws Exception { // 通过工具类创建writer,默认创建xls格式 ExcelWriter writer = ExcelUtil.getWriter(); + writer.setColumnWidth(0, 40); writer.writeHeadRow(ListUtil.toList("标题")); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=failData.xls"); @@ -228,12 +229,12 @@ public class CasesRecommendApi extends ApiBaseController { // 拼接上列明。我这里用的最土的方法,很不优雅别学我 LinkedHashMap map = new LinkedHashMap<>(); map.put("案例名称", "caseTitle"); - map.put("推送用户", "pushUserName"); + map.put("目标用户", "pushUserName"); map.put("所属组织", "recommendOrgName"); map.put("推送时间", "pushTime"); map.put("是否查看", "readFlag"); map.put("首次查看时间", "readStartTime"); - map.put("总查看时间", "totalReadTime"); + map.put("总查看时间(秒)", "totalReadTime"); CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId()); @@ -255,9 +256,20 @@ public class CasesRecommendApi extends ApiBaseController { }).collect(Collectors.toList()); } - response.setContentType("application/octet-stream"); - response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls"); - ExportsExcelSenderUtil.export(map, exportVos, outputStream, "yyyy-MM-dd HH:mm:ss"); + // 通过工具类创建writer,默认创建xls格式 + ExcelWriter writer = ExcelUtil.getWriter(); + writer.setColumnWidth(0, 40); + writer.write(exportVos, true); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls"); + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + writer.close(); + IoUtil.close(out); + +// response.setContentType("application/octet-stream"); +// response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls"); +// ExportsExcelSenderUtil.export(map, exportVos, outputStream, "yyyy-MM-dd HH:mm:ss"); } catch (Exception e) { e.printStackTrace(); log.error("导出失败", e.getMessage()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java index dd15c9da..84180909 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java @@ -33,38 +33,35 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + " and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" + - " and if(IFNULL(:#{#condition.majorType},'') !='',b.major_type = :#{#condition.majorType},1=1) " + - " and if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" + - " and if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" + - " and if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" + + " and if(:#{#condition.caseIdsEmpty}, 1=1, b.id in (:#{#condition.caseIds}))" + + " and ("+ + " if(:#{#condition.allOrgEmpty}, 1=1, 1=2)" + + " or if(:#{#condition.org1Empty}, 1=2, b.org_domain_parent in (:#{#condition.org1}))" + + " or if(:#{#condition.org2Empty}, 1=2, b.org_domain_parent2 in (:#{#condition.org2}))" + + " or if(:#{#condition.org3Empty}, 1=2, b.org_domain_parent3 in (:#{#condition.org3}))" + + ")" + " order by a.sys_create_time DESC, a.read_flag ASC) as c group by c.id", countQuery = "select count(*) FROM (select c.* from ( select b.*" + - " from boe_cases_recommend_push_record a INNER JOIN boe_cases b on a.case_id = b.id " + - " where b.deleted=0 and a.push_status = 3 and a.deleted=0 and a.push_user_id= :#{#condition.userId}" + - " and if(IFNULL(:#{#condition.keyWord},'')!='',b.title like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.keyword2 like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.keyword3 like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + - " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + - " and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" + - " and if(IFNULL(:#{#condition.majorType},'') !='' ,b.major_type = :#{#condition.majorType},1=1) " + - " and if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" + - " and if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" + - " and if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" + - " order by a.sys_create_time DESC, a.read_flag ASC ) as c group by c.id) as d") + " from boe_cases_recommend_push_record a INNER JOIN boe_cases b on a.case_id = b.id " + + " where b.deleted=0 and a.push_status = 3 and a.deleted=0 and a.push_user_id= :#{#condition.userId}" + + " and if(IFNULL(:#{#condition.keyWord},'')!='',b.title like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword2 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword3 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" + + " or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" + + " and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" + + " and if(:#{#condition.caseIdsEmpty}, 1=1, b.id in (:#{#condition.caseIds}))" + + " and ("+ + " if(:#{#condition.allOrgEmpty}, 1=1, 1=2)" + + " or if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" + + " or if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" + + " or if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" + + ")" + + " order by a.sys_create_time DESC, a.read_flag ASC ) as c group by c.id) as d") Page queryList(Pageable pageable, @Param("condition") CasePageVo casePage); -// @Query(nativeQuery = true, value = "SELECT bc.*, COUNT(bcrpr.case_id) AS recommends1 FROM boe_cases bc LEFT JOIN boe_cases_recommend_push_record bcrpr ON bc.id = bcrpr.case_id" + -// " where bc.deleted = 0" + -// " and if(IFNULL(:#{#caseVo.keyWord},'')!='',bc.title like CONCAT('%',:#{#caseVo.keyWord},'%'),1=1)" + -// " and if(IFNULL(:#{#caseVo.authorName},'')!='',bc.author_name like CONCAT('%',:#{#caseVo.authorName},'%'),1=1)" + -// " and if(IFNULL(:#{#caseVo.orgDomain},'') !='' ,bc.org_domain_parent = :#{#caseVo.orgDomain},1=1) " + -// " and if(IFNULL(:#{#caseVo.excellent},'') !='' ,bc.excellent = :#{#caseVo.excellent},1=1) " + -// " and if(IFNULL(:#{#caseVo.isTop},'') !='' ,bc.is_top = :#{#caseVo.isTop},1=1) " + -// " GROUP BY bc.id ORDER BY bc.sys_create_time desc") -// List exportCase(@Param("caseVo")CaseVo caseVo); @Query("SELECT new Cases(bc.title, bc.authorName, bc.comments, bc.views, bc.praises, bc.shares, bc.favorites, COUNT(bcrpr.caseId), bc.cites, bc.confidentialityLevel) FROM Cases bc LEFT JOIN CasesRecommendPushRecord bcrpr ON bc.id = bcrpr.caseId" + " where bc.deleted = false" + diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java index 45a20975..619bc489 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java @@ -1,13 +1,9 @@ package com.xboe.module.boecase.dto; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; -import com.xboe.module.scorm.rte.model.datatype.Int; import lombok.Data; -import org.apache.commons.collections4.CollectionUtils; import java.util.List; -import java.util.stream.Collectors; @Data public class CasePageVo extends PageDto { @@ -63,22 +59,29 @@ public class CasePageVo extends PageDto { */ private String userId; + /** + * 案例ids + */ + private List caseIds; + + + public boolean isCaseIdsEmpty() { + return CollUtil.isEmpty(this.caseIds); + } + /** * 推荐id */ private Long refId; + private List org1; + private List org2; + private List org3; + public boolean isYearsEmpty() { return CollUtil.isEmpty(this.years); } - public List getOrg1() { - if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); - } - return null; - } - public boolean isOrg1Empty() { return CollUtil.isEmpty(this.getOrg1()); } @@ -91,18 +94,8 @@ public class CasePageVo extends PageDto { return CollUtil.isEmpty(this.getOrg3()); } - public List getOrg2() { - if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().flatMap(it->it.getChildren().stream()).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); - } - return null; - } - - public List getOrg3() { - if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().flatMap(it->it.getChildren().stream().flatMap(i->i.getChildren().stream())).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); - } - return null; + public boolean isAllOrgEmpty() { + return this.isOrg1Empty() && this.isOrg2Empty() && this.isOrg3Empty(); } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java index 6570c9ee..80467417 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java @@ -1,9 +1,8 @@ package com.xboe.module.boecase.dto; import lombok.Data; +import cn.hutool.core.annotation.Alias; -import javax.persistence.Column; -import java.util.Date; @Data public class CasesRecommendPushRecordExportVo { @@ -11,23 +10,29 @@ public class CasesRecommendPushRecordExportVo { /** * 案例标题 */ + @Alias(value = "案例标题") private String caseTitle; /** * 推送用户名称 */ + @Alias(value = "目标用户") private String pushUserName; /**推荐组织名称*/ + @Alias(value = "所属组织") private String recommendOrgName; + @Alias(value = "推送时间") private String pushTime; + @Alias(value = "是否查看") private String readFlag; /** * 首次查看时间 */ + @Alias(value = "首次查看时间") private String readStartTime; + @Alias(value = "总查看时间(秒)") private String totalReadTime; - } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 4a5d3102..1fba2104 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -34,16 +34,6 @@ import javax.transaction.Transactional; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; -import com.xboe.module.boecase.dao.CasesMajorTypeDao; -import com.xboe.core.orm.FieldFilters; -import com.xboe.core.orm.FieldUpdateType; -import com.xboe.core.orm.IFieldFilter; -import com.xboe.core.orm.LikeMatchMode; -import com.xboe.core.orm.QueryBuilder; -import com.xboe.core.orm.UpdateBuilder; -import com.xboe.module.boecase.dao.CasesDao; -import com.xboe.module.boecase.entity.Cases; - @Slf4j @Service @@ -73,14 +63,14 @@ public class CasesServiceImpl implements ICasesService { /** * 案例分页查询,用于门户的查询 - * */ + */ @Override public PageList queryPageCases(int pageIndex, int pageSize, CaseVo caseVo) { - QueryBuilder query=QueryBuilder.from(Cases.class); - PageList page=null; + QueryBuilder query = QueryBuilder.from(Cases.class); + PageList page = null; List filters = new ArrayList<>(); - filters.add(FieldFilters.eq("deleted",false)); - List likes=new ArrayList(); + filters.add(FieldFilters.eq("deleted", false)); + List likes = new ArrayList(); likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); @@ -90,23 +80,22 @@ public class CasesServiceImpl implements ICasesService { likes.add(FieldFilters.like("keyword5", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); - if(StringUtil.isNotBlank(caseVo.getKeyWord())) { + if (StringUtil.isNotBlank(caseVo.getKeyWord())) { filters.add(FieldFilters.or(likes)); } - if(StringUtils.isNotBlank(caseVo.getOrgDomain())){ - if(caseVo.getOrgDomain().contains(",")){ + if (StringUtils.isNotBlank(caseVo.getOrgDomain())) { + if (caseVo.getOrgDomain().contains(",")) { String[] split = caseVo.getOrgDomain().split(","); List strings = Arrays.asList(split); - filters.add(FieldFilters.in("orgDomainParent",strings)); - }else{ - filters.add(FieldFilters.eq("orgDomainParent",caseVo.getOrgDomain())); + filters.add(FieldFilters.in("orgDomainParent", strings)); + } else { + filters.add(FieldFilters.eq("orgDomainParent", caseVo.getOrgDomain())); } } - //增加只是查询有附件的 filters.add(FieldFilters.isNotNull("filePath")); filters.add(FieldFilters.ne("filePath", "")); @@ -144,8 +133,8 @@ public class CasesServiceImpl implements ICasesService { } } - if(StringUtils.isNotBlank(caseVo.getCaseType())){ - filters.add(FieldFilters.eq("caseType",caseVo.getCaseType())); + if (StringUtils.isNotBlank(caseVo.getCaseType())) { + filters.add(FieldFilters.eq("caseType", caseVo.getCaseType())); } if (caseVo.getBreCommend() != null) { if (!caseVo.getBreCommend()) { @@ -172,7 +161,7 @@ public class CasesServiceImpl implements ICasesService { } else { order = OrderCondition.desc("sysCreateTime"); } - + query.addFilters(filters); query.addOrder(order); @@ -232,38 +221,52 @@ public class CasesServiceImpl implements ICasesService { } } List orgDomainDtos = caseVo.getOrgDomainDtos(); - IFieldFilter orgDomain = null; + List level1 = new ArrayList<>(); + List level2 = new ArrayList<>(); + List level3 = new ArrayList<>(); if (CollUtil.isNotEmpty(orgDomainDtos)) { for (int i = 0; i < orgDomainDtos.size(); i++) { OrgDomainDto domainDto = orgDomainDtos.get(i); - String orgDomainParent = domainDto.getParent(); - IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent", orgDomainParent); List orgDomainParent2 = domainDto.getChildren(); if (CollUtil.isNotEmpty(orgDomainParent2)) { - List seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); - IFieldFilter orgDomainParentFilter = FieldFilters.in("orgDomainParent2", seconds); - itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter); - } - for (OrgDomainDto orgDomainDto : orgDomainParent2) { - List orgDomainParent3 = orgDomainDto.getChildren(); - if (CollUtil.isNotEmpty(orgDomainParent3)) { - List thirds = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); - IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", thirds); - itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter); + for (OrgDomainDto orgDomainDto : orgDomainParent2) { + List orgDomainParent3 = orgDomainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent3)) { + List parent = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + level3.addAll(parent); + } else { + String parent = orgDomainDto.getParent(); + level2.add(parent); + } } - } - - if (i == 0) { - orgDomain = itemFilter; - } else { - orgDomain = FieldFilters.or(orgDomain, itemFilter); + } else { + String orgDomainParent = domainDto.getParent(); + level1.add(orgDomainParent); } } } - if (Objects.nonNull(orgDomain)) { - filters.add(orgDomain); + List subFilter = new ArrayList(); + if (CollUtil.isNotEmpty(level1)) { + IFieldFilter filter1 = FieldFilters.in("orgDomainParent", level1); + subFilter.add(filter1); + } + if (CollUtil.isNotEmpty(level2)) { + IFieldFilter filter2 = FieldFilters.in("orgDomainParent2", level2); + subFilter.add(filter2); + } + if (CollUtil.isNotEmpty(level3)) { + IFieldFilter filter3 = FieldFilters.in("orgDomainParent3", level3); + subFilter.add(filter3); + } + if (CollUtil.isNotEmpty(subFilter)) { + if (subFilter.size() == 1) { + filters.add(subFilter.get(0)); + } else if(subFilter.size() == 2) { + filters.add(FieldFilters.or(subFilter.get(0), subFilter.get(1))); + } else { + filters.add(FieldFilters.or(subFilter)); + } } - if (StringUtils.isNotBlank(caseVo.getCaseType())) { filters.add(FieldFilters.eq("caseType", caseVo.getCaseType())); } @@ -346,6 +349,48 @@ public class CasesServiceImpl implements ICasesService { public PageList queryRecommendPageCasesV2(CasePageVo caseVo) { PageRequest pageRequest = PageRequest.of(caseVo.getPageIndex() - 1, caseVo.getPageSize()); + + + String majorType = caseVo.getMajorType(); + if (StringUtil.isNotBlank(majorType)) { + List casesTypes = casesMajorTypeRepoDao.findCasesBy(StrUtil.split(majorType, ",")); + if (CollUtil.isNotEmpty(casesTypes)) { + List caseIds = casesTypes.stream().map(CasesMajorType::getCaseId).collect(Collectors.toList()); + caseVo.setCaseIds(caseIds); + } else { + return null; + } + } + + List orgDomainDtos = caseVo.getOrgDomainDtos(); + List level1 = new ArrayList<>(); + List level2 = new ArrayList<>(); + List level3 = new ArrayList<>(); + if (CollUtil.isNotEmpty(orgDomainDtos)) { + for (int i = 0; i < orgDomainDtos.size(); i++) { + OrgDomainDto domainDto = orgDomainDtos.get(i); + List orgDomainParent2 = domainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent2)) { + for (OrgDomainDto orgDomainDto : orgDomainParent2) { + List orgDomainParent3 = orgDomainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent3)) { + List parent = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + level3.addAll(parent); + } else { + String parent = orgDomainDto.getParent(); + level2.add(parent); + } + } + } else { + String orgDomainParent = domainDto.getParent(); + level1.add(orgDomainParent); + } + } + } + caseVo.setOrg1(level1); + caseVo.setOrg2(level2); + caseVo.setOrg3(level3); + Page cases = casesRecordDao.queryList(pageRequest,caseVo); PageList pageList = new PageList<>(); pageList.setCount((int) cases.getTotalElements()); @@ -687,7 +732,7 @@ public class CasesServiceImpl implements ICasesService { /** * 首页案例 - * */ + */ @Override public List caseRandom(Integer pageSize, String orderField, Boolean orderAsc) { @@ -848,7 +893,8 @@ public class CasesServiceImpl implements ICasesService { @Override public List majorTypes() { List major_type = sysDictionaryDao.findByKey("major_type"); - String hql = "select cm.majorId,count(cm.id) from CasesMajorType cm,Cases c where cm.caseId=c.id and cm.majorId=c.majorType and c.deleted=false and (c.filePath is not null or c.filePath!='') group by cm.majorId"; + //cm.caseId=c.id and + String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { @@ -940,7 +986,7 @@ public class CasesServiceImpl implements ICasesService { String accountId = current.getAccountId(); List result = new ArrayList<>(); try { - String hql = "select a.caseId FROM CasesRecommendPushRecord a left join Cases b ON a.caseId = b.id WHERE a.pushUserId=?1 and a.pushStatus=3 and a.deleted = false and b.deleted = false group by a.caseId ORDER By a.pushTime DESC"; + String hql = "select a.caseId FROM CasesRecommendPushRecord a left join Cases b ON a.caseId = b.id WHERE a.pushUserId=?1 and a.pushStatus=3 and a.deleted = false and b.deleted = false group by a.caseId ORDER By a.pushTime DESC"; List listFields = casesRecommendDao.findListFields(hql, CASE_LEN, ListUtil.toList(accountId)); // List listFields = new ArrayList<>(); List caseIds = new ArrayList<>(); From f501c2a70df5f67f175561beed5fddd4fe83cf62 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 10:14:30 +0800 Subject: [PATCH 15/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boecase/service/impl/CasesRecommendServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java index 0dcda801..0a02631a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendServiceImpl.java @@ -45,8 +45,8 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService { query.addFilter(FieldFilters.like("recommend_by", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName())); } if (!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())) { - query.addFilter(FieldFilters.ge("recommend_time", casesRecommendVo.getRecommendTimeList().get(0))); - query.addFilter(FieldFilters.le("recommend_time", casesRecommendVo.getRecommendTimeList().get(1))); + query.addFilter(FieldFilters.ge("recommend_time", casesRecommendVo.getRecommendTimeList().get(0)+" 00:00:00")); + query.addFilter(FieldFilters.le("recommend_time", casesRecommendVo.getRecommendTimeList().get(1)+" 23:59:59")); } query.addOrder(OrderCondition.desc("sys_create_time")); From 437663776ceba17faa42070af9bc2c878b45b9c0 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 18:21:49 +0800 Subject: [PATCH 16/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 11f3ca36..b03bfc50 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -23,6 +23,7 @@ import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; import com.xboe.system.user.dao.UserDao; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -65,6 +66,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR private AsyncSendCasesRecommendService asyncSendCasesRecommendService; @Override + @Async public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) { long t1 = System.currentTimeMillis(); From 439626790ac79dbe1f88f2134189bdbef65efe7f Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 18:37:04 +0800 Subject: [PATCH 17/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesRecommendApi.java | 4 ++-- .../boecase/service/ICasesRecommendPushRecordService.java | 2 +- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index 812c3e15..89299de8 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -208,8 +208,8 @@ public class CasesRecommendApi extends ApiBaseController { if (StringUtils.isEmpty(token)) { token = request.getHeader("token"); } - - return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token)); + iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token); + return success(true); } /** diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java index 30fe719b..cecc2110 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java @@ -16,7 +16,7 @@ public interface ICasesRecommendPushRecordService { * @param * @return */ - boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token); + void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token); /** * 根据案例推荐ID查询案例推送列表信息 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index b03bfc50..9ad5a0e0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -67,7 +67,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR @Override @Async - public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) { + public void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) { long t1 = System.currentTimeMillis(); List caseIds = new ArrayList<>(); @@ -154,7 +154,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR } catch (Exception e) { log.error("推送失败", e); } - return true; +// return true; } From 1c06ccec8ef7d644d5a1e279f8aff741dd39ff6f Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 20:54:11 +0800 Subject: [PATCH 18/46] =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 5 ++ .../module/boecase/api/CasesRecommendApi.java | 90 ++++++++----------- .../module/boecase/dao/CasesRecordDao.java | 4 + .../dto/CasesRecommendPushRecordExportVo.java | 2 +- .../ICasesRecommendPushRecordService.java | 2 +- .../module/boecase/service/ICasesService.java | 2 + .../CasesRecommendPushRecordServiceImpl.java | 6 +- .../service/impl/CasesServiceImpl.java | 6 ++ 8 files changed, 56 insertions(+), 61 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 4d9d665b..0c7a468f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -159,6 +159,11 @@ public class CasesApi extends ApiBaseController { return success(views); } + @PostMapping("/caseYears") + public JsonResponse> caseYears() { + List result = casesService.getCaseYears(); + return success(result); + } /** * 案例分页搜索 是否置顶 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index 89299de8..d6a79099 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; @@ -25,9 +26,9 @@ import com.xboe.module.boecase.vo.BrowseDurationVo; import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; import com.xboe.module.boecase.vo.CasesRecommendPushVo; import com.xboe.module.boecase.vo.CasesRecommendVo; -import com.xboe.module.excel.ExportsExcelSenderUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xssf.streaming.SXSSFSheet; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -35,9 +36,7 @@ import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.OutputStream; import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; import java.util.stream.Collectors; @@ -137,8 +136,8 @@ public class CasesRecommendApi extends ApiBaseController { public void downloadTemplate(HttpServletResponse response) throws Exception { // 通过工具类创建writer,默认创建xls格式 ExcelWriter writer = ExcelUtil.getWriter(); - writer.setColumnWidth(0, 40); writer.writeHeadRow(ListUtil.toList("标题")); + writer.autoSizeColumnAll(); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=failData.xls"); ServletOutputStream out = response.getOutputStream(); @@ -167,6 +166,7 @@ public class CasesRecommendApi extends ApiBaseController { if (CollectionUtil.isNotEmpty(dataList)) { writer.write(dataList); } + writer.autoSizeColumnAll(); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=failData.xls"); ServletOutputStream out = response.getOutputStream(); @@ -208,8 +208,7 @@ public class CasesRecommendApi extends ApiBaseController { if (StringUtils.isEmpty(token)) { token = request.getHeader("token"); } - iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token); - return success(true); + return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token)); } /** @@ -219,61 +218,42 @@ public class CasesRecommendApi extends ApiBaseController { * @throws Exception */ @PostMapping("/info_download") - public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) { + public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) throws Exception { if (StringUtils.isEmpty(vo.getCasesRecommendId())) { throw new RuntimeException("缺少必要参数"); } - try (OutputStream outputStream = response.getOutputStream()) { - // 用个List装表格的所有内容 - // 拼接上列明。我这里用的最土的方法,很不优雅别学我 - LinkedHashMap map = new LinkedHashMap<>(); - map.put("案例名称", "caseTitle"); - map.put("目标用户", "pushUserName"); - map.put("所属组织", "recommendOrgName"); - map.put("推送时间", "pushTime"); - map.put("是否查看", "readFlag"); - map.put("首次查看时间", "readStartTime"); - map.put("总查看时间(秒)", "totalReadTime"); + CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId()); - CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId()); - - // 拿取表格里需要的数据 - List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId()); - List exportVos = new ArrayList<>(); - if (CollectionUtil.isNotEmpty(recordList)) { - exportVos = recordList.stream().map(record -> { - CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo(); - exportVo.setCaseTitle(record.getCaseTitle()); - exportVo.setPushUserName(record.getPushUserName()); - exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName()); - exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime())); - exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否"); - exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime())); - Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId()); - exportVo.setTotalReadTime(browseDuration.toString()); - return exportVo; - }).collect(Collectors.toList()); - } - - // 通过工具类创建writer,默认创建xls格式 - ExcelWriter writer = ExcelUtil.getWriter(); - writer.setColumnWidth(0, 40); - writer.write(exportVos, true); - response.setContentType("application/vnd.ms-excel;charset=utf-8"); - response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls"); - ServletOutputStream out = response.getOutputStream(); - writer.flush(out, true); - writer.close(); - IoUtil.close(out); - -// response.setContentType("application/octet-stream"); -// response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls"); -// ExportsExcelSenderUtil.export(map, exportVos, outputStream, "yyyy-MM-dd HH:mm:ss"); - } catch (Exception e) { - e.printStackTrace(); - log.error("导出失败", e.getMessage()); + // 拿取表格里需要的数据 + List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId()); + List exportVos = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(recordList)) { + exportVos = recordList.stream().map(record -> { + CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo(); + exportVo.setCaseTitle(record.getCaseTitle()); + exportVo.setPushUserName(record.getPushUserName()); + exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName()); + exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime())); + exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否"); + exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime())); + Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId()); + exportVo.setTotalReadTime(browseDuration.toString()); + return exportVo; + }).collect(Collectors.toList()); } + // 通过工具类创建writer,默认创建xls格式 + BigExcelWriter writer = ExcelUtil.getBigWriter(); + // 设置所有列为自动宽度,不考虑合并单元格 + writer.write(exportVos, true); + SXSSFSheet sheet = (SXSSFSheet) writer.getSheet(); + writer.autoSizeColumnAll(); + response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls"); + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + writer.close(); + IoUtil.close(out); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java index 84180909..deecfd10 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java @@ -72,4 +72,8 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " and (:isTop IS NULL or bc.isTop = :isTop)" + " GROUP BY bc.id ORDER BY bc.sysCreateTime desc") List exportCase(String keyWord, String authorName,String orgDomain,Boolean excellent,Boolean isTop); + + + @Query(nativeQuery = true, value ="SELECT DATE_FORMAT(sys_create_time,'%Y') FROM `boe_cases` where deleted = FALSE GROUP BY DATE_FORMAT(sys_create_time,'%Y')") + List caseYears(); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java index 80467417..71c2f55c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java @@ -33,6 +33,6 @@ public class CasesRecommendPushRecordExportVo { @Alias(value = "首次查看时间") private String readStartTime; - @Alias(value = "总查看时间(秒)") + @Alias(value = "总查看时间(分)") private String totalReadTime; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java index cecc2110..30fe719b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesRecommendPushRecordService.java @@ -16,7 +16,7 @@ public interface ICasesRecommendPushRecordService { * @param * @return */ - void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token); + boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token); /** * 根据案例推荐ID查询案例推送列表信息 diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java index d2dc937a..151af48b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java @@ -108,5 +108,7 @@ public interface ICasesService{ List caseIndexV2(CurrentUser current); + List getCaseYears(); + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 9ad5a0e0..11f3ca36 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -23,7 +23,6 @@ import com.xboe.module.boecase.vo.CasesRecommendLaunchVo; import com.xboe.system.user.dao.UserDao; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,8 +65,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR private AsyncSendCasesRecommendService asyncSendCasesRecommendService; @Override - @Async - public void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) { + public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) { long t1 = System.currentTimeMillis(); List caseIds = new ArrayList<>(); @@ -154,7 +152,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR } catch (Exception e) { log.error("推送失败", e); } -// return true; + return true; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 1fba2104..6ce16399 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -1037,6 +1037,12 @@ public class CasesServiceImpl implements ICasesService { return casesVos; } + @Override + public List getCaseYears() { + List years = this.casesRecordDao.caseYears(); + return years; + } + @Override public void excellent(String id, Boolean excellent) { //取消时,把时间清空 From fad059099377f0a060aec6ad082456ee949c3137 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sat, 5 Aug 2023 21:25:10 +0800 Subject: [PATCH 19/46] =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesRecommendApi.java | 1 + .../module/boecase/dto/CasesRecommendPushRecordExportVo.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java index d6a79099..d70845dd 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesRecommendApi.java @@ -247,6 +247,7 @@ public class CasesRecommendApi extends ApiBaseController { // 设置所有列为自动宽度,不考虑合并单元格 writer.write(exportVos, true); SXSSFSheet sheet = (SXSSFSheet) writer.getSheet(); + sheet.trackAllColumnsForAutoSizing(); writer.autoSizeColumnAll(); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls"); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java index 71c2f55c..047b0f58 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasesRecommendPushRecordExportVo.java @@ -10,7 +10,7 @@ public class CasesRecommendPushRecordExportVo { /** * 案例标题 */ - @Alias(value = "案例标题") + @Alias(value = "案例名称") private String caseTitle; /** * 推送用户名称 From f6172ee969e6fc3043e3ba621a60a126d42c8e84 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 10:50:40 +0800 Subject: [PATCH 20/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 18 ++++++++++++++++++ .../boecase/service/impl/CasesServiceImpl.java | 7 +------ .../xboe/module/boecase/vo/CaseExportVo.java | 4 ++++ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 0c7a468f..20e8a180 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -15,6 +15,8 @@ import com.xboe.module.boecase.vo.CaseExportVo; import com.xboe.module.dict.entity.DictItem; import com.xboe.module.excel.ExportsExcelSenderUtil; +import com.xboe.system.user.dao.UserDao; +import com.xboe.system.user.entity.User; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -58,6 +60,8 @@ public class CasesApi extends ApiBaseController { @Resource private CasesMajorTypeDao casesMajorTypeDao; + @Resource + private UserDao userDao; /** * 用于后台管理 @@ -252,13 +256,27 @@ public class CasesApi extends ApiBaseController { try { outputStream = response.getOutputStream(); LinkedHashMap map = new LinkedHashMap<>(); +// 标题,摘要,案主姓名,案主工号,案主所在组织全路径,同步时间,查看次数。 map.put("标题","title"); + map.put("摘要","summary"); + map.put("案主姓名","authorName"); + map.put("案主工号","userNo"); + map.put("案主所在组织全路径","department"); + map.put("同步时间","exportDate"); + map.put("查看次数","views"); List list = casesService.managerCaseTitleList(caseVo); List exportVos = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); for (Cases c:list){ CaseExportVo caseExportVo = new CaseExportVo(); caseExportVo.setTitle(c.getTitle()); + caseExportVo.setSummary(c.getSummary()); + caseExportVo.setAuthorName(c.getAuthorName()); + User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); + caseExportVo.setUserNo(user.getUserNo()); + caseExportVo.setDepartment(c.getDepartment()); + caseExportVo.setExportDate(now); + caseExportVo.setViews(c.getViews()); exportVos.add(caseExportVo); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 6ce16399..b49b3178 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -288,12 +288,7 @@ public class CasesServiceImpl implements ICasesService { } else { order = OrderCondition.desc("sysCreateTime"); } - String type = caseVo.getType(); - if (StrUtil.equals(type,"excellent")) { - query.addOrder(OrderCondition.rand()); - } else { - query.addOrder(order); - } + query.addOrder(order); query.addFilters(filters); query.setPageIndex(caseVo.getPageIndex()); query.setPageSize(caseVo.getPageSize()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java index 01ff691e..6ae48f79 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java @@ -36,4 +36,8 @@ public class CaseExportVo { private LocalDateTime endTime; private String confidentialityLevel; + + private String summary; + private String userNo; + private String department; } From f2816046fa3c47c0eb5c1d665a91be874dfd0a23 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 11:30:12 +0800 Subject: [PATCH 21/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/module/boecase/api/CasesApi.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 20e8a180..cf1b7cbe 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -273,7 +273,9 @@ public class CasesApi extends ApiBaseController { caseExportVo.setSummary(c.getSummary()); caseExportVo.setAuthorName(c.getAuthorName()); User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); - caseExportVo.setUserNo(user.getUserNo()); + if (!Objects.isNull(user)){ + caseExportVo.setUserNo(user.getUserNo()); + } caseExportVo.setDepartment(c.getDepartment()); caseExportVo.setExportDate(now); caseExportVo.setViews(c.getViews()); From 5701421c759c2a2bf34405c6c66b2b2eb63e071a Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 11:41:43 +0800 Subject: [PATCH 22/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/module/boecase/api/CasesApi.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index cf1b7cbe..a921d5bb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -268,11 +268,13 @@ public class CasesApi extends ApiBaseController { List exportVos = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); for (Cases c:list){ + log.debug(c.getAuthorId() + "------------c = " + c); CaseExportVo caseExportVo = new CaseExportVo(); caseExportVo.setTitle(c.getTitle()); caseExportVo.setSummary(c.getSummary()); caseExportVo.setAuthorName(c.getAuthorName()); User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); + log.debug("------------user = " + user); if (!Objects.isNull(user)){ caseExportVo.setUserNo(user.getUserNo()); } From cd8b90533e7259f449c23f1df720fbd07a41dc37 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 11:50:14 +0800 Subject: [PATCH 23/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/module/boecase/api/CasesApi.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index a921d5bb..e49bc1bf 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -252,6 +252,7 @@ public class CasesApi extends ApiBaseController { * */ @PostMapping("/exportCaseTitle") public void exportCaseTitle(CaseVo caseVo,HttpServletResponse response){ + log.debug("-----------导出案例标题数据 = " + caseVo); OutputStream outputStream; try { outputStream = response.getOutputStream(); @@ -264,7 +265,9 @@ public class CasesApi extends ApiBaseController { map.put("案主所在组织全路径","department"); map.put("同步时间","exportDate"); map.put("查看次数","views"); + log.debug("-----------map = " + map.toString()); List list = casesService.managerCaseTitleList(caseVo); + log.debug("-----------list = " + list.toString()); List exportVos = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); for (Cases c:list){ From 83d676a3b8528a8e10b85295aed795caa7ce06c3 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 11:55:56 +0800 Subject: [PATCH 24/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesApi.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index e49bc1bf..c4e36856 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -252,7 +252,10 @@ public class CasesApi extends ApiBaseController { * */ @PostMapping("/exportCaseTitle") public void exportCaseTitle(CaseVo caseVo,HttpServletResponse response){ - log.debug("-----------导出案例标题数据 = " + caseVo); + log.error("--error---------导出案例标题数据 = " + caseVo); + log.debug("--debug---------导出案例标题数据 = " + caseVo); + log.info("----info-------导出案例标题数据 = " + caseVo); + System.out.println("--println------导出案例标题数据--------------------" +caseVo); OutputStream outputStream; try { outputStream = response.getOutputStream(); @@ -265,19 +268,19 @@ public class CasesApi extends ApiBaseController { map.put("案主所在组织全路径","department"); map.put("同步时间","exportDate"); map.put("查看次数","views"); - log.debug("-----------map = " + map.toString()); + log.error("-----------map = " + map.toString()); List list = casesService.managerCaseTitleList(caseVo); - log.debug("-----------list = " + list.toString()); + log.error("-----------list = " + list.toString()); List exportVos = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); for (Cases c:list){ - log.debug(c.getAuthorId() + "------------c = " + c); + log.error(c.getAuthorId() + "------------c = " + c); CaseExportVo caseExportVo = new CaseExportVo(); caseExportVo.setTitle(c.getTitle()); caseExportVo.setSummary(c.getSummary()); caseExportVo.setAuthorName(c.getAuthorName()); User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); - log.debug("------------user = " + user); + log.error("------------user = " + user); if (!Objects.isNull(user)){ caseExportVo.setUserNo(user.getUserNo()); } From 87da3b6da5d7f128211a5ed3961c896079d03369 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 12:08:46 +0800 Subject: [PATCH 25/46] =?UTF-8?q?=E6=A1=88=E4=BE=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/boecase/api/CasesApi.java | 12 +++++------- .../boecase/service/impl/CasesServiceImpl.java | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index c4e36856..7bac9d54 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -277,16 +277,14 @@ public class CasesApi extends ApiBaseController { log.error(c.getAuthorId() + "------------c = " + c); CaseExportVo caseExportVo = new CaseExportVo(); caseExportVo.setTitle(c.getTitle()); - caseExportVo.setSummary(c.getSummary()); - caseExportVo.setAuthorName(c.getAuthorName()); + caseExportVo.setSummary(c.getSummary()==null?"":c.getSummary()); + caseExportVo.setAuthorName(c.getAuthorName()==null?"":c.getAuthorName()); User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); log.error("------------user = " + user); - if (!Objects.isNull(user)){ - caseExportVo.setUserNo(user.getUserNo()); - } - caseExportVo.setDepartment(c.getDepartment()); + caseExportVo.setUserNo(user.getUserNo()==null?"":user.getUserNo()); + caseExportVo.setDepartment(c.getDepartment()==null?"":c.getDepartment()); caseExportVo.setExportDate(now); - caseExportVo.setViews(c.getViews()); + caseExportVo.setViews(c.getViews()==null? 0 :c.getViews()); exportVos.add(caseExportVo); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index b49b3178..4f651266 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -520,7 +520,7 @@ public class CasesServiceImpl implements ICasesService { order = OrderCondition.desc("sysCreateTime"); } query.addOrder(order); - query.addField("new Cases(title)"); +// query.addField("new Cases(title)"); List result = casesDao.findList(query.builder()); return result; } From 7c2ca3a7c33021f085ce12e8964e497476f6c6da Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 14:55:46 +0800 Subject: [PATCH 26/46] =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boe-server-all/src/main/resources/application.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/resources/application.properties b/servers/boe-server-all/src/main/resources/application.properties index 866da1b8..4c07e184 100644 --- a/servers/boe-server-all/src/main/resources/application.properties +++ b/servers/boe-server-all/src/main/resources/application.properties @@ -55,7 +55,8 @@ logging.config=classpath:log/logback-@profileActive@.xml # config.id.generator.server.num=1 # config.id.generator.datacenter.num=1 -boe.domain=https://pretest.zcwytd.com +#boe.domain=https://pretest.zcwytd.com +boe.domain=https://u-pre.boe.com orgTree.orgTreeList=${boe.domain}/userbasic/org/list # ????id???????????? orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs From 2bcd42ec41ddd497650bcc37db79452afea38827 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 15:09:37 +0800 Subject: [PATCH 27/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E8=B7=B3=E8=BF=87pushn?= =?UTF-8?q?ame=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/module/boecase/api/CasesApi.java | 8 -------- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 4 ++++ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 7bac9d54..c48b771e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -252,10 +252,6 @@ public class CasesApi extends ApiBaseController { * */ @PostMapping("/exportCaseTitle") public void exportCaseTitle(CaseVo caseVo,HttpServletResponse response){ - log.error("--error---------导出案例标题数据 = " + caseVo); - log.debug("--debug---------导出案例标题数据 = " + caseVo); - log.info("----info-------导出案例标题数据 = " + caseVo); - System.out.println("--println------导出案例标题数据--------------------" +caseVo); OutputStream outputStream; try { outputStream = response.getOutputStream(); @@ -268,19 +264,15 @@ public class CasesApi extends ApiBaseController { map.put("案主所在组织全路径","department"); map.put("同步时间","exportDate"); map.put("查看次数","views"); - log.error("-----------map = " + map.toString()); List list = casesService.managerCaseTitleList(caseVo); - log.error("-----------list = " + list.toString()); List exportVos = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); for (Cases c:list){ - log.error(c.getAuthorId() + "------------c = " + c); CaseExportVo caseExportVo = new CaseExportVo(); caseExportVo.setTitle(c.getTitle()); caseExportVo.setSummary(c.getSummary()==null?"":c.getSummary()); caseExportVo.setAuthorName(c.getAuthorName()==null?"":c.getAuthorName()); User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId())); - log.error("------------user = " + user); caseExportVo.setUserNo(user.getUserNo()==null?"":user.getUserNo()); caseExportVo.setDepartment(c.getDepartment()==null?"":c.getDepartment()); caseExportVo.setExportDate(now); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 11f3ca36..bb9f22d6 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -134,6 +134,10 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR casesRecommendPushRecord.setCaseTitle(cases.getTitle()); casesRecommendPushRecord.setPushUserId(userId); casesRecommendPushRecord.setPushUserName(userMap.get(userId) != null ? userMap.get(userId).toString() : null); + if (userMap.get(userId) == null){ + log.info("---------PushUserName=null {}", userMap.get(userId)); + continue; + } casesRecommendPushRecord.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus()); //默认未查看 casesRecommendPushRecord.setReadFlag(0); From e4e95e7308f5e49a7174b5be11bf8f7a399d6123 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:01:17 +0800 Subject: [PATCH 28/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90pageNo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/import/usergroup-import.xlsx | Bin 10746 -> 10746 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/servers/boe-server-all/src/main/resources/import/usergroup-import.xlsx b/servers/boe-server-all/src/main/resources/import/usergroup-import.xlsx index 8f6b7eb3e4091802ae92d9fc21aca6ce873786fe..767bbdf3e7a9f59e14c8f817cbaeabba1439b645 100644 GIT binary patch literal 10746 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 literal 10746 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 Date: Sun, 6 Aug 2023 16:01:28 +0800 Subject: [PATCH 29/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90pageNo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/vo/UserListParam.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java index 0f063a3d..8b08e888 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java @@ -15,5 +15,7 @@ public class UserListParam { @Builder.Default private int page = 1; @Builder.Default + private int pageNo = 1; + @Builder.Default private int pageSize = 10; } From d620900bc1290f31360b13df1c35395c109d0d4d Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:17:32 +0800 Subject: [PATCH 30/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90pageNo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 14 +++++++------- .../java/com/xboe/api/vo/AuditListParam.java | 2 +- .../java/com/xboe/api/vo/UserListParam.java | 4 ++-- .../boecase/service/impl/CasesServiceImpl.java | 17 ++++++++++++++--- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 93dd6b78..39cdb58f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -35,7 +35,7 @@ public class ThirdApi { public List getAllUserList(UserListParam userListParam, String token) { log.info("获取用户"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); - log.info("获取用户返回值 {}",resp); + log.info("获取用户返回值1 {}",resp); return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, UserInfoListRootBean.class).success()) .map(UserInfoListRootBean::getResult) .map(result -> Opt.ofEmptyAble(result.getUserInfoList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList())) @@ -45,15 +45,15 @@ public class ThirdApi { private void getAllUserList(UserListParam userListParam, String token, List userInfoLists) { log.info("获取用户2"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); - log.info("获取用户返回值 {}",resp); + log.info("获取用户返回值2 {}",resp); Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, UserInfoListRootBean.class).success()).map(UserInfoListRootBean::getResult).map(UserInfoListRootBean.ResultData::getUserInfoList).stream().flatMap(Collection::stream).forEach(userInfoLists::add); } private void nextPage(UserListParam userListParam, String token, List userInfoLists, UserInfoListRootBean.ResultData t) { - log.info("获取用户--" + userListParam.getPage()); - if (t.getTotalPage() > userListParam.getPage()) { - REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPage(), t.getTotalPage()).parallel().forEach(i -> getAllUserList(userListParam.withPage(i + 1), token, userInfoLists))).join(); + log.info("获取用户--" + userListParam.getPageNo()); + if (t.getTotalPage() > userListParam.getPageNo()) { + REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPageNo(), t.getTotalPage()).parallel().forEach(i -> getAllUserList(userListParam.withPageNo(i + 1), token, userInfoLists))).join(); } } @@ -73,8 +73,8 @@ public class ThirdApi { } private void nextPage(AuditListParam userListParam, List t, Result result, String token) { - if (result.getTotalPage() > userListParam.getPage()) { - REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPage(), result.getTotalPage()).parallel().forEach(i -> getAllAudienceList(userListParam.withPage(i + 1), t, token))).join(); + if (result.getTotalPage() > userListParam.getPageNo()) { + REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPageNo(), result.getTotalPage()).parallel().forEach(i -> getAllAudienceList(userListParam.withPageNo(i + 1), t, token))).join(); } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/AuditListParam.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/AuditListParam.java index 32c80e17..fa554cf6 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/AuditListParam.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/AuditListParam.java @@ -9,6 +9,6 @@ import lombok.*; @AllArgsConstructor public class AuditListParam implements Cloneable { private String audienceId; - private Integer page; + private Integer pageNo; private Integer pageSize; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java index 8b08e888..164bf818 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserListParam.java @@ -12,8 +12,8 @@ public class UserListParam { private String departId; private String userNo; private String realName; - @Builder.Default - private int page = 1; +// @Builder.Default +// private int page = 1; @Builder.Default private int pageNo = 1; @Builder.Default diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 4f651266..b80ad0c4 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -178,6 +178,12 @@ public class CasesServiceImpl implements ICasesService { @Override public PageList queryPageCasesV2(CasePageVo caseVo) { + String type = caseVo.getType(); + if (!StrUtil.equals(type,"excellent")) { + caseVo.setOrderField(""); + caseVo.setOrderAsc(null); + } + String keyword = caseVo.getKeyWord(); QueryBuilder query = QueryBuilder.from(Cases.class); PageList page = null; @@ -285,10 +291,15 @@ public class CasesServiceImpl implements ICasesService { } else { order = OrderCondition.desc(caseVo.getOrderField()); } - } else { - order = OrderCondition.desc("sysCreateTime"); } - query.addOrder(order); + if (StrUtil.equals(type,"new")) { + order = OrderCondition.desc("sysCreateTime"); + } else if (StrUtil.equals(type,"hot")) { + order = OrderCondition.desc("views"); + } + if(Objects.nonNull(order)) { + query.addOrder(order); + } query.addFilters(filters); query.setPageIndex(caseVo.getPageIndex()); query.setPageSize(caseVo.getPageSize()); From 899cebbcc9134f232f71a697f671a7d441f9c3b0 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:23:07 +0800 Subject: [PATCH 31/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90pageNo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index bb9f22d6..7ef27663 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -98,7 +98,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR if (CollectionUtil.isNotEmpty(casesRecommendLaunch.getGroupIds())) { long t2 = System.currentTimeMillis(); for (String groupId : casesRecommendLaunch.getGroupIds()) { - List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(groupId).pageSize(100).page(1).build(), token); + List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(groupId).pageSize(100).pageNo(1).build(), token); if (CollectionUtil.isNotEmpty(allAudienceList)) { allAudienceList.forEach(auditList -> userIds.add(String.valueOf(auditList.getUserId()))); } From 26aeaf10a587f44b14e440a97b23bac9e1427dbc Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:28:09 +0800 Subject: [PATCH 32/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 7ef27663..576ceded 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -86,8 +86,10 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR for (String orgId : casesRecommendLaunch.getDeptIds()) { UserListParam build = UserListParam.builder().departId(orgId).pageSize(100).build(); List allUserList = thirdApi.getAllUserList(build, token); + log.info("---------组织查询 {}", allUserList); if (CollectionUtil.isNotEmpty(allUserList)) { for (UserInfoList userInfo : allUserList) { + log.info("---------userInfo.getId() {}", userInfo.getId()); userIds.add(String.valueOf(userInfo.getId())); } } From c1fa37b96729221d96059c79e3c66c5e25d159e5 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:30:30 +0800 Subject: [PATCH 33/46] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesRecommendPushRecordServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 576ceded..913d06d1 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -107,6 +107,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR } log.info("耗时受众查询 {}", (System.currentTimeMillis() - t2) / 1000); } + log.info("---------userIds {}", userIds); if (CollectionUtil.isEmpty(userIds)) { throw new RuntimeException("推荐人不能为空"); } From 4a0b7e0425e80269e69bd14d8502fbaed787e28e Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:42:46 +0800 Subject: [PATCH 34/46] =?UTF-8?q?UserInfoList=20departId=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 6 +-- .../com/xboe/api/vo/UserInfoListRootBean.java | 2 +- .../java/com/xboe/api/vo/UserInfoListVo.java | 41 +++++++++++++++++++ .../CasesRecommendPushRecordServiceImpl.java | 4 +- 4 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 39cdb58f..56ef60b5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -32,7 +32,7 @@ public class ThirdApi { private String searchUserListUrl; - public List getAllUserList(UserListParam userListParam, String token) { + public List getAllUserList(UserListParam userListParam, String token) { log.info("获取用户"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); log.info("获取用户返回值1 {}",resp); @@ -42,7 +42,7 @@ public class ThirdApi { .orElse(ListUtil.toList()); } - private void getAllUserList(UserListParam userListParam, String token, List userInfoLists) { + private void getAllUserList(UserListParam userListParam, String token, List userInfoLists) { log.info("获取用户2"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); log.info("获取用户返回值2 {}",resp); @@ -50,7 +50,7 @@ public class ThirdApi { } - private void nextPage(UserListParam userListParam, String token, List userInfoLists, UserInfoListRootBean.ResultData t) { + private void nextPage(UserListParam userListParam, String token, List userInfoLists, UserInfoListRootBean.ResultData t) { log.info("获取用户--" + userListParam.getPageNo()); if (t.getTotalPage() > userListParam.getPageNo()) { REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPageNo(), t.getTotalPage()).parallel().forEach(i -> getAllUserList(userListParam.withPageNo(i + 1), token, userInfoLists))).join(); diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java index 2c4be964..120438ad 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java @@ -31,7 +31,7 @@ public class UserInfoListRootBean { private int totalElement; private int totalPage; - private List userInfoList; + private List userInfoList; } } \ No newline at end of file diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java new file mode 100644 index 00000000..33e2a6b9 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java @@ -0,0 +1,41 @@ +package com.xboe.api.vo; + + +import lombok.Data; + +@Data +public class UserInfoListVo { + + private long id; + private String bandCode; + private String bandDesc; + private Boolean deleted; + private String departId; + private String description; + private String domainId; + private String departName; + private String duty; + private int employeeStatus; + private String companyId; + private String orgName; + private Integer gender; + private String jobName; + private String kid; + private int learningDuration; + private String mobile; + private String realName; + private String oldDepartId; + private String orgNamePath; + private String orgTreeType; + private String payrollPlaceId; + private String payrollPlaceName; + private long personId; + private String positionMgrLevel; + private String rank; + private long sassId; + private int status; + private String telephoneNo; + private String userNo; + private String email; + private String avatar; +} \ No newline at end of file diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 913d06d1..28c429f8 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -85,10 +85,10 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR long tt = System.currentTimeMillis(); for (String orgId : casesRecommendLaunch.getDeptIds()) { UserListParam build = UserListParam.builder().departId(orgId).pageSize(100).build(); - List allUserList = thirdApi.getAllUserList(build, token); + List allUserList = thirdApi.getAllUserList(build, token); log.info("---------组织查询 {}", allUserList); if (CollectionUtil.isNotEmpty(allUserList)) { - for (UserInfoList userInfo : allUserList) { + for (UserInfoListVo userInfo : allUserList) { log.info("---------userInfo.getId() {}", userInfo.getId()); userIds.add(String.valueOf(userInfo.getId())); } From ffe2e775ff01b6dbe93f39905b849eafd99bb1fb Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 16:56:46 +0800 Subject: [PATCH 35/46] =?UTF-8?q?UserInfoList=20=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 10 ++++++++-- .../java/com/xboe/api/vo/UserInfoListRootBean.java | 2 +- .../src/main/java/com/xboe/api/vo/UserInfoListVo.java | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 56ef60b5..5140444e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -35,10 +35,16 @@ public class ThirdApi { public List getAllUserList(UserListParam userListParam, String token) { log.info("获取用户"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); + UserInfoListRootBean userInfoListRootBean1 = JSONUtil.toBean(resp, UserInfoListRootBean.class); + log.info("userInfoListRootBean1 = " + userInfoListRootBean1); + List list = userInfoListRootBean1.getResult().getList(); + log.info("list = " + list); + + log.info("获取用户返回值1 {}",resp); return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, UserInfoListRootBean.class).success()) .map(UserInfoListRootBean::getResult) - .map(result -> Opt.ofEmptyAble(result.getUserInfoList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList())) + .map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList())) .orElse(ListUtil.toList()); } @@ -46,7 +52,7 @@ public class ThirdApi { log.info("获取用户2"); String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); log.info("获取用户返回值2 {}",resp); - Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, UserInfoListRootBean.class).success()).map(UserInfoListRootBean::getResult).map(UserInfoListRootBean.ResultData::getUserInfoList).stream().flatMap(Collection::stream).forEach(userInfoLists::add); + Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, UserInfoListRootBean.class).success()).map(UserInfoListRootBean::getResult).map(UserInfoListRootBean.ResultData::getList).stream().flatMap(Collection::stream).forEach(userInfoLists::add); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java index 120438ad..be825f87 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListRootBean.java @@ -31,7 +31,7 @@ public class UserInfoListRootBean { private int totalElement; private int totalPage; - private List userInfoList; + private List list; } } \ No newline at end of file diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java index 33e2a6b9..3f82037c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserInfoListVo.java @@ -38,4 +38,6 @@ public class UserInfoListVo { private String userNo; private String email; private String avatar; + private String positionList; + } \ No newline at end of file From b038fcf0258c3ed831562a2ed8ae42e2263c05be Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 18:22:15 +0800 Subject: [PATCH 36/46] =?UTF-8?q?=E6=97=A0=E5=8F=97=E4=BC=97=E7=9A=84?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BA=BA=E5=8F=AF=E4=BB=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/module/course/api/CoursePortalApi.java | 2 ++ .../src/main/java/com/xboe/school/study/api/StudyCourseApi.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index d25c8767..330b8615 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -269,6 +269,8 @@ public class CoursePortalApi extends ApiBaseController{ // return wrap(JsonResponseStatus.NO_CONTENT, "您无学习此课程的权限,请与管理员联系",rs); // } + }else { + pass = true; } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index b308a739..f02cd96d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -169,6 +169,8 @@ public class StudyCourseApi extends ApiBaseController{ break; } } + }else { + pass = true; } List cclist=contentService.getByCourseId(cid); From 2e9ec5b70afec4711720a13fb8c480f8e55ab75a Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 19:21:46 +0800 Subject: [PATCH 37/46] =?UTF-8?q?=E4=B8=93=E4=B8=9A=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesServiceImpl.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index b80ad0c4..24daa597 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -899,8 +899,22 @@ public class CasesServiceImpl implements ICasesService { @Override public List majorTypes() { List major_type = sysDictionaryDao.findByKey("major_type"); - //cm.caseId=c.id and - String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; + String hql1 = "select major_type from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')"; + List listByHql = casesDao.findListByHql(hql1); + List dictItems = new ArrayList<>(); + log.debug("--listByHql :{}", listByHql.size()); + for (DictItem d : major_type) { + int i = 0; + for (Object[] objs : listByHql) { + String s = (String) objs[0]; + if (s.contains(d.getCode())) { + i++; + } + } + d.setExplanation(String.valueOf(i)); + dictItems.add(d); + } +/* String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { @@ -911,7 +925,7 @@ public class CasesServiceImpl implements ICasesService { dictItems.add(d); } } - } + }*/ return dictItems; } From 6b5a4b5d5d3295383849495ceb3e7b904298bc1b Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Sun, 6 Aug 2023 19:53:01 +0800 Subject: [PATCH 38/46] =?UTF-8?q?=E4=B8=93=E4=B8=9A=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CasesServiceImpl.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 24daa597..4185e849 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -899,20 +899,21 @@ public class CasesServiceImpl implements ICasesService { @Override public List majorTypes() { List major_type = sysDictionaryDao.findByKey("major_type"); - String hql1 = "select major_type from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')"; - List listByHql = casesDao.findListByHql(hql1); + String hql1 = "select majorType from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')"; + List listByHql = casesDao.findListByHql(hql1); List dictItems = new ArrayList<>(); - log.debug("--listByHql :{}", listByHql.size()); for (DictItem d : major_type) { - int i = 0; - for (Object[] objs : listByHql) { - String s = (String) objs[0]; - if (s.contains(d.getCode())) { - i++; + d.setExplanation("0"); + boolean flag = false; + for (String str : listByHql) { + if (str.contains(d.getCode()) && !d.getCode().equals("")) { + d.setExplanation(String.valueOf(Integer.parseInt(d.getExplanation()) + 1)); + flag = true; } } - d.setExplanation(String.valueOf(i)); - dictItems.add(d); + if (flag){ + dictItems.add(d); + } } /* String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; List listByHql = casesDao.findListByHql(hql); From bf61f06fc381184c2067460f33316b90e901b731 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 11:49:01 +0800 Subject: [PATCH 39/46] =?UTF-8?q?=E4=B8=93=E4=B8=9A=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/boecase/service/impl/CasesServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 4185e849..55bf8d0c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -899,7 +899,7 @@ public class CasesServiceImpl implements ICasesService { @Override public List majorTypes() { List major_type = sysDictionaryDao.findByKey("major_type"); - String hql1 = "select majorType from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')"; + /* String hql1 = "select majorType from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')"; List listByHql = casesDao.findListByHql(hql1); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { @@ -914,8 +914,8 @@ public class CasesServiceImpl implements ICasesService { if (flag){ dictItems.add(d); } - } -/* String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; + }*/ + String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId"; List listByHql = casesDao.findListByHql(hql); List dictItems = new ArrayList<>(); for (DictItem d : major_type) { @@ -926,7 +926,7 @@ public class CasesServiceImpl implements ICasesService { dictItems.add(d); } } - }*/ + } return dictItems; } From a3f73309d0c604c839b6d6f39ad5f637d68855c9 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 14:56:31 +0800 Subject: [PATCH 40/46] =?UTF-8?q?=E5=8F=97=E4=BC=97=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/api/CoursePortalApi.java | 18 +++++++++++++--- .../xboe/school/study/api/StudyCourseApi.java | 21 +++++++++++++++---- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 330b8615..bc8d8d38 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -4,9 +4,14 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import com.xboe.api.ThirdApi; +import com.xboe.api.vo.AuditList; +import com.xboe.api.vo.AuditListParam; import com.xboe.core.JsonResponseStatus; import com.xboe.module.usergroup.entity.UserGroupItem; import org.apache.commons.lang3.StringUtils; @@ -78,6 +83,9 @@ public class CoursePortalApi extends ApiBaseController{ @Autowired private IStudyCourseService studyCourseService; + @Resource + private ThirdApi thirdApi; + /** * 根据多个课程id返回对应的课程的图片.返回结果如下, * { @@ -226,7 +234,7 @@ public class CoursePortalApi extends ApiBaseController{ * @return */ @RequestMapping(value="/detail",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> detail(String id,Boolean addView,Boolean crowd,Boolean preview){ + public JsonResponse> detail(String id,Boolean addView,Boolean crowd,Boolean preview, HttpServletRequest request){ if(StringUtils.isBlank(id)) { return badRequest("参数错误,未指定课程"); } @@ -255,11 +263,15 @@ public class CoursePortalApi extends ApiBaseController{ boolean pass = false; if(!preview) { + String token = request.getHeader("token"); if (!courseCrowdList.isEmpty()) { for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 - List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - if (hasItem != null && !hasItem.isEmpty()) { +// List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); + List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); + log.debug("=--------- allAudienceList: " +allAudienceList); + List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); + if (userIdList.contains(aid)) { pass = true; break; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index f02cd96d..f3155e86 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -5,7 +5,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import com.xboe.api.ThirdApi; +import com.xboe.api.vo.AuditList; +import com.xboe.api.vo.AuditListParam; import com.xboe.module.usergroup.entity.UserGroupItem; import com.xboe.module.usergroup.service.IUserGroupService; import org.apache.commons.lang3.StringUtils; @@ -50,6 +54,9 @@ import com.xboe.school.study.service.IStudySignupService; import lombok.extern.slf4j.Slf4j; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + /** * 课程学习的内容 */ @@ -82,7 +89,10 @@ public class StudyCourseApi extends ApiBaseController{ @Autowired private IUserGroupService userGroupService; - + + @Resource + private ThirdApi thirdApi; + /** * 用于查询课程的学习记录 * @param pager @@ -140,7 +150,7 @@ public class StudyCourseApi extends ApiBaseController{ * @return */ @RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> loadDetail(String cid,Boolean addView,Boolean crowd){ + public JsonResponse> loadDetail(String cid,Boolean addView,Boolean crowd, HttpServletRequest request){ if(StringUtils.isBlank(cid)){ return error("无课程信息"); } @@ -161,10 +171,13 @@ public class StudyCourseApi extends ApiBaseController{ boolean pass = false; if (!courseCrowdList.isEmpty()) { + String token = request.getHeader("token"); for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 - List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - if (hasItem != null && !hasItem.isEmpty()) { +// List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); + List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); + List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); + if (userIdList.contains(aid)) { pass = true; break; } From 18f35c0f8123aeee5fa490ac9c5bb1539d913811 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 15:07:01 +0800 Subject: [PATCH 41/46] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/course/api/CoursePortalApi.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index bc8d8d38..17e117fc 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -263,11 +263,14 @@ public class CoursePortalApi extends ApiBaseController{ boolean pass = false; if(!preview) { + log.debug("=--------- 开始查询受众信息 ---------------------------------"); String token = request.getHeader("token"); + log.debug("=--------- 获取token token = " + token); if (!courseCrowdList.isEmpty()) { for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); + log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); log.debug("=--------- allAudienceList: " +allAudienceList); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); @@ -286,7 +289,7 @@ public class CoursePortalApi extends ApiBaseController{ } } - + log.debug("=--------- 是否有权限查看此课程: " +pass); List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); From 900f297c86bb35cc530ffe8657c667ab133f90d2 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 15:21:41 +0800 Subject: [PATCH 42/46] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xboe/module/course/api/CoursePortalApi.java | 5 +++++ .../main/java/com/xboe/school/study/api/StudyCourseApi.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 17e117fc..a61d8202 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -264,15 +264,19 @@ public class CoursePortalApi extends ApiBaseController{ boolean pass = false; if(!preview) { log.debug("=--------- 开始查询受众信息 ---------------------------------"); + log.error("=--------- 开始查询受众信息 ---------------------------------"); String token = request.getHeader("token"); log.debug("=--------- 获取token token = " + token); + log.error("=--------- 获取token token = " + token); if (!courseCrowdList.isEmpty()) { for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); + log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); log.debug("=--------- allAudienceList: " +allAudienceList); + log.error("=--------- allAudienceList: " +allAudienceList); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); if (userIdList.contains(aid)) { pass = true; @@ -290,6 +294,7 @@ public class CoursePortalApi extends ApiBaseController{ } log.debug("=--------- 是否有权限查看此课程: " +pass); + log.error("=--------- 是否有权限查看此课程: " +pass); List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index f3155e86..08e90d9a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -171,6 +171,8 @@ public class StudyCourseApi extends ApiBaseController{ boolean pass = false; if (!courseCrowdList.isEmpty()) { + log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------"); + log.error("=----studyIndex----- 开始查询受众信息 ---------------------------------"); String token = request.getHeader("token"); for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 From 5d7b751e63b5ee49e74f02b685b331674526bb0e Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 15:31:30 +0800 Subject: [PATCH 43/46] =?UTF-8?q?=E4=BD=BF=E7=94=A8token=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=8F=97=E4=BC=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/module/course/api/CoursePortalApi.java | 2 +- .../src/main/java/com/xboe/school/study/api/StudyCourseApi.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index a61d8202..9c1e9cf1 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -265,7 +265,7 @@ public class CoursePortalApi extends ApiBaseController{ if(!preview) { log.debug("=--------- 开始查询受众信息 ---------------------------------"); log.error("=--------- 开始查询受众信息 ---------------------------------"); - String token = request.getHeader("token"); + String token = request.getHeader("XBOE-Access-Token"); log.debug("=--------- 获取token token = " + token); log.error("=--------- 获取token token = " + token); if (!courseCrowdList.isEmpty()) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 08e90d9a..e05243a0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -173,7 +173,7 @@ public class StudyCourseApi extends ApiBaseController{ if (!courseCrowdList.isEmpty()) { log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------"); log.error("=----studyIndex----- 开始查询受众信息 ---------------------------------"); - String token = request.getHeader("token"); + String token = request.getHeader("XBOE-Access-Token"); for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); From 3951d245fbfb75a063a1e6010046d5c1fd519fba Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 16:58:24 +0800 Subject: [PATCH 44/46] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8F=97=E4=BC=97-?= =?UTF-8?q?=E4=BE=8B=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 39 +++++++++ .../java/com/xboe/api/vo/DynamicBean.java | 34 ++++++++ .../java/com/xboe/api/vo/UserDynamic.java | 87 +++++++++++++++++++ .../com/xboe/api/vo/UserDynamicResult.java | 22 +++++ .../com/xboe/api/vo/UserdynamicParam.java | 16 ++++ .../module/course/api/CoursePortalApi.java | 17 ++-- .../xboe/school/study/api/StudyCourseApi.java | 30 +++---- .../src/main/resources/application.properties | 2 + 8 files changed, 225 insertions(+), 22 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/DynamicBean.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamic.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamicResult.java create mode 100644 servers/boe-server-all/src/main/java/com/xboe/api/vo/UserdynamicParam.java diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 5140444e..14088e67 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -31,6 +31,9 @@ public class ThirdApi { @Value("${userBasic.searchUserList}") private String searchUserListUrl; + @Value("${statApi.userdynamicList}") + private String userdynamicListUrl; + public List getAllUserList(UserListParam userListParam, String token) { log.info("获取用户"); @@ -89,4 +92,40 @@ public class ThirdApi { Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, AuditRootBean.class).success()).map(AuditRootBean::getResult).map(Result::getList).stream().flatMap(Collection::stream).forEach(list::add); } + public List getAllUserdynamicList(UserdynamicParam userdynamicParam, String token) { + String resp = Optional.ofNullable(HttpRequest.post(userdynamicListUrl).body(JSONUtil.toJsonStr(userdynamicParam)).header("XBOE-Access-Token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); + log.error("=1----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + resp ); + return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, DynamicBean.class).success()) + .map(DynamicBean::getResult) + .map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userdynamicParam, t, result, token)).orElse(ListUtil.toList())) + .orElse(ListUtil.toList()); + } + private void nextPage(UserdynamicParam userdynamicParam, List t, UserDynamicResult result, String token) { + log.error("=2----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam ); + if (result.getTotalPages() > userdynamicParam.getPageIndex()) { + REQUEST_TASK.submit(() -> IntStream.range(userdynamicParam.getPageIndex(), result.getTotalPages()).parallel().forEach(i -> getAllUserdynamicList(userdynamicParam.withPageIndex(i + 1), t, token))).join(); + } + } + + private void getAllUserdynamicList(UserdynamicParam userdynamicParam, List list, String token) { + log.error("=3----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam ); + String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userdynamicParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); + Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success()).map(DynamicBean::getResult).map(UserDynamicResult::getList).stream().flatMap(Collection::stream).forEach(list::add); + } + + public static void main(String[] args) { + String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893"; + String resp = Optional.ofNullable(HttpRequest.post("https://u-pre.boe.com/statApi/xboe/m/stat/userdynamic/list").body(JSONUtil.toJsonStr(UserdynamicParam.builder(). + aid(Long.parseLong("965342027497607168")).pageSize(1000).pageIndex(1).build())).header("XBOE-Access-Token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); + System.out.println(" resp = " +resp); + DynamicBean a = JSONUtil.toBean(resp, DynamicBean.class); + System.out.println(" a = " +a); + System.out.println(" a = " + a.getResult().getCount()); + List list = a.getResult().getList(); + System.out.println(" list = " +list.size()); + System.out.println(" list = " +list); + + + + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/DynamicBean.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/DynamicBean.java new file mode 100644 index 00000000..e543275c --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/DynamicBean.java @@ -0,0 +1,34 @@ +package com.xboe.api.vo; + + +import cn.hutool.json.JSONUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; + +@Data +@Slf4j +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DynamicBean { + + private String error; + private String message; + private String permissions; + private UserDynamicResult result; + private int status; + private Date timestamp; + + public DynamicBean success() { + if (this.status != 200) { + log.error("获取受众列表失败----{}", JSONUtil.toJsonPrettyStr(this)); + return null; + } + return this; + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamic.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamic.java new file mode 100644 index 00000000..6815e41f --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamic.java @@ -0,0 +1,87 @@ +package com.xboe.api.vo; + +import com.xboe.core.orm.IdEntity; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserDynamic extends IdEntity { + + + private static final long serialVersionUID = -2536708166103273425L; + + /** + * 事件动态 + */ + public final static int TYPE_EVENT=1; + + /** + * 其它动态 + */ + public final static int TYPE_OTHER=9; + + /** + * 类型 + * 1表事件动态 2表非事件动态 + * */ + private Integer type; + + /** + * 动态的标题 + */ + private String title; + + /** + * 事件的key + * */ + private String eventKey; + + /** + * 事件id + * */ + private String eventId; + + /** + * 动态月份 + * yyyyMM + * */ + private Integer month; + + /** + * 内容类型 + * */ + private String contentType; + + /** + * 内容id + * */ + private String contentId; + + /** + * 动态内容 + * */ + private String contentInfo; + + /** + * 用户自定义信息 + */ + private String cusInfo; + + /** + * 动态人id + * */ + private String aid; + + /** + * 用户的名称 + */ + private String aname; + /** + * 是否隐藏 + * */ + private Boolean hidden; + private LocalDateTime eventTime; + + +} \ No newline at end of file diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamicResult.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamicResult.java new file mode 100644 index 00000000..c0e2e617 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserDynamicResult.java @@ -0,0 +1,22 @@ +package com.xboe.api.vo; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class UserDynamicResult { + + private int count; + private int pageSize; + private int totalPages; + private List list; + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserdynamicParam.java b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserdynamicParam.java new file mode 100644 index 00000000..fa607e37 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/api/vo/UserdynamicParam.java @@ -0,0 +1,16 @@ +package com.xboe.api.vo; + +import lombok.*; + +@Data +@Builder +@With +@NoArgsConstructor +@AllArgsConstructor +public class UserdynamicParam { + private Integer pageIndex; + private Integer pageSize = 1000; + private Integer contentType; + private Long aid; + private String hidden; +} \ No newline at end of file diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 9c1e9cf1..7f3cc567 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -12,6 +12,8 @@ import javax.servlet.http.HttpServletRequest; import com.xboe.api.ThirdApi; import com.xboe.api.vo.AuditList; import com.xboe.api.vo.AuditListParam; +import com.xboe.api.vo.UserDynamic; +import com.xboe.api.vo.UserdynamicParam; import com.xboe.core.JsonResponseStatus; import com.xboe.module.usergroup.entity.UserGroupItem; import org.apache.commons.lang3.StringUtils; @@ -263,22 +265,22 @@ public class CoursePortalApi extends ApiBaseController{ boolean pass = false; if(!preview) { - log.debug("=--------- 开始查询受众信息 ---------------------------------"); - log.error("=--------- 开始查询受众信息 ---------------------------------"); + log.error("=--------- 开始查询受众信息 ---------------------------------aid = " + aid); String token = request.getHeader("XBOE-Access-Token"); - log.debug("=--------- 获取token token = " + token); log.error("=--------- 获取token token = " + token); if (!courseCrowdList.isEmpty()) { for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); - log.debug("=--------- allAudienceList: " +allAudienceList); - log.error("=--------- allAudienceList: " +allAudienceList); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); - if (userIdList.contains(aid)) { + log.error("=--------- allAudienceList: " +allAudienceList); + List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); + log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); + List dynamicList = userDynamicList.stream().map(UserDynamic::getContentId).map(Long::parseLong).collect(Collectors.toList()); + log.error(id + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList); + if (userIdList.contains(Long.parseLong(aid)) || dynamicList.contains(id)) { pass = true; break; } @@ -318,6 +320,7 @@ public class CoursePortalApi extends ApiBaseController{ } + @GetMapping("/detail-study") public JsonResponse> detailStudy(String courseId, String aid){ if(StringUtil.isBlank(courseId)){ diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index e05243a0..ef4ad170 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -10,6 +10,8 @@ import java.util.stream.Collectors; import com.xboe.api.ThirdApi; import com.xboe.api.vo.AuditList; import com.xboe.api.vo.AuditListParam; +import com.xboe.api.vo.UserDynamic; +import com.xboe.api.vo.UserdynamicParam; import com.xboe.module.usergroup.entity.UserGroupItem; import com.xboe.module.usergroup.service.IUserGroupService; import org.apache.commons.lang3.StringUtils; @@ -125,8 +127,6 @@ public class StudyCourseApi extends ApiBaseController{ /** * 导出课程学习记录 - * @param courseId - * @param type * @return */ @RequestMapping(value="/export",method = {RequestMethod.GET,RequestMethod.POST}) @@ -146,7 +146,6 @@ public class StudyCourseApi extends ApiBaseController{ /** * 学习页面,加载课程的信息,用于替换portal中的detail方法 - * @param id * @return */ @RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST}) @@ -177,9 +176,15 @@ public class StudyCourseApi extends ApiBaseController{ for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); + log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); - if (userIdList.contains(aid)) { + log.error("=--------- allAudienceList: " +allAudienceList); + List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); + log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); + List dynamicList = userDynamicList.stream().map(UserDynamic::getContentId).map(Long::parseLong).collect(Collectors.toList()); + log.error(cid + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList); + if (userIdList.contains(Long.parseLong(aid)) || dynamicList.contains(cid)) { pass = true; break; } @@ -268,7 +273,7 @@ public class StudyCourseApi extends ApiBaseController{ /** * 记录学习信息,在学习每个资源时都要记录.前端用户打开课程资源按规则调用带着课程及学习信息调用此接口。 - * @param studyId + * @param * @return 返回学习条目的id */ @PostMapping("/study") @@ -399,8 +404,8 @@ public class StudyCourseApi extends ApiBaseController{ * 音视频学习保存,初始化保存学习记录. * 如果已经保存,就不要再保存第二次了,前端注意控制 * {studyId,contentId,courseId,progress,contentType,studyDuration} - * @param itemId - * @param videoTime + * @param + * @param * @return */ @PostMapping("/study-video-save") @@ -455,8 +460,8 @@ public class StudyCourseApi extends ApiBaseController{ } /** * 视频学习完 - * @param itemId - * @param studyId + * @param + * @param * @return */ @PostMapping("/study-video-finish") @@ -482,7 +487,7 @@ public class StudyCourseApi extends ApiBaseController{ /** * 记录视频的学习时间点,前端可以每10秒记录一次,时长是秒 * @param itemId 学习内容条目id - * @param videoTime + * @param * @return */ @PostMapping("/study-video-time") @@ -508,11 +513,6 @@ public class StudyCourseApi extends ApiBaseController{ /** * 追加学习时长,如果有id了,后台就会增加学习时长,如果不是就会减少. * 已经不再使用,二期移到独立的数据统计中了 - * @param stid 记录时间id,非必填项 - * @param scid 学习id, - * @param cid 课程id - * @param ccid 内容id - * @param info 学习信息 * @return */ @Deprecated diff --git a/servers/boe-server-all/src/main/resources/application.properties b/servers/boe-server-all/src/main/resources/application.properties index 4c07e184..6bc8059d 100644 --- a/servers/boe-server-all/src/main/resources/application.properties +++ b/servers/boe-server-all/src/main/resources/application.properties @@ -62,3 +62,5 @@ orgTree.orgTreeList=${boe.domain}/userbasic/org/list orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs userBasic.searchUserList=${boe.domain}/userbasic/user/list audience.usersByAudienceList=${boe.domain}/userbasic/audience/memberList +#获取用户学习课程数据 +statApi.userdynamicList=${boe.domain}/statApi/xboe/m/stat/userdynamic/list \ No newline at end of file From ee67b600d39543c072e1285885753db0906d25e8 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Mon, 7 Aug 2023 21:42:45 +0800 Subject: [PATCH 45/46] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8F=97=E4=BC=97-?= =?UTF-8?q?=E4=BE=8B=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xboe/api/ThirdApi.java | 2 +- .../module/course/api/CoursePortalApi.java | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java index 14088e67..917f8547 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java @@ -109,7 +109,7 @@ public class ThirdApi { private void getAllUserdynamicList(UserdynamicParam userdynamicParam, List list, String token) { log.error("=3----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam ); - String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userdynamicParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); + String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userdynamicParam.builder().pageSize(1000).build())).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败")); Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success()).map(DynamicBean::getResult).map(UserDynamicResult::getList).stream().flatMap(Collection::stream).forEach(list::add); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 7f3cc567..20466c3a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -1,9 +1,6 @@ package com.xboe.module.course.api; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -14,6 +11,7 @@ import com.xboe.api.vo.AuditList; import com.xboe.api.vo.AuditListParam; import com.xboe.api.vo.UserDynamic; import com.xboe.api.vo.UserdynamicParam; +import com.xboe.common.OrderCondition; import com.xboe.core.JsonResponseStatus; import com.xboe.module.usergroup.entity.UserGroupItem; import org.apache.commons.lang3.StringUtils; @@ -263,6 +261,13 @@ public class CoursePortalApi extends ApiBaseController{ preview=true; } +// StudyCourse sc = new StudyCourse(); +// sc.setCourseId(course.getId()); +// sc.setAid(aid); + log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid ); +// PageList rs1= studyCourseService.findPage(1,10, sc, OrderCondition.desc("id"),null); + StudyCourse studyCourse = studyCourseService.findByCourseIdAndAid(course.getId(), aid); + log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); boolean pass = false; if(!preview) { log.error("=--------- 开始查询受众信息 ---------------------------------aid = " + aid); @@ -272,15 +277,19 @@ public class CoursePortalApi extends ApiBaseController{ for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); + log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); log.error("=--------- allAudienceList: " +allAudienceList); + /* List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); List dynamicList = userDynamicList.stream().map(UserDynamic::getContentId).map(Long::parseLong).collect(Collectors.toList()); - log.error(id + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList); - if (userIdList.contains(Long.parseLong(aid)) || dynamicList.contains(id)) { + log.error(id + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList);*/ + + + if (userIdList.contains(Long.parseLong(aid)) || !Objects.isNull(studyCourse)) { pass = true; break; } From b42284b5119e4c996c018446560d1f3236c154a4 Mon Sep 17 00:00:00 2001 From: "lims1@hunktimes.com" Date: Tue, 8 Aug 2023 10:19:39 +0800 Subject: [PATCH 46/46] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8F=97=E4=BC=97-?= =?UTF-8?q?=E4=BE=8B=E5=A4=96=20boe=5Fstudy=5Fcourse=20=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/api/CoursePortalApi.java | 11 +++++------ .../xboe/school/study/api/StudyCourseApi.java | 19 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index 20466c3a..d318ccdb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -264,24 +264,24 @@ public class CoursePortalApi extends ApiBaseController{ // StudyCourse sc = new StudyCourse(); // sc.setCourseId(course.getId()); // sc.setAid(aid); - log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid ); + log.debug("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid ); // PageList rs1= studyCourseService.findPage(1,10, sc, OrderCondition.desc("id"),null); StudyCourse studyCourse = studyCourseService.findByCourseIdAndAid(course.getId(), aid); - log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); + log.debug("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); boolean pass = false; if(!preview) { log.error("=--------- 开始查询受众信息 ---------------------------------aid = " + aid); String token = request.getHeader("XBOE-Access-Token"); - log.error("=--------- 获取token token = " + token); + log.debug("=--------- 获取token token = " + token); if (!courseCrowdList.isEmpty()) { for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); + log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); - log.error("=--------- allAudienceList: " +allAudienceList); + log.debug("=--------- allAudienceList: " +allAudienceList); /* List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); @@ -305,7 +305,6 @@ public class CoursePortalApi extends ApiBaseController{ } log.debug("=--------- 是否有权限查看此课程: " +pass); - log.error("=--------- 是否有权限查看此课程: " +pass); List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index ef4ad170..8022fc88 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -1,10 +1,7 @@ package com.xboe.school.study.api; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import com.xboe.api.ThirdApi; @@ -168,23 +165,25 @@ public class StudyCourseApi extends ApiBaseController{ rs.put("crowds",courseCrowdList); } + StudyCourse studyCourse = service.findByCourseIdAndAid(course.getId(), aid); + log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); boolean pass = false; if (!courseCrowdList.isEmpty()) { log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------"); - log.error("=----studyIndex----- 开始查询受众信息 ---------------------------------"); String token = request.getHeader("XBOE-Access-Token"); for (CourseCrowd c : courseCrowdList) { //同一个受众,同一个只会有一条记录,所以这里就直接查询了 // List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); + log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); - log.error("=--------- allAudienceList: " +allAudienceList); - List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); + log.debug("=--------- allAudienceList: " +allAudienceList); + + /*List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); List dynamicList = userDynamicList.stream().map(UserDynamic::getContentId).map(Long::parseLong).collect(Collectors.toList()); - log.error(cid + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList); - if (userIdList.contains(Long.parseLong(aid)) || dynamicList.contains(cid)) { + log.error(cid + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList);*/ + if (userIdList.contains(Long.parseLong(aid)) || !Objects.isNull(studyCourse)) { pass = true; break; }