Browse Source

课时增删改查代码提交

pans 8 tháng trước cách đây
mục cha
commit
2f160c4d73
12 tập tin đã thay đổi với 793 bổ sung0 xóa
  1. 128 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ClassHourController.java
  2. 83 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ClassHour.java
  3. 34 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/ClassHourEnum.java
  4. 37 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ClassHourMapper.java
  5. 54 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml
  6. 54 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourAddParam.java
  7. 59 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourEditParam.java
  8. 36 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourIdParam.java
  9. 58 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourPageParam.java
  10. 82 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ClassHourService.java
  11. 90 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ClassHourServiceImpl.java
  12. 78 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/classhour/ClassHourVo.java

+ 128 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ClassHourController.java

@@ -0,0 +1,128 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.disk.domain.ClassHour;
+import vip.xiaonuo.disk.param.ClassHourAddParam;
+import vip.xiaonuo.disk.param.ClassHourEditParam;
+import vip.xiaonuo.disk.param.ClassHourIdParam;
+import vip.xiaonuo.disk.param.ClassHourPageParam;
+import vip.xiaonuo.disk.service.ClassHourService;
+import vip.xiaonuo.disk.vo.classhour.ClassHourVo;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 课时表控制器
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ */
+@Api(tags = "课时表控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class ClassHourController {
+
+    @Resource
+    private ClassHourService classHourService;
+
+    /**
+     * 获取课时表分页
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取课时表分页")
+    @GetMapping("/disk/hour/page")
+    public CommonResult<Page<ClassHourVo>> page(ClassHourPageParam classHourPageParam) {
+        return CommonResult.data(classHourService.page(classHourPageParam));
+    }
+
+    /**
+     * 添加课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加课时表")
+    @CommonLog("添加课时表")
+    @PostMapping("/disk/hour/add")
+    public CommonResult<String> add(@RequestBody @Valid ClassHourAddParam classHourAddParam) {
+        classHourService.add(classHourAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑课时表")
+    @CommonLog("编辑课时表")
+    @PostMapping("/disk/hour/edit")
+    public CommonResult<String> edit(@RequestBody @Valid ClassHourEditParam classHourEditParam) {
+        classHourService.edit(classHourEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除课时表")
+    @CommonLog("删除课时表")
+    @PostMapping("/disk/hour/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<ClassHourIdParam> classHourIdParamList) {
+        classHourService.delete(classHourIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取课时表详情
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取课时表详情")
+    @GetMapping("/disk/hour/detail")
+    public CommonResult<ClassHourVo> detail(@Valid ClassHourIdParam classHourIdParam) {
+        return CommonResult.data(classHourService.detail(classHourIdParam));
+    }
+
+}

+ 83 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/ClassHour.java

@@ -0,0 +1,83 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课时表实体
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+@Setter
+@TableName("class_hour")
+public class ClassHour {
+
+    /** 主键 */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "主键", position = 1)
+    private Integer id;
+
+    /** 开始时间 */
+    @ApiModelProperty(value = "开始时间", position = 2)
+    private Date startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty(value = "结束时间", position = 3)
+    private Date endTime;
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id", position = 4)
+    private Long classId;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 6)
+    private String remark;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 7)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 9)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 10)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 11)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/enums/ClassHourEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.enums;
+
+import lombok.Getter;
+
+/**
+ * 课时表枚举
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+public enum ClassHourEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    ClassHourEnum(String value) {
+        this.value = value;
+    }
+}

+ 37 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ClassHourMapper.java

@@ -0,0 +1,37 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.disk.domain.ClassHour;
+import vip.xiaonuo.disk.param.ClassHourPageParam;
+import vip.xiaonuo.disk.vo.classhour.ClassHourVo;
+
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * 课时表Mapper接口
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+public interface ClassHourMapper extends BaseMapper<ClassHour> {
+
+    Page<ClassHourVo> page(@Param("page") Page<Object> objectPage, @Param("classHourPageParam") ClassHourPageParam classHourPageParam);
+
+
+    ClassHourVo detail(@NotNull(message = "id不能为空") Integer id);
+}

+ 54 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml

@@ -0,0 +1,54 @@
+<?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="vip.xiaonuo.disk.mapper.ClassHourMapper">
+   <select id="page" resultType="vip.xiaonuo.disk.vo.classhour.ClassHourVo">
+       SELECT
+           a."id",
+           a."start_time",
+           a."end_time",
+           a."class_id",
+           a."course_id",
+           a."remark",
+           a.DELETE_FLAG,
+           a.UPDATE_TIME,
+           a.CREATE_TIME,
+           a.CREATE_USER,
+           a.UPDATE_USER,
+           b.class_name,
+           c.COURSE_NAME
+       FROM
+           SYSDBA."class_hour" a
+       LEFT JOIN class_team b ON a."class_id" = b.id
+       LEFT JOIN COURSE_INFO c ON a."course_id" =c.course_id
+       <where>
+          <if test="classHourPageParam.courseId!=null">
+              a."course_id"=#{classHourPageParam.courseId}
+          </if>
+           <if test="classHourPageParam.classId!=null">
+              and a."class_id"=#{classHourPageParam.classId}
+           </if>
+       </where>
+   </select>
+
+    <select id="detail" resultType="vip.xiaonuo.disk.vo.classhour.ClassHourVo">
+        SELECT
+            a."id",
+            a."start_time",
+            a."end_time",
+            a."class_id",
+            a."course_id",
+            a."remark",
+            a.DELETE_FLAG,
+            a.UPDATE_TIME,
+            a.CREATE_TIME,
+            a.CREATE_USER,
+            a.UPDATE_USER,
+            b.class_name,
+            c.COURSE_NAME
+        FROM
+            SYSDBA."class_hour" a
+        LEFT JOIN class_team b ON a."class_id" = b.id
+        LEFT JOIN COURSE_INFO c ON a."course_id" =c.course_id
+        where a."id"=#{id}
+    </select>
+</mapper>

+ 54 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourAddParam.java

@@ -0,0 +1,54 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课时表添加参数
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+@Setter
+public class ClassHourAddParam {
+
+    /** 开始时间 */
+    @ApiModelProperty(value = "开始时间", position = 2)
+    private Date startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty(value = "结束时间", position = 3)
+    private Date endTime;
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id", position = 4)
+    private Long classId;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 6)
+    private String remark;
+
+}

