ソースを参照

更改批量新建命题任务校验

caozixuan 4 年 前
コミット
d25c9053f8

+ 27 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/CourseInfoDto.java

@@ -0,0 +1,27 @@
+package com.qmth.distributed.print.business.bean.dto;
+
+/**
+ * @Description: 根据用户账号和用户名称查询他可命题的课程
+ * @Author: CaoZixuan
+ * @Date: 2021-04-22
+ */
+public class CourseInfoDto {
+    private String courseCode;
+    private String courseName;
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+}

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicCourseMapper.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.dto.CourseInfoDto;
 import com.qmth.distributed.print.business.bean.params.CourseParam;
 import com.qmth.distributed.print.business.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
@@ -22,4 +23,6 @@ public interface BasicCourseMapper extends BaseMapper<BasicCourse> {
     List<BasicCourse> listCoursesByUserId(Long id);
 
     IPage<BasicCourse> listPage(Page<BasicCourse> page, @Param("schoolId") Long schoolId, @Param("code") String code, @Param("name") String name);
+
+    List<CourseInfoDto> findByUserLoginNameAndRealName(@Param("loginName")String loginName,@Param("realName") String realName);
 }

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicCourseService.java

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.dto.CourseInfoDto;
 import com.qmth.distributed.print.business.bean.params.BlurryParam;
 import com.qmth.distributed.print.business.bean.params.CourseParam;
 import com.qmth.distributed.print.business.entity.BasicCourse;
@@ -36,4 +37,12 @@ public interface BasicCourseService extends IService<BasicCourse> {
      * @param userId 当前用户id
      */
     void verifyCourseInfo(Long schoolId,String courseCode,String courseName,Long userId);
+
+    /**
+     * 根据用户登录名和真实名称查找其可命的课程
+     * @param loginName 登录名
+     * @param realName 真实名
+     * @return 课程集合
+     */
+    List<CourseInfoDto> findByUserLoginNameAndRealName(String loginName,String realName);
 }

+ 16 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.dto.CourseInfoDto;
 import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.SysUser;
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
 
@@ -34,6 +36,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
 
     @Autowired
     private ExamTaskService examTaskService;
+    @Resource
+    private BasicCourseMapper basicCourseMapper;
 
     @Override
     public IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize) {
@@ -129,4 +133,16 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             this.saveOrUpdate(basicCourse);
         }
     }
+
+    @Override
+    public List<CourseInfoDto> findByUserLoginNameAndRealName(String loginName, String realName) {
+        System.out.println("---");
+        if (loginName == null){
+            loginName = "";
+        }
+        if (realName == null){
+            realName = "";
+        }
+        return basicCourseMapper.findByUserLoginNameAndRealName(loginName, realName);
+    }
 }

+ 37 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -96,6 +96,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
 
+
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
         QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
@@ -280,6 +281,19 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     }else {
                         courseCodePaperNumberMap.put(userImportDto.getCourseCode(),userImportDto.getPaperNumber());
                     }
+
+                    // 校验命题老师
+                    String excelCourseCode = userImportDto.getCourseCode();
+                    String excelTeacherAccount = userImportDto.getUserAccount();
+                    String excelTeacherName = userImportDto.getUserName();
+
+                    if (Objects.nonNull(excelTeacherAccount) || Objects.nonNull(excelTeacherName)){
+                        List<CourseInfoDto> courseInfoDtoList = basicCourseService.findByUserLoginNameAndRealName(excelTeacherAccount,excelTeacherName);
+                        if (!courseInfoDtoList.stream().map(CourseInfoDto::getCourseCode).collect(Collectors.toList()).contains(excelCourseCode)){
+                            excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[命题教师]身份信息有误"));
+                        }
+                    }
+
                 }
             }
             if (excelErrorTemp.size() > 0) {
@@ -343,25 +357,33 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examTaskDto.setCourseName(examTaskTemp.getCourseName());
                 examTaskDto.setPaperNumber(examTaskTemp.getPaperNumber());
                 examTaskDto.setSpecialty(examTaskTemp.getSpecialty());
-                // 校验命题老师
-                if (StringUtils.isBlank(examTaskTemp.getUserAccount())) {
-                    examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
-                } else {
+                List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
+                if (Objects.nonNull(examTaskTemp.getUserAccount()) && Objects.nonNull(examTaskTemp.getCourseCode())){
                     QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
                     queryWrapper.lambda().eq(SysUser::getLoginName, examTaskTemp.getUserAccount());
                     SysUser sysUser1 = sysUserService.getOne(queryWrapper);
-                    if (sysUser1 == null) {
-                        examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
-                    } else {
-                        List<BlurryUserDto> blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
-
-                        if (blurryUserDtoList.size() == 0){
-                            //如果没有查询到模糊用户数据 可能是excel中命题老师没有该课程权限,则舍弃该用户再次查询该科目-试卷的模糊用户
-                            blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), null);
-                        }
-                        examTaskDto.setUsers(blurryUserDtoList);
-                    }
+                    blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
                 }
+                examTaskDto.setUsers(blurryUserDtoList);
+//                // 校验命题老师
+//                if (StringUtils.isBlank(examTaskTemp.getUserAccount())) {
+//                    examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
+//                } else {
+//                    QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+//                    queryWrapper.lambda().eq(SysUser::getLoginName, examTaskTemp.getUserAccount());
+//                    SysUser sysUser1 = sysUserService.getOne(queryWrapper);
+//                    if (sysUser1 == null) {
+//                        examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
+//                    } else {
+//                        List<BlurryUserDto> blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
+//
+//                        if (blurryUserDtoList.size() == 0){
+//                            //如果没有查询到模糊用户数据 可能是excel中命题老师没有该课程权限,则舍弃该用户再次查询该科目-试卷的模糊用户
+//                            blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), null);
+//                        }
+//                        examTaskDto.setUsers(blurryUserDtoList);
+//                    }
+//                }
                 tasks.add(examTaskDto);
             }
         }

+ 14 - 0
distributed-print-business/src/main/resources/mapper/BasicCourseMapper.xml

@@ -43,5 +43,19 @@
         </where>
         order by create_time desc
     </select>
+    <select id="findByUserLoginNameAndRealName"
+            resultType="com.qmth.distributed.print.business.bean.dto.CourseInfoDto">
+        SELECT
+            bc.code AS courseCode, bc.name AS courseName
+        FROM
+            basic_course bc
+                INNER JOIN
+            basic_user_course buc ON buc.course_id = bc.id
+                INNER JOIN
+            sys_user su ON su.id = buc.user_id
+        WHERE
+            su.login_name = #{loginName}
+          AND real_name = #{realName};
+    </select>
 
 </mapper>