From cf1fc0bcd00d62c0eed7934a21949edcab8849fb Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期二, 22 七月 2025 10:15:01 +0800
Subject: [PATCH] 修改

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExExamPaperServiceImpl.java           |   10 +++++-----
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java               |    2 ++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExStudentServiceImpl.java             |   10 ++++++----
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalAuditEvaluateServiceImpl.java |    9 ++++++---
 4 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExExamPaperServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExExamPaperServiceImpl.java
index 0b7b717..efc95ee 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExExamPaperServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExExamPaperServiceImpl.java
@@ -212,7 +212,7 @@
         }else{//顺序分配
             int totalPage=totalQuestionCount/questionCount;//不能整除,忽略最后一页
             Random random=new Random();
-            int startIndex=random.nextInt(totalPage)+1;
+            int startIndex=random.nextInt(totalPage);
             questions=questionMapper.selectQuestionWithLimit(currentUser.getCompanyId(), bankId,questionTypeEnum.getCode(),startIndex, questionCount);
         }
         List<ExPaperQuestion> paperQuestionList=questions.stream().map(item -> {
@@ -249,19 +249,19 @@
             throw new ApiException("更新试卷失败");
         }
         //重新分配题
-        if(examPaper.getSingleRebuild()==1){
+        if(examPaper.getSingleNum()!=null && examPaper.getSingleRebuild()==1 && examPaper.getSingleNum()>0 ){
             deletePaperQuestion(examPaper.getId(),QuestionTypeEnum.SINGLE);
             assignSingleQuestion(examPaper);
         }
-        if(examPaper.getMultiRebuild()==1) {
+        if( examPaper.getMultiNum()!=null && examPaper.getMultiRebuild()==1 && examPaper.getMultiNum()>0) {
            deletePaperQuestion(examPaper.getId(),QuestionTypeEnum.MULTI);
            assignMultiQuestion(examPaper);
         }
-        if(examPaper.getJudgeRebuild()==1) {
+        if(examPaper.getJudgeNum()!=null && examPaper.getJudgeRebuild()==1 && examPaper.getJudgeNum()>0) {
            deletePaperQuestion(examPaper.getId(),QuestionTypeEnum.JUDGE);
            assignJudgeQuestion(examPaper);
         }
-        if(examPaper.getEasyRebuild()==1) {
+        if(examPaper.getEasyNum()!=null && examPaper.getEasyRebuild()==1 && examPaper.getEasyNum()>0) {
             deletePaperQuestion(examPaper.getId(),QuestionTypeEnum.EASY);
             assignEasyQuestion(examPaper);
         }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExStudentServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExStudentServiceImpl.java
index 04cace5..f81bdd6 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExStudentServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ExStudentServiceImpl.java
@@ -118,7 +118,9 @@
     @Override
     public int insertStudent(ExStudent student) {
         SysUser currentUser= SecurityUtils.getLoginUser().getUser();
-        student.setCompanyId(currentUser.getCompanyId());
+        if (student.getCompanyId()==null){
+            student.setCompanyId(currentUser.getCompanyId());
+        }
         checkUserAllowed(student);
         if(!checkPhoneUnique(student)){
             throw new ApiException("手机号已存在");
@@ -332,7 +334,7 @@
     public void checkUserAllowed(ExStudent student) {
         SysUser currentUser= SecurityUtils.getLoginUser().getUser();
         if(student.getId()!=null){
-            if(currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
+            if(currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) || currentUser.getUserType().equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
                 return;
             }
             if(currentUser.getUserType().equals(UserTypeEnum.STUDENT.getCode()) ){
@@ -343,8 +345,8 @@
                 }
             }
         }else{
-            if(currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())){
-                throw new ApiException("系统管理员没有权限操作");
+            if(currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) || currentUser.getUserType().equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
+                return;
             }
             if(currentUser.getUserType().equals(UserTypeEnum.STUDENT.getCode())){
                 throw new ApiException("没有权限操作");
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalAuditEvaluateServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalAuditEvaluateServiceImpl.java
index 3c54ebf..2704fea 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalAuditEvaluateServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/InternalAuditEvaluateServiceImpl.java
@@ -4,6 +4,7 @@
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
 import com.gkhy.exam.common.domain.entity.SysUser;
+import com.gkhy.exam.common.enums.UserTypeEnum;
 import com.gkhy.exam.common.exception.ApiException;
 import com.gkhy.exam.common.utils.PageUtils;
 import com.gkhy.exam.common.utils.SecurityUtils;
@@ -45,12 +46,14 @@
     @Override
     public CommonResult insertEvaluate(InternalAuditEvaluate evaluate) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        if (!user.getUserType().equals(0)&&!user.getUserType().equals(1)){
+        if (!user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())&&!user.getUserType().equals(UserTypeEnum.COMPANY_USER.getCode())&&!user.getUserType().equals(UserTypeEnum.COMPANY_ADMIN.getCode())){
             throw new ApiException("普通用户无法添加相关数据");
         }
         ExStudent exStudent = exStudentMapper.selectStudentById(Long.valueOf(evaluate.getPersonId()));
-        if (user.getDeptId().equals(exStudent.getDeptId())){
-            throw new ApiException("请勿选择本部门成员");
+        if ( user.getDeptId()!=null){
+            if ( user.getDeptId().equals(exStudent.getDeptId())) {
+                throw new ApiException("请勿选择本部门成员");
+            }
         }
         evaluate.setCreateBy(SecurityUtils.getUsername());
         evaluate.setCreateTime(LocalDateTime.now());
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
index 4d1859f..bd08a00 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysUserServiceImpl.java
@@ -23,6 +23,7 @@
 import com.gkhy.exam.system.service.SysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.validation.Validator;
 import java.util.ArrayList;
@@ -137,6 +138,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = RuntimeException.class)
     public int addUser(SysUser user) {
         ExStudent exStudent = new ExStudent();
         exStudent.setCompanyId(user.getCompanyId());

--
Gitblit v1.9.2