diff --git a/servers/boe-server-all/pom.xml b/servers/boe-server-all/pom.xml
index faacfc00..232270fc 100644
--- a/servers/boe-server-all/pom.xml
+++ b/servers/boe-server-all/pom.xml
@@ -1,161 +1,159 @@
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.6.3
-
-
- com.xboe
- boe-server-all
- 2.0.0
- boe-server-all
- BOE 项目所有功能启动工程,用于开发
-
- 1.8
-
-
-
- cn.hutool
- hutool-all
- 5.8.16
-
-
- com.xboe
- xboe-api
- 1.0.0
-
-
- com.xboe
- xboe-module-scorm
- 1.0.0
-
-
- com.xboe
- xboe-core
- 1.0.0
-
-
- com.xboe
- xboe-redis
- 1.0.0
-
-
- com.xboe
- xboe-module-course
- 1.0.0
-
-
- com.xboe
- xboe-module-idconfig
- 1.0.0
-
-
-
- com.xboe
- xboe-module-es
- 1.0.0
-
-
-
- it.sauronsoftware
- jave
- 1.0.2
- system
- ${project.basedir}/src/main/resources/libs/jave-1.0.2.jar
-
-
- com.auth0
- java-jwt
- 3.18.3
-
-
-
-
- org.apache.commons
- commons-lang3
-
-
- commons-codec
- commons-codec
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.6.3
+
+
+ com.xboe
+ boe-server-all
+ 2.0.0
+ boe-server-all
+ BOE 项目所有功能启动工程,用于开发
+
+ 1.8
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 5.2.2
+
+
+ cn.hutool
+ hutool-all
+ 5.8.16
+
+
+ com.xboe
+ xboe-api
+ 1.0.0
+
+
+ com.xboe
+ xboe-module-scorm
+ 1.0.0
+
+
+ com.xboe
+ xboe-core
+ 1.0.0
+
+
+ com.xboe
+ xboe-redis
+ 1.0.0
+
+
+ com.xboe
+ xboe-module-course
+ 1.0.0
+
+
+ com.xboe
+ xboe-module-idconfig
+ 1.0.0
+
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.springframework.boot
- spring-boot-starter-data-redis
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.session
- spring-session-data-redis
-
+
+ com.xboe
+ xboe-module-es
+ 1.0.0
+
-
- mysql
- mysql-connector-java
- 5.1.27
-
-
-
- org.projectlombok
- lombok
- true
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
+
+ it.sauronsoftware
+ jave
+ 1.0.2
+ system
+ ${project.basedir}/src/main/resources/libs/jave-1.0.2.jar
+
+
+ com.auth0
+ java-jwt
+ 3.18.3
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ commons-codec
+ commons-codec
+
-
-
- com.github.whvcse
- easy-captcha
- 1.6.2
-
-
-
- org.apache.poi
- poi
- 4.0.1
-
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.session
+ spring-session-data-redis
+
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
-
-
- org.apache.httpcomponents
- httpclient
-
-
- javax.mail
- javax.mail-api
- 1.5.6
-
+
+ mysql
+ mysql-connector-java
+ 5.1.27
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
-
- org.apache.commons
- commons-email
- 1.4
-
+
+
+ com.github.whvcse
+ easy-captcha
+ 1.6.2
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
+
+ org.apache.httpcomponents
+ httpclient
+
+
+ javax.mail
+ javax.mail-api
+ 1.5.6
+
-
+
+ org.apache.commons
+ commons-email
+ 1.4
+
+
+
com.aspose
slides
@@ -163,28 +161,28 @@
system
${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar
-
- com.aspose
- words
- 15.8.0
- system
- ${project.basedir}/src/main/resources/aspose/aspose-words-15.8.0.jar
-
-
- com.aspose
- cells
- 18.11
- system
- ${project.basedir}/src/main/resources/aspose/aspose-cells-java-18.11.jar
-
+
+ com.aspose
+ words
+ 15.8.0
+ system
+ ${project.basedir}/src/main/resources/aspose/aspose-words-15.8.0.jar
+
+
+ com.aspose
+ cells
+ 18.11
+ system
+ ${project.basedir}/src/main/resources/aspose/aspose-cells-java-18.11.jar
+
-
-
- com.github.ulisesbocchio
- jasypt-spring-boot-starter
- 3.0.3
-
-
+
+
+ com.github.ulisesbocchio
+ jasypt-spring-boot-starter
+ 3.0.3
+
+
org.elasticsearch.client
elasticsearch-rest-high-level-client
7.9.0
@@ -200,27 +198,27 @@
7.9.0
-
-
-
-
- true
- src/main/resources
-
- application-${profileActive}.properties
- application.properties
-
-
-
- false
- src/main/resources
-
- *.properties
-
-
-
-
-
+
+
+
+
+ true
+ src/main/resources
+
+ application-${profileActive}.properties
+ application.properties
+
+
+
+ false
+ src/main/resources
+
+ *.properties
+
+
+
+
+
org.apache.maven.plugins
maven-compiler-plugin
@@ -229,48 +227,48 @@
1.8
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- org.projectlombok
- lombok
-
-
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
true
-
-
-
-
-
- pro
-
- pro
-
-
-
- pre
-
- pre
-
-
-
- test
-
- test
-
-
-
- dev
-
- dev
-
-
- true
-
-
-
+
+
+
+
+
+ pro
+
+ pro
+
+
+
+ pre
+
+ pre
+
+
+
+ test
+
+ test
+
+
+
+ dev
+
+ dev
+
+
+ true
+
+
+
diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java
new file mode 100644
index 00000000..19af8e90
--- /dev/null
+++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/ImportData.java
@@ -0,0 +1,35 @@
+package com.xboe.data.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author : civism
+ * @version 1.0
+ * @date 2023/6/23 17:32
+ */
+@Data
+public class ImportData {
+
+ private String importId;
+
+
+ private List caseIdList;
+
+
+ private List caseTitleList;
+
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class CasesTitle {
+
+ private String caseId;
+
+ private String caseTitle;
+ }
+}
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 3da88829..edbfb3f1 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
@@ -1,5 +1,6 @@
package com.xboe.module.boecase.api;
+import cn.hutool.core.collection.CollUtil;
import com.xboe.common.PageList;
import com.xboe.common.Pagination;
import com.xboe.common.utils.StringUtil;
@@ -17,6 +18,7 @@ import com.xboe.module.dict.entity.DictItem;
import com.xboe.module.excel.ExportsExcelSenderUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -104,9 +106,10 @@ public class CasesApi extends ApiBaseController {
}
@PostMapping("/queryListV2")
- public JsonResponse> queryCaseBreV2(@RequestBody CasePageVo req){
+ public JsonResponse> queryCaseBreV2(@Validated @RequestBody CasePageVo req){
String type = req.getType();
- PageList views = null;
+ PageList views;
+ req.setUserId(getCurrent().getAccountId());
if (type.equals("recommend")) {
views = casesService.queryRecommendPageCasesV2(req);
} else {
@@ -114,8 +117,9 @@ public class CasesApi extends ApiBaseController {
}
if(views!=null){
- if(views.getList()!=null && !views.getList().isEmpty()){
- for (Cases c:views.getList()) {
+ List cases = views.getList();
+ if(CollUtil.isNotEmpty(cases)){
+ for (Cases c: cases) {
StringBuffer stringBuffer = new StringBuffer();
List caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId()));
if(caseId!=null && !caseId.isEmpty()){
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 03c97c71..7ae3dd1e 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
@@ -8,10 +8,9 @@ import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.xboe.common.PageList;
-import com.xboe.common.Pagination;
import com.xboe.core.JsonResponse;
import com.xboe.core.api.ApiBaseController;
-import com.xboe.enums.CasesPushStatusEnum;
+import com.xboe.data.dto.ImportData;
import com.xboe.enums.CasesRecommendLaunchTypeEnum;
import com.xboe.module.boecase.entity.CasesRecommend;
import com.xboe.module.boecase.entity.CasesRecommendLaunchImport;
@@ -30,7 +29,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -56,17 +54,26 @@ public class CasesRecommendApi extends ApiBaseController {
/**
* 用于后台管理分页
*
- * @param pager
* @param casesRecommendVo
* @return
*/
@PostMapping("/page")
- public JsonResponse> page(Pagination pager, CasesRecommendVo casesRecommendVo) {
- PageList page = iCasesRecommendService.page(pager.getPageIndex(), pager.getPageSize(), casesRecommendVo);
+ public JsonResponse> page(@RequestBody CasesRecommendVo casesRecommendVo) {
+ PageList page = iCasesRecommendService.page(casesRecommendVo.getPageIndex(), casesRecommendVo.getPageSize(), casesRecommendVo);
+ // 组装查看率
+ page.getList().forEach(it -> {
+ List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(it.getId());
+ if (CollectionUtil.isNotEmpty(recordList)) {
+ // 查看率:查看率=案例查看人数(各案例查看人数之合)/(当条推荐记录包含的案例 × 用户数)
+ long viewCount = recordList.stream().filter(record -> record.getReadFlag().equals(1)).count();
+ it.setViewRate(String.valueOf(viewCount * 100 / recordList.size()).concat("%"));
+ }
+ });
+
return success(page);
}
- @PostMapping("/delete")
+ @GetMapping("/delete")
public JsonResponse delete(String id) {
if (StringUtils.isBlank(id)) {
return badRequest("缺少必要参数");
@@ -89,7 +96,7 @@ public class CasesRecommendApi extends ApiBaseController {
*/
@GetMapping("/import-info")
public JsonResponse excelImport(String importId) {
- CasesRecommendLaunchImport byId = iCasesRecommendLaunchImportService.getById(importId);
+ CasesRecommendLaunchImport byId = iCasesRecommendLaunchImportService.getByImportId(importId);
return success(byId);
}
@@ -102,11 +109,11 @@ public class CasesRecommendApi extends ApiBaseController {
* @throws Exception
*/
@PostMapping("/import")
- public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception {
+ public JsonResponse excelImport(@RequestParam("file") MultipartFile file) throws Exception {
ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
List> read = reader.read();
- String s = iCasesRecommendLaunchImportService.importData(read);
- return success(s);
+ ImportData importData = iCasesRecommendLaunchImportService.importData(read);
+ return success(importData);
}
@@ -125,7 +132,9 @@ public class CasesRecommendApi extends ApiBaseController {
ExcelWriter writer = ExcelUtil.getWriter();
writer.writeHeadRow(ListUtil.toList("标题"));
- writer.write(dataList);
+ if (CollectionUtil.isNotEmpty(dataList)) {
+ writer.write(dataList);
+ }
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
ServletOutputStream out = response.getOutputStream();
@@ -171,6 +180,7 @@ public class CasesRecommendApi extends ApiBaseController {
if (StringUtils.isEmpty(casesRecommendId)) {
throw new RuntimeException("缺少必要参数");
}
+ CasesRecommend casesRecommend = iCasesRecommendService.findById(casesRecommendId);
// 拿取表格里需要的数据
List recordList = iCasesRecommendPushRecordService.findAllByRecommendId(casesRecommendId);
// 用个List