liyanbo 10 miesięcy temu
rodzic
commit
c3fbc2de46
100 zmienionych plików z 523 dodań i 0 usunięć
  1. 45 0
      .gitignore
  2. BIN
      .image/Java监控.jpg
  3. BIN
      .image/MySQL.jpg
  4. BIN
      .image/OA请假-列表.jpg
  5. BIN
      .image/OA请假-发起.jpg
  6. BIN
      .image/OA请假-详情.jpg
  7. BIN
      .image/Redis.jpg
  8. BIN
      .image/admin-uniapp/01.png
  9. BIN
      .image/admin-uniapp/02.png
  10. BIN
      .image/admin-uniapp/03.png
  11. BIN
      .image/admin-uniapp/04.png
  12. BIN
      .image/admin-uniapp/05.png
  13. BIN
      .image/admin-uniapp/06.png
  14. BIN
      .image/admin-uniapp/07.png
  15. BIN
      .image/admin-uniapp/08.png
  16. BIN
      .image/admin-uniapp/09.png
  17. BIN
      .image/common/ai-feature.png
  18. BIN
      .image/common/ai-preview.gif
  19. BIN
      .image/common/bpm-feature.png
  20. BIN
      .image/common/crm-feature.png
  21. BIN
      .image/common/erp-feature.png
  22. BIN
      .image/common/infra-feature.png
  23. BIN
      .image/common/mall-feature.png
  24. BIN
      .image/common/mall-preview.png
  25. BIN
      .image/common/project-vs.png
  26. BIN
      .image/common/ruoyi-vue-pro-architecture.png
  27. BIN
      .image/common/ruoyi-vue-pro-biz.png
  28. BIN
      .image/common/system-feature.png
  29. BIN
      .image/common/yudao-cloud-architecture.png
  30. BIN
      .image/common/yudao-roadmap.png
  31. BIN
      .image/个人中心.jpg
  32. BIN
      .image/代码生成.jpg
  33. BIN
      .image/令牌管理.jpg
  34. BIN
      .image/任务列表-审批.jpg
  35. BIN
      .image/任务列表-已办.jpg
  36. BIN
      .image/任务列表-待办.jpg
  37. BIN
      .image/任务日志.jpg
  38. BIN
      .image/商户信息.jpg
  39. BIN
      .image/在线用户.jpg
  40. BIN
      .image/大屏设计器-列表.jpg
  41. BIN
      .image/大屏设计器-编辑.jpg
  42. BIN
      .image/大屏设计器-预览.jpg
  43. BIN
      .image/字典数据.jpg
  44. BIN
      .image/字典类型.jpg
  45. BIN
      .image/定时任务.jpg
  46. BIN
      .image/岗位管理.jpg
  47. BIN
      .image/工作流设计器-bpmn.jpg
  48. BIN
      .image/工作流设计器-simple.jpg
  49. BIN
      .image/应用信息-列表.jpg
  50. BIN
      .image/应用信息-编辑.jpg
  51. BIN
      .image/应用管理.jpg
  52. BIN
      .image/我的流程-列表.jpg
  53. BIN
      .image/我的流程-发起.jpg
  54. BIN
      .image/我的流程-详情.jpg
  55. BIN
      .image/报表设计器-图形报表.jpg
  56. BIN
      .image/报表设计器-打印设计.jpg
  57. BIN
      .image/报表设计器-数据报表.jpg
  58. BIN
      .image/操作日志.jpg
  59. BIN
      .image/支付订单.jpg
  60. BIN
      .image/敏感词.jpg
  61. BIN
      .image/数据库文档.jpg
  62. BIN
      .image/文件管理.jpg
  63. BIN
      .image/文件管理2.jpg
  64. BIN
      .image/文件配置.jpg
  65. BIN
      .image/日志中心.jpg
  66. BIN
      .image/流程模型-列表.jpg
  67. BIN
      .image/流程模型-定义.jpg
  68. BIN
      .image/流程模型-设计.jpg
  69. BIN
      .image/流程表单.jpg
  70. BIN
      .image/生成效果.jpg
  71. BIN
      .image/用户分组.jpg
  72. BIN
      .image/用户管理.jpg
  73. BIN
      .image/登录.jpg
  74. BIN
      .image/登录日志.jpg
  75. BIN
      .image/短信日志.jpg
  76. BIN
      .image/短信模板.jpg
  77. BIN
      .image/短信渠道.jpg
  78. BIN
      .image/租户套餐.png
  79. BIN
      .image/租户管理.jpg
  80. BIN
      .image/系统接口.jpg
  81. BIN
      .image/菜单管理.jpg
  82. BIN
      .image/表单构建.jpg
  83. BIN
      .image/角色管理.jpg
  84. BIN
      .image/访问日志.jpg
  85. BIN
      .image/退款订单.jpg
  86. BIN
      .image/通知公告.jpg
  87. BIN
      .image/部门管理.jpg
  88. BIN
      .image/配置管理.jpg
  89. BIN
      .image/链路追踪.jpg
  90. BIN
      .image/错误日志.jpg
  91. BIN
      .image/错误码管理.jpg
  92. BIN
      .image/首页.jpg
  93. 20 0
      LICENSE
  94. 34 0
      byzs-course/pom.xml
  95. 106 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/CourseController.java
  96. 51 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CoursePageReqVO.java
  97. 69 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CourseRespVO.java
  98. 50 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CourseSaveReqVO.java
  99. 116 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/courseconfig/CourseConfigController.java
  100. 32 0
      byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/courseconfig/vo/CourseConfigPageReqVO.java

