xiangpei
2024-05-13 98c671f4f083260e135664453e857cb8e8c276d2
视频分类接口
8个文件已添加
301 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/StudyType.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/StudyTypeService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/StudyTypeMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java
New file
@@ -0,0 +1,46 @@
package com.mindskip.xzs.controller.admin;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.vo.StudyTypeVO;
import com.mindskip.xzs.service.StudyTypeService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
 * @author:xp
 * @date:2024/5/13 10:25
 */
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/admin/study/type")
public class StudyTypeController {
    private final StudyTypeService studyTypeService;
    @GetMapping("/page")
    public RestResponse page(StudyTypeVO query) {
        return studyTypeService.page(query);
    }
    @PostMapping
    public RestResponse add(@Validated StudyTypeVO query) {
        return studyTypeService.add(query);
    }
    @PostMapping("/edit")
    public RestResponse update(@Validated StudyTypeVO query) {
        return studyTypeService.update(query);
    }
    @PostMapping("/remove/{id}")
    public RestResponse remove(@PathVariable("id") Integer id) {
        return studyTypeService.remove(id);
    }
    @PostMapping("/list")
    public RestResponse list() {
        return studyTypeService.list();
    }
}
src/main/java/com/mindskip/xzs/domain/StudyType.java
New file
@@ -0,0 +1,28 @@
package com.mindskip.xzs.domain;
import lombok.Data;
import java.util.Date;
/**
 * 在线学习分类
 *
 * @author:xp
 * @date:2024/5/13 10:19
 */
@Data
public class StudyType {
    private Integer id;
    /** 分类名 */
    private String typeName;
    /** 排序值 */
    private Integer orderNum;
    private Integer deleted;
    private Date createTime;
}
src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java
New file
@@ -0,0 +1,16 @@
package com.mindskip.xzs.domain.vo;
import lombok.Data;
/**
 * @author:xp
 * @date:2024/5/13 10:35
 */
@Data
public class BaseVO {
    private Integer pageNum = 1;
    private Integer pageSize = 10;
}
src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java
New file
@@ -0,0 +1,26 @@
package com.mindskip.xzs.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * @author:xp
 * @date:2024/5/13 10:21
 */
@Data
public class StudyTypeVO extends BaseVO {
    private Integer id;
    @NotBlank(message = "请输入类型名字")
    private String typeName;
    @NotNull(message = "请输入排序值")
    private Integer orderNum;
    private Date createTime;
}
src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java
New file
@@ -0,0 +1,28 @@
package com.mindskip.xzs.repository;
import com.mindskip.xzs.domain.StudyType;
import com.mindskip.xzs.domain.vo.StudyTypeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @author:xp
 * @date:2024/5/13 10:23
 */
@Mapper
public interface StudyTypeMapper {
    List<StudyTypeVO> page(@Param("query") StudyTypeVO query);
    void add(@Param("entity") StudyType studyType);
    void update(@Param("vo") StudyTypeVO vo);
    void remove(Integer id);
    List<StudyTypeVO> list();
}
src/main/java/com/mindskip/xzs/service/StudyTypeService.java
New file
@@ -0,0 +1,51 @@
package com.mindskip.xzs.service;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.vo.StudyTypeVO;
/**
 * @author:xp
 * @date:2024/5/13 10:24
 */
public interface StudyTypeService {
    /**
     * 分页
     *
     * @param query
     * @return
     */
    RestResponse page(StudyTypeVO query);
    /**
     * 添加
     *
     * @param vo
     * @return
     */
    RestResponse add(StudyTypeVO vo);
    /**
     * 修改
     *
     * @param query
     * @return
     */
    RestResponse update(StudyTypeVO query);
    /**
     * 删除
     *
     * @param id
     * @return
     */
    RestResponse remove(Integer id);
    /**
     * 下拉列表
     *
     * @return
     */
    RestResponse list();
}
src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java
New file
@@ -0,0 +1,62 @@
package com.mindskip.xzs.service.impl;
import com.github.pagehelper.PageHelper;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.StudyType;
import com.mindskip.xzs.domain.vo.StudyTypeVO;
import com.mindskip.xzs.repository.StudyTypeMapper;
import com.mindskip.xzs.service.StudyTypeService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * @author:xp
 * @date:2024/5/13 10:24
 */
@Service
@RequiredArgsConstructor
public class StudyTypeServiceImpl implements StudyTypeService {
    private final StudyTypeMapper mapper;
    @Override
    public RestResponse page(StudyTypeVO query) {
        PageHelper.startPage(query.getPageNum(), query.getPageSize());
        return RestResponse.ok(mapper.page(query));
    }
    @Override
    public RestResponse add(StudyTypeVO vo) {
        StudyType studyType = new StudyType();
        studyType.setTypeName(vo.getTypeName());
        studyType.setOrderNum(vo.getOrderNum());
        studyType.setCreateTime(new Date());
        mapper.add(studyType);
        return RestResponse.ok("添加成功");
    }
    @Override
    public RestResponse update(StudyTypeVO query) {
        if (Objects.isNull(query.getId())) {
            throw new RuntimeException("请选择要修改得数据");
        }
        mapper.update(query);
        return RestResponse.ok("修改成功");
    }
    @Override
    public RestResponse remove(Integer id) {
        mapper.remove(id);
        return RestResponse.ok("删除成功");
    }
    @Override
    public RestResponse list() {
        List<StudyTypeVO> data = mapper.list();
        return RestResponse.ok(data);
    }
}
src/main/resources/mapper/StudyTypeMapper.xml
New file
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mindskip.xzs.repository.StudyTypeMapper">
    <select id="page" resultType="com.mindskip.xzs.domain.vo.StudyTypeVO">
        SELECT
               id,type_name, create_time, order_num
        FROM
             t_study_type
        <where>
                AND deleted = 0
            <if test="query.typeName != null and query.typeName != ''">
                AND type_name like concat('%', #{query.typeName}, '%')
            </if>
        </where>
        ORDER BY
            order_num ASC
    </select>
    <insert id="add" keyColumn="id" useGeneratedKeys="true" parameterType="com.mindskip.xzs.domain.StudyType">
        INSERT INTO t_study_type(type_name, order_num, create_time) value (#{entity.typeName}, #{entity.orderNum}, #{entity.createTime})
    </insert>
    <update id="update" parameterType="com.mindskip.xzs.domain.vo.StudyTypeVO">
        UPDATE t_study_type SET type_name = #{vo.typeName}, order_num = #{vo.orderNum} WHERE id = #{vo.id}
    </update>
    <update id="remove">
        UPDATE t_study_type SET deleted = 1 WHERE id = #{id}
    </update>
    <select id="list" resultType="com.mindskip.xzs.domain.vo.StudyTypeVO">
        SELECT
            id,type_name, create_time, order_num
        FROM
            t_study_type
        WHERE
            deleted = 0
    </select>
</mapper>