From f0f00e9ba8a755e4317e029d73b69a92ad9f9df1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期六, 14 九月 2024 17:02:41 +0800
Subject: [PATCH] update

---
 exam-system/src/main/java/com/gkhy/exam/system/service/impl/ExPhaseStudentServiceImpl.java |   31 +++++++++++++++++++++++--------
 1 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/system/service/impl/ExPhaseStudentServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/system/service/impl/ExPhaseStudentServiceImpl.java
index 1bc23d0..57b17ec 100644
--- a/exam-system/src/main/java/com/gkhy/exam/system/service/impl/ExPhaseStudentServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/system/service/impl/ExPhaseStudentServiceImpl.java
@@ -11,10 +11,7 @@
 import com.gkhy.exam.common.utils.SecurityUtils;
 import com.gkhy.exam.system.domain.*;
 import com.gkhy.exam.system.domain.vo.StudentStudyVO;
-import com.gkhy.exam.system.mapper.ExCoursePhaseMapper;
-import com.gkhy.exam.system.mapper.ExPhaseStudentMapper;
-import com.gkhy.exam.system.mapper.ExStudentMapper;
-import com.gkhy.exam.system.mapper.ExStudentStudyMapper;
+import com.gkhy.exam.system.mapper.*;
 import com.gkhy.exam.system.service.ExCompanyPeriodService;
 import com.gkhy.exam.system.service.ExPhaseStudentService;
 import com.gkhy.exam.system.service.ExStudentStudyService;
@@ -23,6 +20,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -50,6 +48,8 @@
     private SysCompanyService companyService;
     @Autowired
     private ExCompanyPeriodService companyPeriodService;
+    @Autowired
+    private ExCourseChapterPeriodMapper courseChapterPeriodMapper;
 
 
     @Override
@@ -72,6 +72,9 @@
     @Override
     @Transactional(rollbackFor = RuntimeException.class)
     public int batchAddPhaseStudent(List<ExPhaseStudent> phaseStudents) {
+        if(phaseStudents==null|| phaseStudents.isEmpty()){
+            throw new ApiException("学员数据不能为空");
+        }
         checkUserAllowed(phaseStudents.get(0));
         checkStudentUnique(phaseStudents);
         for(ExPhaseStudent phaseStudent:phaseStudents){
@@ -96,7 +99,7 @@
             throw new ApiException("没有权限操作");
         }
         ExCoursePhase coursePhase=coursePhaseMapper.selectById(phaseStudent.getPhaseId());
-        if(!currentUser.getCompanyId().equals(coursePhase.getCompanyId())){
+        if(!coursePhase.getCompanyId().equals(currentUser.getCompanyId())){
             throw new ApiException("没有权限操作其他企业批次");
         }
 
@@ -110,6 +113,17 @@
         }
         PageUtils.startPage();
         List<ExPhaseStudent> phaseStudentList=baseMapper.selectPhaseStudentList(phaseStudent);
+        if(phaseStudentList.size()>0) {
+            //获取课程所有课时数量
+            int count = courseChapterPeriodMapper.selectCountByCourseId(phaseStudentList.get(0).getCourse().getId());
+            if(count>0) {
+                for (ExPhaseStudent ps : phaseStudentList) {
+                    if (ps.getTotalProgress() != null) {
+                        ps.setTotalProgress(ps.getTotalProgress().divide(BigDecimal.valueOf(count), BigDecimal.ROUND_UP));
+                    }
+                }
+            }
+        }
         return CommonPage.restPage(phaseStudentList);
     }
 
@@ -129,7 +143,7 @@
     public int deletePhaseStudent(Long phaseStudentId) {
         ExPhaseStudent phaseStudent=baseMapper.selectPhaseStudentById(phaseStudentId);
         if(ObjectUtil.isNull(phaseStudent)){
-            throw new ApiException(String.format("该批次下不存在该学员<>",phaseStudent.getStudentName()));
+            throw new ApiException("该批次下不存在该学员id");
         }
         checkUserAllowed(phaseStudent);
         int studentStudyCount=studentStudyMapper.countByPhaseId(phaseStudent.getPhaseId(),phaseStudent.getStudentId());
@@ -171,13 +185,14 @@
         ExCoursePhase coursePhase= coursePhaseMapper.selectCoursePhaseById(phaseId);
         ExCompanyPeriod companyPeriod=new ExCompanyPeriod();
         companyPeriod.setPhaseId(phaseId);
-        companyPeriod.setModifyPeriod(-1*studentCount*coursePhase.getCoursePeriod());
+        companyPeriod.setModifyPeriod(-1L*studentCount*coursePhase.getCoursePeriod());
         companyPeriod.setOrigin("\""+coursePhase.getName()+"\"新增学员消耗");
         SysCompany company=companyService.getById(coursePhase.getCompanyId());
-        int remainPeriod=company.getTotalPeriod()+companyPeriod.getModifyPeriod();
+        Long remainPeriod=company.getRemainPeriod()+companyPeriod.getModifyPeriod();
         if(remainPeriod<0){
             throw new ApiException("企业剩余课时不足");
         }
+        companyPeriod.setCompanyId(company.getId());
         companyPeriod.setRemainPeriod(remainPeriod);
         companyPeriodService.save(companyPeriod);
         company.setRemainPeriod(companyPeriod.getRemainPeriod());

--
Gitblit v1.9.2