mingfu 1 месяц назад
Родитель
Сommit
d1d5918480

+ 2 - 2
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontStudentController.java

@@ -335,11 +335,11 @@ public class FrontStudentController extends BaseController {
 
     @ApiOperation("53 记录-测试卷")
     @GetMapping("record/test")
-    public TableDataInfo getRecordTest()
+    public TableDataInfo getRecordTest(@ApiParam("状态") @RequestParam(required = false) Integer status)
     {
         SysUser sysUser = SecurityUtils.getLoginUser().getUser();
         startPage();
-        return getDataTable(studentService.getTestList(sysUser.getUserId()));
+        return getDataTable(studentService.getTestList(sysUser.getUserId(), status));
     }
 
     @ApiOperation("54 记录-测试卷结果")

+ 4 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/learn/LearnTeacherController.java

@@ -190,6 +190,7 @@ public class LearnTeacherController extends BaseController {
         req.setBuildType("ExactIntelligent");
         req.setDirectType(true);
         req.setSubjectId(11L);
+        req.setTeacherId(SecurityUtils.getUserId());
         return AjaxResult.success(learnTeacherService.buildPapersDirect(req));
     }
 
@@ -203,6 +204,7 @@ public class LearnTeacherController extends BaseController {
         if(null == req.getSubjectId()) {
             AjaxResult.error("未选择科目");
         }
+        req.setTeacherId(SecurityUtils.getUserId());
         return AjaxResult.success(learnTeacherService.buildPapersFull(req));
     }
 
@@ -217,6 +219,7 @@ public class LearnTeacherController extends BaseController {
         if(null == req.getMajorPlanId()) {
             AjaxResult.error("未选择计划");
         }
+        req.setTeacherId(SecurityUtils.getUserId());
         return AjaxResult.success(learnTeacherService.buildPapersDirect(req));
     }
 
@@ -230,6 +233,7 @@ public class LearnTeacherController extends BaseController {
         if(null == req.getSubjectId()) {
             AjaxResult.error("未选择科目");
         }
+        req.setTeacherId(SecurityUtils.getUserId());
         return AjaxResult.success(learnTeacherService.buildPapersFull(req));
     }
 

+ 4 - 0
ie-admin/src/main/java/com/ruoyi/web/service/LearnTeacherService.java

@@ -274,6 +274,10 @@ public class LearnTeacherService {
                 lts.setPaperId(learnTestPaper.getPaperId());
                 lts.setClassId(student.getClassId());
                 lts.setStatus(ExamineeStatus.Sign.getVal());
+                lts.setCreatorId(req.getTeacherId());
+                lts.setSchoolId(student.getSchoolId());
+                lts.setCampusId(student.getCampusId());
+                lts.setPlanId(student.getMajorPlanId());
                 learnTestStudentMapper.insertLearnTestStudent(lts);
             }
         }

+ 10 - 3
ie-admin/src/main/java/com/ruoyi/web/service/StudentService.java

@@ -21,6 +21,7 @@ import com.ruoyi.learn.mapper.*;
 import com.ruoyi.learn.service.ILearnStudentService;
 import com.ruoyi.system.service.ISysUserService;
 import org.apache.commons.compress.utils.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -111,8 +112,8 @@ public class StudentService {
         return list;
     }
 