+ 45 - 0
.gitignore

@@ -0,0 +1,45 @@
+# IDEA 项目文件
+.idea/
+*.iml
+*.iws
+.idea_modules/
+
+# 编译产物
+target/
+out/
+*.class
+
+# 日志文件
+*.log
+logs/
+
+# 环境配置
+.env
+.env.*
+
+# 本地缓存和临时文件
+*.cache
+*.tmp
+*.temp
+*.bak
+
+# 数据库文件
+*.db
+*.sqlite
+
+# 包管理缓存
+.mvn/
+.gradle/
+node_modules/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# 个人配置
+.settings/
+.classpath
+.project
+
+# 系统文件
+.DS_Store
+Thumbs.db

BIN
.image/Java监控.jpg


BIN
.image/MySQL.jpg


BIN
.image/OA请假-列表.jpg


BIN
.image/OA请假-发起.jpg


BIN
.image/OA请假-详情.jpg


BIN
.image/Redis.jpg


BIN
.image/admin-uniapp/01.png


BIN
.image/admin-uniapp/02.png


BIN
.image/admin-uniapp/03.png


BIN
.image/admin-uniapp/04.png


BIN
.image/admin-uniapp/05.png


BIN
.image/admin-uniapp/06.png


BIN
.image/admin-uniapp/07.png


BIN
.image/admin-uniapp/08.png


BIN
.image/admin-uniapp/09.png


BIN
.image/common/ai-feature.png


BIN
.image/common/ai-preview.gif


BIN
.image/common/bpm-feature.png


BIN
.image/common/crm-feature.png


BIN
.image/common/erp-feature.png


BIN
.image/common/infra-feature.png


BIN
.image/common/mall-feature.png


BIN
.image/common/mall-preview.png


BIN
.image/common/project-vs.png


BIN
.image/common/ruoyi-vue-pro-architecture.png


BIN
.image/common/ruoyi-vue-pro-biz.png


BIN
.image/common/system-feature.png


BIN
.image/common/yudao-cloud-architecture.png


BIN
.image/common/yudao-roadmap.png


BIN
.image/个人中心.jpg


BIN
.image/代码生成.jpg


BIN
.image/令牌管理.jpg


BIN
.image/任务列表-审批.jpg


BIN
.image/任务列表-已办.jpg


BIN
.image/任务列表-待办.jpg


BIN
.image/任务日志.jpg


BIN
.image/商户信息.jpg


BIN
.image/在线用户.jpg


BIN
.image/大屏设计器-列表.jpg


BIN
.image/大屏设计器-编辑.jpg


BIN
.image/大屏设计器-预览.jpg


BIN
.image/字典数据.jpg


BIN
.image/字典类型.jpg


BIN
.image/定时任务.jpg


BIN
.image/岗位管理.jpg


BIN
.image/工作流设计器-bpmn.jpg


BIN
.image/工作流设计器-simple.jpg


BIN
.image/应用信息-列表.jpg


BIN
.image/应用信息-编辑.jpg


BIN
.image/应用管理.jpg


BIN
.image/我的流程-列表.jpg


BIN
.image/我的流程-发起.jpg


BIN
.image/我的流程-详情.jpg


BIN
.image/报表设计器-图形报表.jpg


BIN
.image/报表设计器-打印设计.jpg


BIN
.image/报表设计器-数据报表.jpg


BIN
.image/操作日志.jpg


BIN
.image/支付订单.jpg


BIN
.image/敏感词.jpg


BIN
.image/数据库文档.jpg


BIN
.image/文件管理.jpg


BIN
.image/文件管理2.jpg