+ 59 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourEditParam.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课时表编辑参数
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+@Setter
+public class ClassHourEditParam {
+
+    /** 主键 */
+    @ApiModelProperty(value = "主键", required = true, position = 1)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+
+    /** 开始时间 */
+    @ApiModelProperty(value = "开始时间", position = 2)
+    private Date startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty(value = "结束时间", position = 3)
+    private Date endTime;
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id", position = 4)
+    private Long classId;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 6)
+    private String remark;
+
+}

+ 36 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourIdParam.java

@@ -0,0 +1,36 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 课时表Id参数
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+@Setter
+public class ClassHourIdParam {
+
+    /** 主键 */
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "id不能为空")
+    private Integer id;
+}

+ 58 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/ClassHourPageParam.java

@@ -0,0 +1,58 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 课时表查询参数
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Getter
+@Setter
+public class ClassHourPageParam {
+
+    /** 当前页 */
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @ApiModelProperty(value = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @ApiModelProperty(value = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @ApiModelProperty(value = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
+
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id", position = 5)
+    private String classId;
+
+
+}

+ 82 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ClassHourService.java

@@ -0,0 +1,82 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.disk.domain.ClassHour;
+import vip.xiaonuo.disk.param.ClassHourAddParam;
+import vip.xiaonuo.disk.param.ClassHourEditParam;
+import vip.xiaonuo.disk.param.ClassHourIdParam;
+import vip.xiaonuo.disk.param.ClassHourPageParam;
+import vip.xiaonuo.disk.vo.classhour.ClassHourVo;
+
+import java.util.List;
+
+/**
+ * 课时表Service接口
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+public interface ClassHourService extends IService<ClassHour> {
+
+    /**
+     * 获取课时表分页
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    Page<ClassHourVo> page(ClassHourPageParam classHourPageParam);
+
+    /**
+     * 添加课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    void add(ClassHourAddParam classHourAddParam);
+
+    /**
+     * 编辑课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    void edit(ClassHourEditParam classHourEditParam);
+
+    /**
+     * 删除课时表
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    void delete(List<ClassHourIdParam> classHourIdParamList);
+
+    /**
+     * 获取课时表详情
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     */
+    ClassHourVo detail(ClassHourIdParam classHourIdParam);
+
+    /**
+     * 获取课时表详情
+     *
+     * @author pans
+     * @date  2025/07/02 10:36
+     **/
+    ClassHour queryEntity(Integer id);
+
+}

+ 90 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ClassHourServiceImpl.java

@@ -0,0 +1,90 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.ClassHour;
+import vip.xiaonuo.disk.mapper.ClassHourMapper;
+import vip.xiaonuo.disk.param.ClassHourAddParam;
+import vip.xiaonuo.disk.param.ClassHourEditParam;
+import vip.xiaonuo.disk.param.ClassHourIdParam;
+import vip.xiaonuo.disk.param.ClassHourPageParam;
+import vip.xiaonuo.disk.service.ClassHourService;
+import vip.xiaonuo.disk.vo.classhour.ClassHourVo;
+import java.util.List;
+
+/**
+ * 课时表Service接口实现类
+ *
+ * @author pans
+ * @date  2025/07/02 10:36
+ **/
+@Service
+public class ClassHourServiceImpl extends ServiceImpl<ClassHourMapper, ClassHour> implements ClassHourService {
+    @Autowired
+    private   ClassHourMapper classHourMapper;
+    @Override
+    public Page<ClassHourVo> page(ClassHourPageParam classHourPageParam) {
+        Page<ClassHourVo> page=classHourMapper.page(CommonPageRequest.defaultPage(),classHourPageParam);
+        return page;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ClassHourAddParam classHourAddParam) {
+        ClassHour classHour = BeanUtil.toBean(classHourAddParam, ClassHour.class);
+        this.save(classHour);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ClassHourEditParam classHourEditParam) {
+        ClassHour classHour = this.queryEntity(classHourEditParam.getId());
+        BeanUtil.copyProperties(classHourEditParam, classHour);
+        this.updateById(classHour);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<ClassHourIdParam> classHourIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(classHourIdParamList, ClassHourIdParam::getId));
+    }
+
+    @Override
+    public ClassHourVo detail(ClassHourIdParam classHourIdParam) {
+        return classHourMapper.detail(classHourIdParam.getId());
+    }
+
+    @Override
+    public ClassHour queryEntity(Integer id) {
+        ClassHour classHour = this.getById(id);
+        if(ObjectUtil.isEmpty(classHour)) {
+            throw new CommonException("课时表不存在,id值为:{}", id);
+        }
+        return classHour;
+    }
+
+}

+ 78 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/classhour/ClassHourVo.java

@@ -0,0 +1,78 @@
+package vip.xiaonuo.disk.vo.classhour;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+@Getter
+@Setter
+public class ClassHourVo {
+    /** 主键 */
+    @TableId
+    @ApiModelProperty(value = "主键", position = 1)
+    private Integer id;
+
+    /** 开始时间 */
+    @ApiModelProperty(value = "开始时间", position = 2)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+
+    /** 结束时间 */
+    @ApiModelProperty(value = "结束时间", position = 3)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endTime;
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id", position = 4)
+    private Long classId;
+
+    @ApiModelProperty(value = "班级名称", position = 4)
+    private String className;
+
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
+
+    /** 课程名称 */
+    @ApiModelProperty(value = "课程名称", position = 5)
+    private String courseName;
+
+
+    /** 备注 */
+    @ApiModelProperty(value = "备注", position = 6)
+    private String remark;
+
+    /** DELETE_FLAG */
+    @ApiModelProperty(value = "DELETE_FLAG", position = 7)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private String deleteFlag;
+
+    /** UPDATE_TIME */
+    @ApiModelProperty(value = "UPDATE_TIME", position = 8)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** CREATE_TIME */
+    @ApiModelProperty(value = "CREATE_TIME", position = 9)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** CREATE_USER */
+    @ApiModelProperty(value = "CREATE_USER", position = 10)
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /** UPDATE_USER */
+    @ApiModelProperty(value = "UPDATE_USER", position = 11)
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+}