-    public List<JSONObject> getTestList(Long studentId) {
-        List<JSONObject> list = learnTestStudentMapper.selectExamineeTestList(studentId);
+    public List<JSONObject> getTestList(Long studentId, Integer status) {
+        List<JSONObject> list = learnTestStudentMapper.selectExamineeTestList(studentId, status);
         list.forEach(t -> {
             DzSubject dzSubject = dzSubjectService.selectDzSubjectBySubjectId(t.getLong("subjectId"));
             t.put("subjectName", dzSubject.getSubjectName());
@@ -120,9 +121,15 @@ public class StudentService {
             if(null == date) {
                 date = t.getDate("beginTime");
             }
-            t.remove("beginTime");
             t.remove("endTime");
+            t.remove("beginTime");
             t.put("date", DateUtils.format(date, "yyyy-MM-dd HH:mm"));
+
+            date = t.getDate("publishTime");
+            t.remove("publishTime");
+            t.put("publishTime", DateUtils.format(date, "yyyy-MM-dd HH:mm"));
+            t.put("directed", StringUtils.isNotBlank(t.getString("directKey")));
+            t.remove("directKey");
         });
         return list;
     }

+ 10 - 1
ie-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java

@@ -6,6 +6,7 @@ import com.google.common.collect.Lists;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.UserRegStatus;
 import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.NumberUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.dz.domain.DzCards;
 import com.ruoyi.dz.service.IDzCardsService;
@@ -244,11 +245,19 @@ public class SysRegisterService
             LearnStudent upStudent = new LearnStudent();
             upStudent.setStudentId(user.getUserId());
             upStudent.setClassId(user.getClassId());
+            upStudent.setSchoolId(user.getSchoolId());
+            upStudent.setCampusId(register.getCampusSchoolId());
             learnStudentMapper.insertLearnStudent(upStudent);
         } else {
             LearnStudent upStudent = new LearnStudent();
             upStudent.setStudentId(user.getUserId());
-            upStudent.setClassId(user.getClassId());
+            upStudent.setSchoolId(user.getSchoolId());
+            if (NumberUtils.isPositive(register.getCampusClassId())) {
+                upStudent.setClassId(register.getCampusClassId());
+                upStudent.setCampusId(register.getCampusSchoolId());
+            } else {
+                upStudent.setClassId(user.getClassId());
+            }
             learnStudentMapper.updateLearnStudent(upStudent);
             userService.updateUser(user);
         }

+ 17 - 0
ie-system/src/main/java/com/ruoyi/dz/service/impl/DzCardsServiceImpl.java

@@ -19,6 +19,8 @@ import com.ruoyi.criteria.CardCriteria;
 import com.ruoyi.dz.domain.*;
 import com.ruoyi.dz.mapper.*;
 import com.ruoyi.enums.*;
+import com.ruoyi.learn.domain.LearnStudent;
+import com.ruoyi.learn.mapper.LearnStudentMapper;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import org.apache.commons.lang3.StringUtils;
@@ -55,6 +57,8 @@ public class DzCardsServiceImpl implements IDzCardsService
     private SysUserMapper userMapper;
 
     private final String format = "%d%08d";
+    @Autowired
+    private LearnStudentMapper learnStudentMapper;
 
     /**
      * 查询学习卡
@@ -448,12 +452,25 @@ public class DzCardsServiceImpl implements IDzCardsService
         cond.setStartNo(beginNo);
         cond.setEndNo(endNo);
         List<DzCards> cards = dzCardsMapper.selectListByCond(cond);
+        if(cards.isEmpty()) {
+            return false;
+        }
         DzCards dzCards = new DzCards();
+        Map<Long, SysUser> userMap = userMapper.selectUserByCardIds(cards.stream().map(DzCards::getCardId).collect(Collectors.toList())).stream() .collect(Collectors.toMap( SysUser::getCardId, user -> user, (existing, replacement) -> existing));
         cards.stream().forEach(c -> {
             dzCards.setCardId(c.getCardId());
             dzCards.setCampusId(campusId);
             dzCards.setCampusClassId(campusClassId);
             dzCardsMapper.updateDzCards(dzCards);
+
+            SysUser u = userMap.get(c.getCardId());
+            if(null == u) {
+                LearnStudent upStudent = new LearnStudent();
+                upStudent.setStudentId(u.getUserId());
+                upStudent.setClassId(campusClassId);
+                upStudent.setCampusId(campusId);
+                learnStudentMapper.updateLearnStudent(upStudent);
+            }
         });
         return true;
     }

+ 12 - 0
ie-system/src/main/java/com/ruoyi/learn/domain/LearnStudent.java

@@ -20,6 +20,10 @@ public class LearnStudent extends BaseEntity
     @Excel(name = "班级ID")
     private Long classId;
 
+    /** 学校ID */
+    @Excel(name = "学校ID")
+    private Long schoolId;
+
     /** 校区ID */
     @Excel(name = "校区ID")
     private Long campusId;
@@ -73,6 +77,14 @@ public class LearnStudent extends BaseEntity
         this.studentName = studentName;
     }
 
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
     public Long getCampusId() {
         return campusId;
     }

