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