From 3303fef314b45020d8ea62a908d887060d695b3f Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 03 七月 2024 09:39:32 +0800
Subject: [PATCH] 教学资源增加班级

---
 src/main/resources/mapper/EducationResourceMapper.xml                          |   52 +++++++++++------
 src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java      |   18 +++++
 src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java                 |    2 
 src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java |   28 +++++++++
 src/main/java/com/ycl/jxkg/service/EducationResourceService.java               |    2 
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java                   |   11 ++-
 src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java                |    5 +
 src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java  |   12 ++++
 src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java              |    2 
 9 files changed, 106 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java b/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java
new file mode 100644
index 0000000..03af53a
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/controller/student/EducationResourceController.java
@@ -0,0 +1,28 @@
+package com.ycl.jxkg.controller.student;
+
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO;
+import com.ycl.jxkg.service.EducationResourceService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/16 10:58
+ */
+@RestController("StudentEducationResourceController")
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/student/education/resource")
+public class EducationResourceController {
+
+    private final EducationResourceService service;
+
+    @GetMapping("/page")
+    public Result page(EducationResourceVO query) {
+        return service.studentPage(query);
+    }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java b/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java
index 153170b..5585083 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/EducationResource.java
@@ -23,12 +23,17 @@
     /** 鎵�灞炲绉� */
     private Integer subjectId;
 
+    /** 鐝骇 */
+    private Integer classId;
+
     /** 涓婚绠�浠� */
     private String introduction;
 
     /** 闄勪欢 */
     private String attachment;
 
+    private Integer createUser;
+
     private Date createTime;
 
     private Date updateTime;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
index 18f4f6e..12ee9c9 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/education/EducationResourceVO.java
@@ -1,6 +1,7 @@
 package com.ycl.jxkg.domain.vo.admin.education;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.models.auth.In;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
@@ -34,7 +35,16 @@
     @NotNull(message = "璇烽�夋嫨瀛︾")
     private Integer subjectId;
 
+    /** 瀛︾鍚� */
     private String typeName;
+
+    /** 鐝骇 */
+    @NotNull(message = "璇烽�夋嫨鐝骇")
+    private Integer classId;
+    /** 瀛︾敓绔垎椤垫煡璇㈡潯浠� */
+    private List<Integer> classIds;
+    /** 鐝骇鍚� */
+    private String className;
 
     /** 涓婚 */
     @NotBlank(message = "璇疯緭鍏ヤ富棰樼畝浠�")
@@ -44,6 +54,8 @@
     private List<UploadFile> attachment;
     private String attachmentString;
 
+    private Integer createUser;
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
diff --git a/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java b/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java
index 9882ec6..04bb20c 100644
--- a/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/EducationResourceMapper.java
@@ -23,5 +23,5 @@
 
     List<EducationResourceVO> page(@Param("query") EducationResourceVO query);
 
-    List<EducationResourceVO> byType(@Param("query") StudentOnlineVO query);
+    List<EducationResourceVO> studentPage(@Param("query") EducationResourceVO query);
 }
diff --git a/src/main/java/com/ycl/jxkg/service/EducationResourceService.java b/src/main/java/com/ycl/jxkg/service/EducationResourceService.java
index 749d0ac..304f10c 100644
--- a/src/main/java/com/ycl/jxkg/service/EducationResourceService.java
+++ b/src/main/java/com/ycl/jxkg/service/EducationResourceService.java
@@ -29,7 +29,7 @@
      * @param query
      * @return
      */
