Selaa lähdekoodia

知学知考提交批次时教研分析对应学校没有管理员则自动添加一个而不是报错

caozixuan 2 vuotta sitten
vanhempi
commit
239f43c4c4

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -449,7 +449,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         GradeBatch gradeBatch = this.getById(batchId);
 
         if (gradeBatch == null) {
-            throw ExceptionResultEnum.SUCCESS.exception("未找到批次信息");
+            throw ExceptionResultEnum.ERROR.exception("未找到批次信息");
         }
         Long schoolId = gradeBatch.getSchoolId();
 
@@ -457,7 +457,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         sysRoleQueryWrapper.lambda().eq(SysRole::getType, RoleTypeEnum.TEACHER).eq(SysRole::getEnable, true);
         List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
         if (sysRoleList.isEmpty()) {
-            throw ExceptionResultEnum.SUCCESS.exception("未找到任课老师角色,请联系管理员");
+            throw ExceptionResultEnum.ERROR.exception("未找到任课老师角色,请联系管理员");
         }
         Map<String, List<GradeBatchStudentClazzDto>> listMap = list.stream().collect(Collectors.groupingBy(m -> m.getTeacherNumber() + "##" + m.getTeacherName()));
         for (Map.Entry<String, List<GradeBatchStudentClazzDto>> entry : listMap.entrySet()) {
@@ -465,7 +465,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
             List<GradeBatchStudentClazzDto> dtoList = entry.getValue();
             List<SysUser> sysUserList = sysUserService.findBySchoolIdAndCode(schoolId, key[0]);
             if (!sysUserList.isEmpty() && sysUserList.size() > 1) {
-                throw ExceptionResultEnum.SUCCESS.exception(key[0] + "找到多条用户记录");
+                throw ExceptionResultEnum.ERROR.exception(key[0] + "找到多条用户记录");
             }
 
             List<Long> orgIds = dtoList.stream().map(m -> m.getCourseCode() + "##" + m.getPaperNumber()).distinct().map(m -> {
@@ -475,7 +475,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 return sysOrg.getId();
             }).distinct().collect(Collectors.toList());
             if (orgIds.size() != 1) {
-                throw ExceptionResultEnum.SUCCESS.exception("任课老师" + key[0] + "对应课程不能属于不同学院");
+                throw ExceptionResultEnum.ERROR.exception("任课老师" + key[0] + "对应课程不能属于不同学院");
             }
             Long courseSecondaryOrgId = orgIds.get(0);
 

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -254,6 +254,7 @@ public interface SysUserService extends IService<SysUser> {
 
     /**
      * 为没有学校管理员的学校自动创建一个学校管理员
+     * @param schoolId 学校id
      */
-    void buildAdministratorForSchool();
+    void buildAdministratorForSchool(Long schoolId);
 }

+ 11 - 7
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -599,7 +599,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             }
             List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).like(SysUser::getLoginName, "admin"));
             if (requestUserList.size() == 0 && !Objects.equals(userSaveParams.getRealName(), "学校管理员")) {
-                throw ExceptionResultEnum.ERROR.exception("该学校没有内置的学校管理员");
+                this.buildAdministratorForSchool(schoolId);
             }
             Long requestUserId = 1L;
             if (requestUserList.size() > 0) {
@@ -1000,16 +1000,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void buildAdministratorForSchool() {
+    public void buildAdministratorForSchool(Long schoolId) {
         // 为没有学校管理员的学校自动创建一个学校管理员
-        List<BasicSchool> basicSchoolList = basicSchoolService.list();
+        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+        if (SystemConstant.longNotNull(schoolId)){
+            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getId,schoolId);
+        }
+        List<BasicSchool> basicSchoolList = basicSchoolService.list(basicSchoolQueryWrapper);
         SysRole role = sysRoleService.list(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.SCHOOL_ADMIN)).get(0);
         List<Long> roleIds = new ArrayList<>();
         roleIds.add(role.getId());
         for (BasicSchool basicSchool : basicSchoolList) {
-            Long schoolId = basicSchool.getId();
+            Long cellSchoolId = basicSchool.getId();
             SysOrg schoolOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
-                    .eq(SysOrg::getSchoolId, schoolId)
+                    .eq(SysOrg::getSchoolId, cellSchoolId)
                     .eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
             if (Objects.isNull(schoolOrg)) {
                 throw ExceptionResultEnum.ERROR.exception("未找到学校对应的顶级机构");
@@ -1022,7 +1026,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     .distinct().collect(Collectors.toList());
             if (adminUserIdList.size() > 0) {
                 List<SysUser> adminUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda()
-                        .eq(SysUser::getSchoolId, schoolId)
+                        .eq(SysUser::getSchoolId, cellSchoolId)
                         .in(SysUser::getId, adminUserIdList));
                 if (adminUserList.size() > 0) {
                     // 存在管理员
@@ -1030,7 +1034,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 }
             }
             UserSaveParams userSaveParams = new UserSaveParams();
-            userSaveParams.setSchoolId(schoolId);
+            userSaveParams.setSchoolId(cellSchoolId);
             userSaveParams.setLoginName("admin");
             userSaveParams.setRealName("学校管理员");
             userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);

+ 0 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/strategy/CalculateTaskTemplate.java

@@ -15,7 +15,6 @@ import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.report.business.bean.params.CalculateParams;
 import com.qmth.teachcloud.report.business.entity.TBSyncTask;
-import com.qmth.teachcloud.report.business.service.AnalyzeForReportService;
 import com.qmth.teachcloud.report.business.service.TBSyncTaskService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/start/StartRunning.java

@@ -29,7 +29,7 @@ public class StartRunning implements CommandLineRunner {
     public void run(String... args) {
         log.info("服务器启动时执行 start");
         authInfoService.appInfoInit();
-        sysUserService.buildAdministratorForSchool();
+        sysUserService.buildAdministratorForSchool(null);
         log.info("服务器启动时执行 end");
     }
 }