BIN
.image/文件配置.jpg


BIN
.image/日志中心.jpg


BIN
.image/流程模型-列表.jpg


BIN
.image/流程模型-定义.jpg


BIN
.image/流程模型-设计.jpg


BIN
.image/流程表单.jpg


BIN
.image/生成效果.jpg


BIN
.image/用户分组.jpg


BIN
.image/用户管理.jpg


BIN
.image/登录.jpg


BIN
.image/登录日志.jpg


BIN
.image/短信日志.jpg


BIN
.image/短信模板.jpg


BIN
.image/短信渠道.jpg


BIN
.image/租户套餐.png


BIN
.image/租户管理.jpg


BIN
.image/系统接口.jpg


BIN
.image/菜单管理.jpg


BIN
.image/表单构建.jpg


BIN
.image/角色管理.jpg


BIN
.image/访问日志.jpg


BIN
.image/退款订单.jpg


BIN
.image/通知公告.jpg


BIN
.image/部门管理.jpg


BIN
.image/配置管理.jpg


BIN
.image/链路追踪.jpg


BIN
.image/错误日志.jpg


BIN
.image/错误码管理.jpg


BIN
.image/首页.jpg


+ 20 - 0
LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2021 ruoyi-vue-pro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 34 - 0
byzs-course/pom.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>cn.iocoder.boot</groupId>
+        <artifactId>byzs-bjdx</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>byzs-course</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>byzs-module-system</artifactId>
+            <version>${revision}</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>byzs-module-infra</artifactId>
+            <version>${revision}</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 106 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/CourseController.java

