From 1944abb0bc02aedfe3d5659d2ccab46d13db52f2 Mon Sep 17 00:00:00 2001 From: "hhb@hotmail.com" Date: Fri, 28 Feb 2025 18:49:13 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=95=99=E5=AD=A6=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AdminIndexDutyServiceImpl.java | 7 +++ .../frontend/AppraiseController.java | 5 +- .../model/vo/appraise/AppraiseRecordVo.java | 2 + .../teammodel/service/EvaluationService.java | 3 +- .../service/impl/EvaluationServiceImpl.java | 52 ++++++++++++++++--- 5 files changed, 60 insertions(+), 9 deletions(-) diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/AdminIndexDutyServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/AdminIndexDutyServiceImpl.java index 94bf327..204a594 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/AdminIndexDutyServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/AdminIndexDutyServiceImpl.java @@ -362,6 +362,13 @@ public class AdminIndexDutyServiceImpl implements AdminIndexDutyService { double percentageChange = 0; if (lastMonthTotal != 0) { percentageChange = ((double) (currentMonthTotal - lastMonthTotal) / lastMonthTotal) * 100; + } else { + if (currentMonthTotal > 0) { + percentageChange = 100; + } else { + percentageChange = 0; + } + } String formattedPercentageChange = String.format("%.2f", percentageChange); mapper.put("percentageChange", formattedPercentageChange); diff --git a/src/main/java/cn/teammodel/controller/frontend/AppraiseController.java b/src/main/java/cn/teammodel/controller/frontend/AppraiseController.java index b722c48..2cfc5ae 100644 --- a/src/main/java/cn/teammodel/controller/frontend/AppraiseController.java +++ b/src/main/java/cn/teammodel/controller/frontend/AppraiseController.java @@ -16,6 +16,7 @@ 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.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; @@ -74,8 +75,8 @@ public class AppraiseController { @PostMapping("findVoteRecord") @ApiOperation(value = "多条件查询当前登录老师的学生评价(投票)") - public R> findMyVoteRecord(@Valid @RequestBody FindVoteRecordDto findVoteRecordDto) { - List res = evaluationService.findVoteRecord(findVoteRecordDto); + public R> findMyVoteRecord(@Valid @RequestBody FindVoteRecordDto findVoteRecordDto, HttpServletRequest request) { + List res = evaluationService.findVoteRecord(findVoteRecordDto,request); return R.success(res); } diff --git a/src/main/java/cn/teammodel/model/vo/appraise/AppraiseRecordVo.java b/src/main/java/cn/teammodel/model/vo/appraise/AppraiseRecordVo.java index e33594f..474d35c 100644 --- a/src/main/java/cn/teammodel/model/vo/appraise/AppraiseRecordVo.java +++ b/src/main/java/cn/teammodel/model/vo/appraise/AppraiseRecordVo.java @@ -14,5 +14,7 @@ public class AppraiseRecordVo { private String avatar; private String targetId; private String targetType; + private String classId; + private String className; private AppraiseRecordItem info; } diff --git a/src/main/java/cn/teammodel/service/EvaluationService.java b/src/main/java/cn/teammodel/service/EvaluationService.java index b02f65e..956504c 100644 --- a/src/main/java/cn/teammodel/service/EvaluationService.java +++ b/src/main/java/cn/teammodel/service/EvaluationService.java @@ -8,6 +8,7 @@ import cn.teammodel.model.vo.appraise.AppraiseRecordVo; import cn.teammodel.model.vo.appraise.StudentReportVo; import com.itextpdf.text.DocumentException; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; @@ -54,7 +55,7 @@ public interface EvaluationService { */ void vote(AppraiseVoteDto appraiseVoteDto); - List findVoteRecord(FindVoteRecordDto findVoteRecordDto); + List findVoteRecord(FindVoteRecordDto findVoteRecordDto, HttpServletRequest request); void recallVote(RecallVoteDto recallVoteDto); diff --git a/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java b/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java index 84a676c..a08b309 100644 --- a/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java +++ b/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java @@ -8,6 +8,9 @@ import cn.teammodel.common.IdRequest; import cn.teammodel.common.PK; import cn.teammodel.config.exception.ServiceException; import cn.teammodel.model.dto.Appraise.*; +import cn.teammodel.model.dto.admin.common.GroupDto; +import cn.teammodel.model.dto.admin.common.RGroupList; +import cn.teammodel.model.dto.admin.common.RMember; import cn.teammodel.model.entity.User; import cn.teammodel.model.entity.appraise.*; import cn.teammodel.model.entity.school.ClassInfo; @@ -18,10 +21,9 @@ import cn.teammodel.model.vo.appraise.StudentReportVo; import cn.teammodel.repository.*; import cn.teammodel.security.utils.SecurityUtil; import cn.teammodel.service.EvaluationService; -import cn.teammodel.utils.ChartUtil; -import cn.teammodel.utils.PdfUtil; -import cn.teammodel.utils.RepositoryUtil; -import cn.teammodel.utils.SchoolDateUtil; +import cn.teammodel.utils.*; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; import com.azure.cosmos.models.CosmosPatchOperations; import com.azure.spring.data.cosmos.core.query.CosmosPageRequest; import com.itextpdf.text.DocumentException; @@ -32,6 +34,8 @@ import org.apache.commons.lang3.StringUtils; import org.jfree.chart.ChartUtils; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; import org.springframework.data.domain.Page; import org.springframework.data.domain.Sort; @@ -40,6 +44,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -430,14 +435,14 @@ public class EvaluationServiceImpl implements EvaluationService { } @Override - public List findVoteRecord(FindVoteRecordDto findVoteRecordDto) { + public List findVoteRecord(FindVoteRecordDto findVoteRecordDto, HttpServletRequest request) { String periodId = findVoteRecordDto.getPeriodId(); String targetId = StringUtils.isBlank(findVoteRecordDto.getTargetId()) ? null : findVoteRecordDto.getTargetId(); String targetType = StringUtils.isBlank(findVoteRecordDto.getTargetType()) ? null : findVoteRecordDto.getTargetType(); String classId = StringUtils.isBlank(findVoteRecordDto.getClassId()) ? null : findVoteRecordDto.getClassId(); Boolean isPraise = findVoteRecordDto.getIsPraise(); User loginUser = SecurityUtil.getLoginUser(); - String teacherId = loginUser.getId(); + String teacherId = "1530782422"; String schoolId = loginUser.getSchoolId(); List semesters = schoolRepository.findSemestersById(schoolId, periodId); @@ -457,6 +462,41 @@ public class EvaluationServiceImpl implements EvaluationService { ); List content = appraiseRecordItemPage.getContent(); + //提取学生ID 查询学生个人信息 + Set studentIds = content.stream().map(AppraiseRecordVo::getTargetId).collect(Collectors.toSet()); + if (studentIds.isEmpty()) throw new ServiceException(ErrorCode.PARAM_ERROR.getCode(), "没有对应学生信息"); + List students = studentRepository.findAllByCodeAndIdIn(String.format(PK.STUDENT, schoolId), studentIds); + Set classIds = students.stream().map(Student::getClassId).filter(Objects::nonNull).collect(Collectors.toSet()); + List classes = classRepository.findAllByCodeAndIdIn(String.format(PK.CLASS, schoolId), classIds); + +//以防万一 其他成员名单 + /*GroupDto groupDto = new GroupDto(); + groupDto.setIds(new ArrayList<>(classIds)); + groupDto.setSchoolId(schoolId); + String url = env.getProperty("ies.server-url-group"); + Map groupId = GroupUtil.getGroupId(groupDto,new GroupUtil(env), request,url); + List rGroupList = new ArrayList<>(); + List rMembers = new ArrayList<>(); + for (Map.Entry entry : groupId.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + if (key.equals("groups")) { + String jsonGroups = JSON.toJSONString(value); + rGroupList = JSON.parseObject(jsonGroups, new TypeReference>() {}); + } + }*/ + for(AppraiseRecordVo appraiseRecordVo : content) { + students.stream().filter(student -> student.getId().equals(appraiseRecordVo.getTargetId())) + .findFirst() + .ifPresent(student -> { + appraiseRecordVo.setClassId(student.getClassId()); + }); + classes.stream().filter(classInfo -> classInfo.getId().equals(appraiseRecordVo.getClassId())) + .findFirst() + .ifPresent(classInfo -> { + appraiseRecordVo.setClassName(classInfo.getName()); + }); + } return content; }