From 143ebce41207eb0d3a4df3b6bbd3d482e4f0a8c2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 16 五月 2024 18:20:41 +0800
Subject: [PATCH] 学生在线学习api

---
 src/main/java/com/mindskip/xzs/service/OnlineStudyService.java               |   15 +++++
 src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java |   34 +++++++++++
 src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java                |   22 +++++++
 src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java             |    2 
 src/main/resources/mapper/OnlineStudyMapper.xml                              |   28 +++++++++
 src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java     |   25 +++++++-
 6 files changed, 121 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java b/src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java
new file mode 100644
index 0000000..45c29d2
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java
@@ -0,0 +1,34 @@
+package com.mindskip.xzs.controller.student;
+
+import com.mindskip.xzs.base.RestResponse;
+import com.mindskip.xzs.domain.vo.StudentOnlineVO;
+import com.mindskip.xzs.service.OnlineStudyService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/16 17:50
+ */
+@RestController("studentOnlineStudy")
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/student/online/study")
+public class OnlineStudyController {
+
+    private final OnlineStudyService service;
+
+
+    @GetMapping("/byType")
+    public RestResponse byType(StudentOnlineVO query) {
+        return service.byType(query);
+    }
+
+    @GetMapping("/type/list")
+    public RestResponse typeList() {
+        return service.typeList();
+    }
+
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java b/src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java
new file mode 100644
index 0000000..c0b6105
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java
@@ -0,0 +1,22 @@
+package com.mindskip.xzs.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/16 17:54
+ */
+@Data
+public class StudentOnlineVO {
+
+    /** 绫诲埆 */
+    private Integer typeId;
+
+    /** 涓婚 */
+    private String subject;
+
+    private Integer pageNum = 1;
+
+    private Integer pageSize = 10;
+
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java b/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
index 123b02f..682f496 100644
--- a/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java
@@ -2,6 +2,7 @@
 
 import com.mindskip.xzs.domain.OnlineStudy;
 import com.mindskip.xzs.domain.vo.OnlineStudyVO;
+import com.mindskip.xzs.domain.vo.StudentOnlineVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,4 +23,5 @@
 
     List<OnlineStudyVO> page(@Param("query") OnlineStudyVO query);
 
+    List<OnlineStudyVO> byType(@Param("query") StudentOnlineVO query);
 }
diff --git a/src/main/java/com/mindskip/xzs/service/OnlineStudyService.java b/src/main/java/com/mindskip/xzs/service/OnlineStudyService.java
index 2e59168..5045af5 100644
--- a/src/main/java/com/mindskip/xzs/service/OnlineStudyService.java
+++ b/src/main/java/com/mindskip/xzs/service/OnlineStudyService.java
@@ -2,6 +2,7 @@
 
 import com.mindskip.xzs.base.RestResponse;
 import com.mindskip.xzs.domain.vo.OnlineStudyVO;
+import com.mindskip.xzs.domain.vo.StudentOnlineVO;
 
 import java.util.List;
 
@@ -22,4 +23,18 @@
 
     RestResponse page(OnlineStudyVO query);
 
+    /**
+     * 瀛︾敓绔垎椤垫煡璇�
+     *
+     * @param query
+     * @return
+     */
+    RestResponse byType(StudentOnlineVO query);
+
+    /**
+     * 瀛︿範绫诲瀷list
+     *
+     * @return
+     */
+    RestResponse typeList();
 }
diff --git a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
index b62c392..7cb8fb0 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java
@@ -7,10 +7,11 @@
 import com.mindskip.xzs.domain.OnlineStudy;
 import com.mindskip.xzs.domain.question.QuestionObject;
 import com.mindskip.xzs.domain.vo.OnlineStudyVO;
+import com.mindskip.xzs.domain.vo.StudentOnlineVO;
+import com.mindskip.xzs.domain.vo.StudyTypeVO;
 import com.mindskip.xzs.repository.OnlineStudyMapper;
+import com.mindskip.xzs.repository.StudyTypeMapper;
 import com.mindskip.xzs.service.OnlineStudyService;
-import com.mindskip.xzs.utility.JsonUtil;
-import jdk.nashorn.internal.ir.IfNode;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -19,7 +20,6 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
-import java.util.stream.Collectors;
 
 /**
  * @author锛歺p
@@ -30,6 +30,7 @@
 public class OnlineStudySeerviceImpl implements OnlineStudyService {
 
     private final OnlineStudyMapper mapper;
+    private final StudyTypeMapper studyTypeMapper;
 
     @Override
     public RestResponse add(OnlineStudyVO form) {
@@ -70,7 +71,6 @@
 
     @Override
     public RestResponse page(OnlineStudyVO query) {
-        PageHelper.startPage(query.getPageNum(), query.getPageSize());
         PageInfo<OnlineStudyVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() ->
                 mapper.page(query));
         page.getList().stream().forEach(item -> {
@@ -79,4 +79,21 @@
         });
         return RestResponse.ok(page.getList()).put("total", page.getTotal());
     }
+
+    @Override
+    public RestResponse byType(StudentOnlineVO query) {
+        PageInfo<OnlineStudyVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() ->
+                mapper.byType(query));
+        page.getList().stream().forEach(item -> {
+            item.setContentUrl(JSON.parseObject(item.getContentUrlString(), OnlineStudyVO.UploadFile.class));
+            item.setAttachment(JSON.parseArray(item.getAttachmentString(), OnlineStudyVO.UploadFile.class));
+        });
+        return RestResponse.ok(page.getList()).put("total", page.getTotal());
+    }
+
+    @Override
+    public RestResponse typeList() {
+        List<StudyTypeVO> list = studyTypeMapper.list();
+        return RestResponse.ok(list);
+    }
 }
diff --git a/src/main/resources/mapper/OnlineStudyMapper.xml b/src/main/resources/mapper/OnlineStudyMapper.xml
index 1be4954..6ab5488 100644
--- a/src/main/resources/mapper/OnlineStudyMapper.xml
+++ b/src/main/resources/mapper/OnlineStudyMapper.xml
@@ -28,7 +28,33 @@
             </if>
         </where>
         ORDER BY
-        create_time DESC
+            tos.create_time DESC
+    </select>
+
+    <select id="byType" resultType="com.mindskip.xzs.domain.vo.OnlineStudyVO">
+        SELECT
+            tos.id,
+            tos.content_type,
+            tos.content_url as contentUrlString,
+            tos.belong_type,
+            tos.subject,
+            tos.create_time,
+            tos.update_time,
+            tos.attachment as attachmentString
+        FROM
+            t_online_study tos
+                INNER JOIN t_study_type tst ON tst.id = tos.belong_type
+        <where>
+            AND tos.deleted = 0
+            <if test="query.subject != null and query.subject != ''">
+                AND tos.subject like concat('%', #{query.subject}, '%')
+            </if>
+            <if test="query.belongType != null">
+                AND tst.id = #{query.belongType}
+            </if>
+        </where>
+        ORDER BY
+            tos.create_time DESC
     </select>
 
     <insert id="add" keyColumn="id" useGeneratedKeys="true" parameterType="com.mindskip.xzs.domain.OnlineStudy">

--
Gitblit v1.8.0