xiangpei
2024-05-16 143ebce41207eb0d3a4df3b6bbd3d482e4f0a8c2
学生在线学习api
4个文件已修改
2个文件已添加
126 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/OnlineStudyMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/OnlineStudyService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/OnlineStudySeerviceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OnlineStudyMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/student/OnlineStudyController.java
New file
@@ -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:xp
 * @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();
    }
}
src/main/java/com/mindskip/xzs/domain/vo/StudentOnlineVO.java
New file
@@ -0,0 +1,22 @@
package com.mindskip.xzs.domain.vo;
import lombok.Data;
/**
 * @author:xp
 * @date:2024/5/16 17:54
 */
@Data
public class StudentOnlineVO {
    /** 类别 */
    private Integer typeId;
    /** 主题 */
    private String subject;
    private Integer pageNum = 1;
    private Integer pageSize = 10;
}
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);
}
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();
}
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:xp
@@ -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);
    }
}
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">