-    Result byType(StudentOnlineVO query);
+    Result studentPage(EducationResourceVO query);
 
     /**
      * 瀛︿範绫诲瀷list
diff --git a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
index 97380a9..374f718 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
@@ -4,10 +4,12 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.context.WebContext;
 import com.ycl.jxkg.domain.entity.EducationResource;
 import com.ycl.jxkg.domain.entity.Subject;
 import com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO;
 import com.ycl.jxkg.domain.vo.student.education.StudentOnlineVO;
+import com.ycl.jxkg.mapper.ClassesUserMapper;
 import com.ycl.jxkg.mapper.EducationResourceMapper;
 import com.ycl.jxkg.mapper.SubjectMapper;
 import com.ycl.jxkg.service.EducationResourceService;
@@ -16,6 +18,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -30,6 +33,8 @@
 
     private final EducationResourceMapper mapper;
     private final SubjectMapper subjectMapper;
+    private final WebContext webContext;
+    private final ClassesUserMapper classesUserMapper;
 
     @Override
     public Result add(EducationResourceVO form) {
@@ -41,6 +46,7 @@
         }
         educationResource.setCreateTime(new Date());
         educationResource.setUpdateTime(new Date());
+        educationResource.setCreateUser(webContext.getCurrentUser().getId());
         mapper.add(educationResource);
         return Result.ok("娣诲姞鎴愬姛");
     }
@@ -80,9 +86,17 @@
     }
 
     @Override
-    public Result byType(StudentOnlineVO query) {
+    public Result studentPage(EducationResourceVO query) {
+        Integer id = webContext.getCurrentUser().getId();
+        List<Integer> classes = classesUserMapper.getClassesByUserId(id);
+        if (CollectionUtils.isEmpty(classes)) {
+            //瀛︾敓娌℃湁鐝骇
+            List<EducationResourceVO> list = new ArrayList<>();
+            return Result.ok(list).put("total", 0);
+        }
+        query.setClassIds(classes);
         PageInfo<EducationResourceVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() ->
-                mapper.byType(query));
+                mapper.studentPage(query));
         page.getList().stream().forEach(item -> {
             item.setContentUrl(JSON.parseObject(item.getContentUrlString(), EducationResourceVO.UploadFile.class));
             item.setAttachment(JSON.parseArray(item.getAttachmentString(), EducationResourceVO.UploadFile.class));
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
index 928969f..3b72bc8 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
@@ -176,6 +176,7 @@
 
     @Override
     public Result updateExamPaper(ExamPaperForm form) {
+        //TODO锛氶獙璇佹槸鍚︽槸璇曞嵎鍒涘缓浜�
         ExamPaper examPaper = ExamPaperForm.getEntityByForm(form, null);
         examPaper.setScore(new BigDecimal(form.getScore()));
         //闅忔満璇曞嵎
@@ -198,6 +199,7 @@
 
     @Override
     public PageInfo<ExamResponseVO> page(ExamPaperPageRequestVO requestVM) {
+        //TODO: 鏁版嵁鏉冮檺
         PageInfo<ExamPaper> page = PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
                 examPaperMapper.page(requestVM));
         PageInfo<ExamResponseVO> pageVO = PageInfoHelper.copyMap(page, e -> {
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index b5cec94..fe1d8e5 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -470,9 +471,6 @@
         // 鐜板湪鍙渶瑕佷繚瀛樺埌涓�寮犱复鏃惰〃
         // 璇ユ帴鍙f槸涓诲姩鎻愪氦锛屾墍浠ョ姸鎬侀兘璁剧疆涓哄畬鎴愶紝浠ヤ究鍚庣画鑰佸笀闃呭嵎
         saveTempExam(submitData, ExamSubmitTempStatusEnum.finish);
-
-        //TODO:鑰冭瘯鐘舵�佽瀹氫负缁撴潫
-
         return Result.ok();
     }
 
@@ -845,6 +843,13 @@
             examPaperScoreMapper.updateById(examPaperScore);
         } else {
             examPaperScoreMapper.insert(examPaperScore);
+            //淇敼鑰冭瘯閲岃瘯鍗风姸鎬佷负宸查槄鍗�
+            ExamSubmitTemp userExam = new LambdaQueryChainWrapper<>(examSubmitTempMapper)
+                    .eq(ExamSubmitTemp::getExamId, examPaperMark.getExamId())
+                    .eq(ExamSubmitTemp::getUserId, examPaperMark.getUserId())
+                    .one();
+            userExam.setMarkPaperStatus(ExamSubmitTempStatusEnum.finish);
+            examSubmitTempMapper.updateById(userExam);
         }
         return Result.ok();
     }
diff --git a/src/main/resources/mapper/EducationResourceMapper.xml b/src/main/resources/mapper/EducationResourceMapper.xml
index bd383cc..cb750e2 100644
--- a/src/main/resources/mapper/EducationResourceMapper.xml
+++ b/src/main/resources/mapper/EducationResourceMapper.xml
@@ -14,43 +14,56 @@
             ter.create_time,
             ter.update_time,
             ter.attachment as attachmentString,
-            ts.name as typeName
+            ts.name as typeName,
+            ter.class_id,
+            tc.class_name
         FROM
         t_education_resource ter
                 INNER JOIN t_subject ts ON ts.id = ter.subject_id
+                INNER JOIN t_classes tc ON tc.id = ter.class_id
         <where>
             AND ter.deleted = 0
             <if test="query.introduction != null and query.introduction != ''">
-                AND ter.introduction like concat('%', #{query.subject}, '%')
+                AND ter.introduction like concat('%', #{query.introduction}, '%')
             </if>
             <if test="query.subjectId != null">
-                AND ts.id = #{query.subjectId}
+                AND ter.subject_id = #{query.subjectId}
+            </if>
+            <if test="query.classId != null">
+                AND ter.class_id = #{query.classId}
             </if>
         </where>
         ORDER BY
         ter.create_time DESC
     </select>
 
-    <select id="byType" resultType="com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO">
+    <select id="studentPage" resultType="com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO">
         SELECT
-            ter.id,
-            ter.content_type,
-            ter.content_url as contentUrlString,
-            ter.subject_id,
-            ter.introduction,
-            ter.create_time,
-            ter.update_time,
-            ter.attachment as attachmentString
+        ter.id,
+        ter.content_type,
+        ter.content_url as contentUrlString,
+        ter.subject_id,
+        ter.introduction,
+        ter.create_time,
+        ter.update_time,
+        ter.attachment as attachmentString,
+        ts.name as typeName,
+        ter.class_id,
+        tc.class_name
         FROM
-            t_education_resource ter
-                INNER JOIN t_subject ts ON ts.id = ter.subject_id
+        t_education_resource ter
+        INNER JOIN t_subject ts ON ts.id = ter.subject_id
+        INNER JOIN t_classes tc ON tc.id = ter.class_id
         <where>
-            AND ter.deleted = 0
+            AND ter.deleted = 0 and ter.class_id in
+            <foreach collection="query.classIds" item="classId" separator="," open="(" close=")">
+                #{classId}
+            </foreach>
             <if test="query.introduction != null and query.introduction != ''">
-                AND ter.introduction like concat('%', #{query.subject}, '%')
+                AND ter.introduction like concat('%', #{query.introduction}, '%')
             </if>
             <if test="query.subjectId != null">
-                AND ts.id = #{query.subjectId}
+                AND ter.subject_id = #{query.subjectId}
             </if>
         </where>
         ORDER BY
@@ -59,8 +72,8 @@
 
     <insert id="add" keyColumn="id" useGeneratedKeys="true">
         INSERT INTO t_education_resource(content_type, content_url, subject_id, introduction, create_time, update_time,
-                                   attachment)
-            value (#{form.contentType}, #{form.contentUrl}, #{form.subjectId}, #{form.introduction}, #{form.createTime}, #{form.updateTime}, #{form.attachment})
+                                   attachment,create_user,class_id)
+            value (#{form.contentType}, #{form.contentUrl}, #{form.subjectId}, #{form.introduction}, #{form.createTime}, #{form.updateTime}, #{form.attachment},#{form.createUser},#{form.classId})
     </insert>
 
     <update id="update">
@@ -70,6 +83,7 @@
             <if test="form.contentType != null and form.contentType != ''">content_type = #{form.contentType},</if>
             <if test="form.contentUrl != null and form.contentUrl != ''">content_url = #{form.contentUrl},</if>
             <if test="form.subjectId != null">subject_id = #{form.subjectId},</if>
+            <if test="form.classId != null">class_id = #{form.classId},</if>
             <if test="form.introduction != null and form.introduction != ''">introduction = #{form.introduction},</if>
             <if test="form.updateTime != null">update_time = #{form.updateTime},</if>
             attachment = #{form.attachment}

--
Gitblit v1.8.0