diff --git a/src/main/java/cn/teammodel/controller/admin/controller/FiveEducationController.java b/src/main/java/cn/teammodel/controller/admin/controller/FiveEducationController.java new file mode 100644 index 0000000..f494747 --- /dev/null +++ b/src/main/java/cn/teammodel/controller/admin/controller/FiveEducationController.java @@ -0,0 +1,32 @@ +package cn.teammodel.controller.admin.controller; + + +import cn.teammodel.common.R; +import cn.teammodel.controller.admin.service.FiveEducationService; +import cn.teammodel.model.dto.admin.common.FiveDto; +import cn.teammodel.model.dto.admin.exam.OverViewDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.util.Map; + +@RestController +@RequestMapping("admin/five") +@Api(tags = "管理员端-五育分析") +public class FiveEducationController { + @Resource + private FiveEducationService fiveEducationService; + @RequestMapping("getAnalysis") + @ApiOperation("获取五育看板详细内容") + public R> getAnalysis(@Valid @RequestBody FiveDto fiveDto, HttpServletRequest request) { + Map res = fiveEducationService.getAnalysis(fiveDto,request); + return R.success(res); + } + +} diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java index 08dda67..96f5777 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java @@ -3,12 +3,19 @@ package cn.teammodel.controller.admin.service.impl; import cn.teammodel.controller.admin.service.*; import cn.teammodel.model.dto.admin.common.FiveDto; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +@Service public class FiveEducationServiceImpl implements FiveEducationService { @Autowired @@ -22,32 +29,41 @@ public class FiveEducationServiceImpl implements FiveEducationService { @Override public Map getAnalysis(FiveDto dto, HttpServletRequest request) { Map integratedResult = new ConcurrentHashMap<>(); + List> futures = new ArrayList<>(); + // 使用自定义线程池或公共线程池 + Executor executor = Executors.newFixedThreadPool(4); // 根据实际情况调整线程数 - // 1. 处理概况分析 + // 1. 概况分析(异步执行) if (dto.getOverViewDto() != null) { - integratedResult.put("overView", - examService.getAnalysis(dto.getOverViewDto(), request)); + futures.add(CompletableFuture.runAsync(() -> { + integratedResult.put("overView", examService.getAnalysis(dto.getOverViewDto(), request)); + }, executor)); } - // 2. 处理艺术分析 + /* // 2. 艺术分析(异步执行) if (dto.getArtAnalysisDto() != null) { - integratedResult.put("artAnalytics", - artService.getArtAnalytics(dto.getArtAnalysisDto(), request)); - } + futures.add(CompletableFuture.runAsync(() -> { + integratedResult.put("artAnalysis", artService.getArtAnalytics(dto.getArtAnalysisDto(), request)); + }, executor)); + }*/ - // 3. 处理德育分析 + // 3. 德育分析(异步执行) if (dto.getLaborDto() != null) { - integratedResult.put("moralAnalysis", - laborEducationService.getAnalysis(dto.getLaborDto(), request)); + futures.add(CompletableFuture.runAsync(() -> { + integratedResult.put("moralAnalysis", laborEducationService.getAnalysis(dto.getLaborDto(), request)); + }, executor)); } - // 4. 处理劳育分析 + // 4. 劳育分析(异步执行) if (dto.getMoralDto() != null) { - integratedResult.put("laborAnalysis", - moralLaborService.getAnalysis(dto.getMoralDto(), request)); + futures.add(CompletableFuture.runAsync(() -> { + integratedResult.put("laborAnalysis", moralLaborService.getAnalysis(dto.getMoralDto(), request)); + }, executor)); } - return integratedResult; + // 等待所有异步任务完成 + CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); + return integratedResult; } } diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java index ae37cd0..ef74e62 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java @@ -87,7 +87,7 @@ public class LaborEducationServiceImpl implements LaborEducationService { //根据具体参数查询相关课列内容 List records; LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository); - String schoolId = SecurityUtil.getLoginUser().getSchoolId(); + String schoolId = laborDto.getCode(); String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, laborDto.getCode()); Long startTime = laborDto.getStartTime(); Long endTime = laborDto.getEndTime(); diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java index f3bb8af..d768402 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java @@ -88,7 +88,7 @@ public class MoralEducationServiceImpl implements MoralEducationService { //根据具体参数查询相关课列内容 List records; LessonRecordQueryService queryService = new LessonRecordQueryService(lessonRecordRepository); - String schoolId = SecurityUtil.getLoginUser().getSchoolId(); + String schoolId = moralDto.getCode(); String lessonRecordKey = String.format(PK.PK_LESSON_RECORD, moralDto.getCode()); Long startTime = moralDto.getStartTime(); Long endTime = moralDto.getEndTime();