From 98c671f4f083260e135664453e857cb8e8c276d2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 13 五月 2024 12:02:33 +0800
Subject: [PATCH] 视频分类接口

---
 src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java           |   28 ++++
 src/main/resources/mapper/StudyTypeMapper.xml                            |   44 +++++++
 src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java                     |   16 ++
 src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java                |   26 ++++
 src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java |   46 +++++++
 src/main/java/com/mindskip/xzs/domain/StudyType.java                     |   28 ++++
 src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java    |   62 ++++++++++
 src/main/java/com/mindskip/xzs/service/StudyTypeService.java             |   51 ++++++++
 8 files changed, 301 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java b/src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java
new file mode 100644
index 0000000..0539fbe
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/controller/admin/StudyTypeController.java
@@ -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锛歺p
+ * @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();
+    }
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/StudyType.java b/src/main/java/com/mindskip/xzs/domain/StudyType.java
new file mode 100644
index 0000000..fa866b2
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/StudyType.java
@@ -0,0 +1,28 @@
+package com.mindskip.xzs.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鍦ㄧ嚎瀛︿範鍒嗙被
+ *
+ * @author锛歺p
+ * @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;
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java b/src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java
new file mode 100644
index 0000000..abe68e9
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/BaseVO.java
@@ -0,0 +1,16 @@
+package com.mindskip.xzs.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/5/13 10:35
+ */
+@Data
+public class BaseVO {
+
+    private Integer pageNum = 1;
+
+    private Integer pageSize = 10;
+
+}
diff --git a/src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java b/src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java
new file mode 100644
index 0000000..155a3f0
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/domain/vo/StudyTypeVO.java
@@ -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锛歺p
+ * @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;
+
+}
diff --git a/src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java b/src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java
new file mode 100644
index 0000000..7cb044a
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/repository/StudyTypeMapper.java
@@ -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锛歺p
+ * @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();
+}
diff --git a/src/main/java/com/mindskip/xzs/service/StudyTypeService.java b/src/main/java/com/mindskip/xzs/service/StudyTypeService.java
new file mode 100644
index 0000000..2cc9613
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/StudyTypeService.java
@@ -0,0 +1,51 @@
+package com.mindskip.xzs.service;
+
+import com.mindskip.xzs.base.RestResponse;
+import com.mindskip.xzs.domain.vo.StudyTypeVO;
+
+/**
+ * @author锛歺p
+ * @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();
+}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java
new file mode 100644
index 0000000..ff842f8
--- /dev/null
+++ b/src/main/java/com/mindskip/xzs/service/impl/StudyTypeServiceImpl.java
@@ -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锛歺p
+ * @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);
+    }
+}
diff --git a/src/main/resources/mapper/StudyTypeMapper.xml b/src/main/resources/mapper/StudyTypeMapper.xml
new file mode 100644
index 0000000..d0d4856
--- /dev/null
+++ b/src/main/resources/mapper/StudyTypeMapper.xml
@@ -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>

--
Gitblit v1.8.0