+ 48 - 0
ie-system/src/main/java/com/ruoyi/learn/domain/LearnTestStudent.java

@@ -56,6 +56,22 @@ public class LearnTestStudent extends BaseEntity
     @Excel(name = "状态")
     private Integer status;
 
+    /** 创建人 */
+    @Excel(name = "创建人")
+    Long creatorId;
+
+    /** 学校ID */
+    @Excel(name = "学校ID")
+    Long schoolId;
+
+    /** 校区ID */
+    @Excel(name = "校区ID")
+    Long campusId;
+
+    /** 计划ID */
+    @Excel(name = "计划ID")
+    Long planId;
+
     private Integer count;
 
     public void setId(Long id)
@@ -162,6 +178,38 @@ public class LearnTestStudent extends BaseEntity
         this.count = count;
     }
 
+    public Long getCreatorId() {
+        return creatorId;
+    }
+
+    public void setCreatorId(Long creatorId) {
+        this.creatorId = creatorId;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getCampusId() {
+        return campusId;
+    }
+
+    public void setCampusId(Long campusId) {
+        this.campusId = campusId;
+    }
+
+    public Long getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(Long planId) {
+        this.planId = planId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 1
ie-system/src/main/java/com/ruoyi/learn/mapper/LearnTestStudentMapper.java

@@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface LearnTestStudentMapper 
 {
-    List<JSONObject> selectExamineeTestList(@Param("studentId") Long studentId);
+    List<JSONObject> selectExamineeTestList(@Param("studentId") Long studentId, @Param("status") Integer status);
 
     List<LearnTestStudent> selectStatsForStudent(Long studentId);
 

+ 34 - 6
ie-system/src/main/resources/mapper/learn/LearnTestStudentMapper.xml

@@ -13,24 +13,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="directKey"    column="direct_key"    />
         <result property="paperId"    column="paper_id"    />
         <result property="classId"    column="class_id"    />
+        <result property="schoolId"    column="school_id"    />
+        <result property="campusId"    column="campus_id"    />
+        <result property="planId"    column="plan_id"    />
+        <result property="creatorId"    column="creator_id"    />
         <result property="examineeId"    column="examinee_id"    />
         <result property="status"    column="status"    />
         <result property="createTime"    column="create_time"    />
     </resultMap>
 
     <sql id="selectLearnTestStudentVo">
-        select id, batch_id, student_id, build_type, subject_id, direct_key, paper_id, class_id, examinee_id, status, create_time from learn_test_student
+        select id, batch_id, student_id, build_type, subject_id, direct_key, paper_id, class_id, school_id, campus_id, plan_id, creator_id, examinee_id, status, create_time from learn_test_student
     </sql>
 
     <select id="selectExamineeTestList" resultType="com.alibaba.fastjson2.JSONObject">
-        select ts.id, p.`paperName` `name`, ts.`subject_id` subjectId, ts.`create_time` beginTime, p.`fenshu` total, e.`end_time` endTime, if(e.`state` is null, 2, e.`state`) `state`, e.`score`
-        from `learn_test_student` ts
-        join `learn_paper` p on ts.`paper_id` = p.`id`
-        left join `learn_examinee` e on ts.`examinee_id` = e.`examinee_id`
+        SELECT ts.id, p.`paperName` `name`, ts.`subject_id` subjectId, ts.`create_time` beginTime, p.`fenshu` total, e.`end_time` endTime, IF(e.`state` IS NULL, 2, e.`state`) `state`, e.`score`
+        , ts.create_time publishTime, u.`nick_name` publishUser,  p.`direct_key` directKey, us.`name` universityName, sr.`name` schoolName, sc.`name` campusName, mp.`majorName`, ts.`class_id` classId
+        FROM `learn_test_student` ts
+        JOIN `learn_paper` p ON ts.`paper_id` = p.`id`
+        LEFT JOIN `learn_examinee` e ON ts.`examinee_id` = e.`examinee_id` AND ts.`student_id` = 34
+        LEFT JOIN sys_user u ON ts.`creator_id` = u.`user_id`
+        LEFT JOIN `dz_school` sr ON ts.`school_id` = sr.`id`
+        LEFT JOIN `dz_school` sc ON ts.`campus_id` = sc.`id`
+        LEFT JOIN `a_marjor_plan` mp ON ts.`plan_id` = mp.`id`
+        LEFT JOIN `b_busi_wish_universities` us ON SUBSTRING_INDEX(p.`direct_key`, '_', 1) = us.`id`
         <where>
             <if test="studentId != null "> and ts.`student_id` = #{studentId}</if>
+            <if test="status != null and status != 4"> and IF(e.`state` IS NULL, 2, e.`state`) &lt; 4</if>
+            <if test="status != null and status == 4"> and e.`state` &gt;= 4</if>
         </where>
-        order by ts.`create_time` desc
+        ORDER BY ts.`create_time` DESC
     </select>
 
     <select id="selectDirectedStudentList" parameterType="LearnTestStudent" resultMap="LearnTestStudentResult">
@@ -43,6 +55,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="directKey != null  and directKey != ''"> and direct_key = #{directKey}</if>
             <if test="paperId != null "> and paper_id = #{paperId}</if>
             <if test="classId != null "> and class_id = #{classId}</if>
+            <if test="schoolId != null "> and school_id = #{schoolId}</if>
+            <if test="campusId != null "> and campus_id = #{campusId}</if>
+            <if test="planId != null "> and plan_id = #{planId}</if>
+            <if test="creatorId != null "> and creator_id = #{creatorId}</if>
             <if test="examineeId != null "> and examinee_id = #{examineeId}</if>
             <if test="status != null "> and status = #{status}</if>
         </where>
@@ -63,6 +79,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="directKey != null  and directKey != ''"> and direct_key = #{directKey}</if>
             <if test="paperId != null "> and paper_id = #{paperId}</if>
             <if test="classId != null "> and class_id = #{classId}</if>
+            <if test="schoolId != null "> and school_id = #{schoolId}</if>
+            <if test="campusId != null "> and campus_id = #{campusId}</if>
+            <if test="planId != null "> and plan_id = #{planId}</if>
+            <if test="creatorId != null "> and creator_id = #{creatorId}</if>
             <if test="examineeId != null "> and examinee_id = #{examineeId}</if>
             <if test="status != null "> and status = #{status}</if>
         </where>
@@ -83,6 +103,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="directKey != null and directKey != ''">direct_key,</if>
             <if test="paperId != null">paper_id,</if>
             <if test="classId != null">class_id,</if>
+            <if test="schoolId != null">school_id,</if>
+            <if test="campusId != null">campus_id,</if>
+            <if test="planId != null">plan_id,</if>
+            <if test="creatorId != null">creator_id,</if>
             <if test="examineeId != null">examinee_id,</if>
             <if test="status != null">status,</if>
             <if test="createTime != null">create_time,</if>
@@ -95,6 +119,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="directKey != null and directKey != ''">#{directKey},</if>
             <if test="paperId != null">#{paperId},</if>
             <if test="classId != null">#{classId},</if>
+            <if test="schoolId != null">#{schoolId},</if>
+            <if test="campusId != null">#{campusId},</if>
+            <if test="planId != null">#{planId},</if>
+            <if test="creatorId != null">#{creatorId},</if>
             <if test="examineeId != null">#{examineeId},</if>
             <if test="status != null">#{status},</if>
             <if test="createTime != null">#{createTime},</if>