@@ -0,0 +1,106 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.course;
+
+import cn.iocoder.byzs.module.bjdx.controller.admin.course.vo.CoursePageReqVO;
+import cn.iocoder.byzs.module.bjdx.controller.admin.course.vo.CourseRespVO;
+import cn.iocoder.byzs.module.bjdx.controller.admin.course.vo.CourseSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.byzs.framework.common.pojo.PageParam;
+import cn.iocoder.byzs.framework.common.pojo.PageResult;
+import cn.iocoder.byzs.framework.common.pojo.CommonResult;
+import cn.iocoder.byzs.framework.common.util.object.BeanUtils;
+import static cn.iocoder.byzs.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.byzs.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.byzs.framework.apilog.core.annotation.ApiAccessLog;
+
+import cn.iocoder.byzs.module.bjdx.controller.admin.course.vo.*;
+import cn.iocoder.byzs.module.bjdx.dal.dataobject.course.CourseDO;
+import cn.iocoder.byzs.module.bjdx.service.course.CourseService;
+import static cn.iocoder.byzs.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.byzs.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 课程")
+@RestController
+@RequestMapping("/bjdx/course")
+@Validated
+public class CourseController {
+
+    @Resource
+    private CourseService courseService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建课程")
+    @PreAuthorize("@ss.hasPermission('bjdx:course:create')")
+    public CommonResult<Long> createCourse(@Valid @RequestBody CourseSaveReqVO createReqVO) {
+        return success(courseService.createCourse(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新课程")
+    @PreAuthorize("@ss.hasPermission('bjdx:course:update')")
+    public CommonResult<Boolean> updateCourse(@Valid @RequestBody CourseSaveReqVO updateReqVO) {
+        courseService.updateCourse(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除课程")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('bjdx:course:delete')")
+    public CommonResult<Boolean> deleteCourse(@RequestParam("id") Long id) {
+        courseService.deleteCourse(id);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete-list")
+    @Parameter(name = "ids", description = "编号", required = true)
+    @Operation(summary = "批量删除课程")
+                @PreAuthorize("@ss.hasPermission('bjdx:course:delete')")
+    public CommonResult<Boolean> deleteCourseList(@RequestParam("ids") List<Long> ids) {
+        courseService.deleteCourseListByIds(ids);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得课程")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('bjdx:course:query')")
+    public CommonResult<CourseRespVO> getCourse(@RequestParam("id") Long id) {
+        CourseDO course = courseService.getCourse(id);
+        return success(BeanUtils.toBean(course, CourseRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得课程分页")
+    @PreAuthorize("@ss.hasPermission('bjdx:course:query')")
+    public CommonResult<PageResult<CourseRespVO>> getCoursePage(@Valid CoursePageReqVO pageReqVO) {
+        PageResult<CourseRespVO> pageResult = courseService.getCoursePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, CourseRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出课程 Excel")
+    @PreAuthorize("@ss.hasPermission('bjdx:course:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportCourseExcel(@Valid CoursePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<CourseRespVO> list = courseService.getCoursePage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "课程.xls", "数据", CourseRespVO.class,list);
+    }
+
+}

+ 51 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CoursePageReqVO.java

@@ -0,0 +1,51 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.course.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.byzs.framework.common.pojo.PageParam;
+
+@Schema(description = "管理后台 - 课程分页 Request VO")
+@Data
+public class CoursePageReqVO extends PageParam {
+
+    @Schema(description = "课程id")
+    private Long id;
+
+    @Schema(description = "课程名称")
+    private String courseName;
+
+    @Schema(description = "课程路径")
+    private String coursePath;
+
+    @Schema(description = "课程内容")
+    private String courseContent;
+
+    @Schema(description = "课程作者")
+    private String courseAuthor;
+
+    @Schema(description = "课程老师")
+    private String courseTeacher;
+
+    @Schema(description = "课程大小")
+    private Double courseSize;
+
+    @Schema(description = "课程时长")
+    private Integer courseTime;
+
+    @Schema(description = "课程是否有检查")
+    private String courseIsInspect;
+
+    @Schema(description = "课程类型")
+    private String courseType;
+
+    @Schema(description = "课程类型")
+    private String courseTypeName;
+
+    @Schema(description = "课程标签")
+    private String courseLabel;
+
+    @Schema(description = "课程状态")
+    private String courseStatus;
+
+}

+ 69 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CourseRespVO.java

@@ -0,0 +1,69 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.course.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import com.alibaba.excel.annotation.*;
+import cn.iocoder.byzs.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.byzs.framework.excel.core.convert.DictConvert;
+
+@Schema(description = "管理后台 - 课程 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class CourseRespVO {
+
+    @Schema(description = "课程d", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("课程d")
+    private Long id;
+
+    @Schema(description = "课程名称")
+    @ExcelProperty("课程名称")
+    private String courseName;
+
+    @Schema(description = "课程路径")
+    @ExcelProperty("课程路径")
+    private String coursePath;
+
+    @Schema(description = "课程内容")
+    @ExcelProperty("课程内容")
+    private String courseContent;
+
+    @Schema(description = "课程作者")
+    @ExcelProperty("课程作者")
+    private String courseAuthor;
+
+    @Schema(description = "课程老师")
+    @ExcelProperty("课程老师")
+    private String courseTeacher;
+
+    @Schema(description = "课程大小", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("课程大小")
+    private Double courseSize;
+
+    @Schema(description = "课程时长", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("课程时长")
+    private Integer courseTime;
+
+    @Schema(description = "课程是否有检查")
+    @ExcelProperty(value = "课程是否有检查", converter = DictConvert.class)
+    @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
+    private String courseIsInspect;
+
+    @Schema(description = "课程类型")
+    @ExcelProperty("课程类型")
+    private String courseType;
+
+    @Schema(description = "课程类型")
+    @ExcelProperty("课程类型")
+    private String courseTypeName;
+
+    @Schema(description = "课程标签")
+    @ExcelProperty(value = "课程标签", converter = DictConvert.class)
+    @DictFormat("bjdx_course_label") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
+    private String courseLabel;
+
+    @Schema(description = "课程状态")
+    @ExcelProperty(value = "课程状态", converter = DictConvert.class)
+    @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
+    private String courseStatus;
+
+}

+ 50 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/course/vo/CourseSaveReqVO.java

@@ -0,0 +1,50 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.course.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "管理后台 - 课程新增/修改 Request VO")
+@Data
+public class CourseSaveReqVO {
+
+    @Schema(description = "课程d", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long id;
+
+    @Schema(description = "课程名称")
+    private String courseName;
+
+    @Schema(description = "课程路径")
+    private String coursePath;
+
+    @Schema(description = "课程内容")
+    private String courseContent;
+
+    @Schema(description = "课程作者")
+    private String courseAuthor;
+
+    @Schema(description = "课程老师")
+    private String courseTeacher;
+
+    @Schema(description = "课程大小", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "课程大小不能为空")
+    private Double courseSize;
+
+    @Schema(description = "课程时长", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "课程时长不能为空")
+    private Integer courseTime;
+
+    @Schema(description = "课程是否有检查")
+    private String courseIsInspect;
+
+    @Schema(description = "课程类型")
+    private String courseType;
+
+    @Schema(description = "课程标签")
+    private String courseLabel;
+
+    @Schema(description = "课程状态")
+    private String courseStatus;
+
+}

+ 116 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/courseconfig/CourseConfigController.java

@@ -0,0 +1,116 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig;
+
+import cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig.vo.CourseConfigPageReqVO;
+import cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig.vo.CourseConfigRespVO;
+import cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig.vo.CourseConfigSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.byzs.framework.common.pojo.PageParam;
+import cn.iocoder.byzs.framework.common.pojo.PageResult;
+import cn.iocoder.byzs.framework.common.pojo.CommonResult;
+import cn.iocoder.byzs.framework.common.util.object.BeanUtils;
+import static cn.iocoder.byzs.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.byzs.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.byzs.framework.apilog.core.annotation.ApiAccessLog;
+
+import cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig.vo.*;
+import cn.iocoder.byzs.module.bjdx.dal.dataobject.courseconfig.CourseConfigDO;
+import cn.iocoder.byzs.module.bjdx.service.courseconfig.CourseConfigService;
+import static cn.iocoder.byzs.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.byzs.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 课程配置")
+@RestController
+@RequestMapping("/bjdx/course-config")
+@Validated
+public class CourseConfigController {
+
+    @Resource
+    private CourseConfigService courseConfigService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建课程配置")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:create')")
+    public CommonResult<Long>createCourseConfig(@Valid @RequestBody CourseConfigSaveReqVO createReqVO) {
+        return success(courseConfigService.createCourseConfig(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新课程配置")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:update')")
+    public CommonResult<Boolean> updateCourseConfig(@Valid @RequestBody CourseConfigSaveReqVO updateReqVO) {
+        courseConfigService.updateCourseConfig(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除课程配置")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:delete')")
+    public CommonResult<Boolean> deleteCourseConfig(@RequestParam("id") Long id) {
+        courseConfigService.deleteCourseConfig(id);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete-list")
+    @Parameter(name = "ids", description = "编号", required = true)
+    @Operation(summary = "批量删除课程配置")
+                @PreAuthorize("@ss.hasPermission('bjdx:course-config:delete')")
+    public CommonResult<Boolean> deleteCourseConfigList(@RequestParam("ids") List<Long> ids) {
+        courseConfigService.deleteCourseConfigListByIds(ids);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得课程配置")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:query')")
+    public CommonResult<CourseConfigRespVO> getCourseConfig(@RequestParam("id") Long id) {
+        CourseConfigDO courseConfig = courseConfigService.getCourseConfig(id);
+        return success(BeanUtils.toBean(courseConfig, CourseConfigRespVO.class));
+    }
+
+    @GetMapping("/getConfigQuest")
+    @Operation(summary = "获得课程配置试题列表")
+    @Parameter(name = "ccCourseId", description = "课程id", required = true, example = "1025")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:query')")
+    public CommonResult<List<CourseConfigRespVO>> getCourseConfigQuestion(@RequestParam("ccCourseId") Long ccCourseId) {
+        List<CourseConfigRespVO> courseConfigList = courseConfigService.getCourseConfigQuestion(ccCourseId);
+        return success(courseConfigList);
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得课程配置分页")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:query')")
+    public CommonResult<PageResult<CourseConfigPageReqVO>> getCourseConfigPage(@Valid CourseConfigPageReqVO pageReqVO) {
+        PageResult<CourseConfigPageReqVO> pageResult = courseConfigService.getCourseConfigPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, CourseConfigPageReqVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出课程配置 Excel")
+    @PreAuthorize("@ss.hasPermission('bjdx:course-config:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportCourseConfigExcel(@Valid CourseConfigPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<CourseConfigPageReqVO> list = courseConfigService.getCourseConfigPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "课程配置.xls", "数据", CourseConfigPageReqVO.class,
+                        BeanUtils.toBean(list, CourseConfigPageReqVO.class));
+    }
+
+}

+ 32 - 0
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/controller/admin/courseconfig/vo/CourseConfigPageReqVO.java

@@ -0,0 +1,32 @@
+package cn.iocoder.byzs.module.bjdx.controller.admin.courseconfig.vo;
+
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.byzs.framework.common.pojo.PageParam;
+
+@Schema(description = "管理后台 - 课程配置分页 Request VO")
+@Data
+public class CourseConfigPageReqVO extends PageParam {
+
+    @Schema(description = "课程配置id")
+    private Integer id;
+
+    @Schema(description = "课程id")
+    private Integer ccCourseId;
+
+    @Schema(description = "课程名称")
+    private String courseName;
+
+    @Schema(description = "课程暂停时长")
+    private Double ccTime;
+
+    @Schema(description = "试题id")
+    private Integer ccQuestId;
+
+    @Schema(description = "试题名称")
+    private String questContent;
+
+    @Schema(description = "是否显示答案")
+    private String ccAnswerJudge;
+
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików