JsonResult ok(T data) {
+
+ JsonResult jsonResult = new JsonResult();
+ jsonResult.setCode(200);//code值是自行定义
+ jsonResult.setMsg("success");
+ jsonResult.setData(data);
+ return jsonResult;
+ }
+
+ public static JsonResult error() {
+
+ JsonResult jsonResult = new JsonResult();
+ jsonResult.setCode(500);
+ jsonResult.setMsg("fail");
+
+ return jsonResult;
+ }
+
+ public static JsonResult error(int code, String msg) {
+
+ JsonResult jsonResult = new JsonResult();
+ jsonResult.setCode(code);
+ jsonResult.setMsg(msg);
+
+ return jsonResult;
+ }
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/config/MyWebMvcConfig.java b/src/main/java/com/zhiyun/zhiyun03/course/config/MyWebMvcConfig.java
new file mode 100644
index 0000000..ebf4cd7
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/config/MyWebMvcConfig.java
@@ -0,0 +1,25 @@
+package com.zhiyun.zhiyun03.course.config;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+@Configuration
+public class MyWebMvcConfig extends WebMvcConfigurationSupport {
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/**").addResourceLocations(
+ "classpath:/static/");
+
+ // swagger静态资源相关
+ registry.addResourceHandler("swagger-ui.html", "doc.html").addResourceLocations(
+ "classpath:/META-INF/resources/");
+ registry.addResourceHandler("/webjars/**").addResourceLocations(
+ "classpath:/META-INF/resources/webjars/");
+ // 针对swagger自带的静态资源
+ registry.addResourceHandler("/swagger-ui/**").addResourceLocations(
+ "classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
+ super.addResourceHandlers(registry);
+ }
+
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/config/SwaggerConfig.java b/src/main/java/com/zhiyun/zhiyun03/course/config/SwaggerConfig.java
new file mode 100644
index 0000000..b13017a
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/config/SwaggerConfig.java
@@ -0,0 +1,112 @@
+package com.zhiyun.zhiyun03.course.config;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.oas.annotations.EnableOpenApi;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Swagger3的接口配置
+ *
+ * http://localhost:8080/swagger-ui/index.html#/
+ */
+@Configuration
+@EnableOpenApi // swagger3使用的注解
+public class SwaggerConfig {
+
+ /**
+ * 是否开启swagger
+ */
+ // 注入常量值
+ @Value("${swagger.enabled}")
+ private boolean enabled;
+
+ /**
+ * 创建API
+ */
+ @Bean
+ public Docket createRestApi() {
+ return new Docket(DocumentationType.OAS_30)
+ // 是否启用Swagger
+ .enable(enabled)
+ // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+ .apiInfo(apiInfo())
+ // 设置哪些接口暴露给Swagger展示
+ .select()
+ // 扫描所有有注解的api,用这种方式更灵活
+ .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+ // 扫描指定包中的swagger注解
+ //.apis(RequestHandlerSelectors.basePackage("com.carpjump"))
+ // 扫描所有 .apis(RequestHandlerSelectors.any())
+ .paths(PathSelectors.any())
+ .build()
+ /* 设置安全模式,swagger可以设置访问token */
+ .securitySchemes(securitySchemes())
+ .securityContexts(securityContexts())
+ .pathMapping("/");
+ }
+
+ /**
+ * 安全模式,这里指定token通过请求头的token头传递
+ */
+ private List securitySchemes() {
+ List apiKeyList = new ArrayList();
+ apiKeyList.add(new ApiKey("token", "token", In.HEADER.toValue()));
+ return apiKeyList;
+ }
+
+ /**
+ * 安全上下文
+ */
+ private List securityContexts() {
+ List securityContexts = new ArrayList<>();
+ securityContexts.add(
+ SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+ .build());
+ return securityContexts;
+ }
+
+ /**
+ * 默认的安全上引用
+ */
+ private List defaultAuth() {
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+ authorizationScopes[0] = authorizationScope;
+ List securityReferences = new ArrayList<>();
+ securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
+ return securityReferences;
+ }
+
+ /**
+ * 添加摘要信息
+ */
+ private ApiInfo apiInfo() {
+ // 用ApiInfoBuilder进行定制
+ return new ApiInfoBuilder()
+ // 设置标题
+ .title("app接口文档")
+ // 描述
+ .description("具体包括XXX,XXX模块...")
+ // 作者信息
+ .contact(new Contact("qfedu", null, null))
+ // 版本
+ .version("1.0.0")
+ .build();
+ }
+}
+
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
new file mode 100644
index 0000000..0ddb10e
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
@@ -0,0 +1,73 @@
+package com.zhiyun.zhiyun03.course.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.zhiyun.zhiyun03.course.common.JsonResult;
+import com.zhiyun.zhiyun03.course.entity.Course;
+
+import com.zhiyun.zhiyun03.course.service.CourseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api("课程")
+@RestController
+@RequestMapping("/api/course")
+public class CourseController {
+
+ @Autowired
+ private CourseService courseService;
+
+
+ @ApiOperation("查询课程")
+ @GetMapping("/selectAll")
+ public JsonResult selectAll(@RequestParam(value = "page", required = false,defaultValue = "1") Integer pageNum,
+ @RequestParam(value = "limit", required = false,defaultValue = "1") Integer pageSize){
+
+ PageHelper.startPage(pageNum,pageSize);
+ List courseList = courseService.selectAll();
+
+ PageInfo coursePageInfo = new PageInfo<>();
+
+ JsonResult jsonResult = JsonResult.ok();
+ jsonResult.setData(coursePageInfo.getList());
+ jsonResult.setCount(coursePageInfo.getTotal());
+ return jsonResult;
+ }
+
+
+ @ApiOperation("课程添加")
+ @PostMapping("/add")
+ public JsonResult addCourse(Course course){
+ courseService.addCourse(course);
+ return JsonResult.ok();
+ }
+
+// @ApiOperation("查询目录")
+// @PostMapping("/select")
+// public JsonResult selectDir(Directory directory){
+// courseService.se(course);
+// return JsonResult.ok();
+// }
+
+ @ApiOperation("删除课程")
+ @DeleteMapping("delById")
+ public JsonResult delCourseById(Integer id){
+ courseService.delCourseById(id);
+return JsonResult.ok();
+ }
+
+ @ApiOperation("更新课程")
+ @DeleteMapping("updateById")
+ public JsonResult updateById(Course course){
+ courseService.updateById(course);
+ return JsonResult.ok();
+ }
+
+
+
+
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
new file mode 100644
index 0000000..dc3b083
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
@@ -0,0 +1,15 @@
+package com.zhiyun.zhiyun03.course.service;
+
+import com.zhiyun.zhiyun03.course.entity.Course;
+
+import java.util.List;
+
+public interface CourseService {
+ public void addCourse(Course course);
+
+ void delCourseById(Integer id);
+
+ void updateById(Course course);
+
+ List selectAll();
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
new file mode 100644
index 0000000..cbb3b52
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
@@ -0,0 +1,36 @@
+package com.zhiyun.zhiyun03.course.service.impl;
+
+import com.zhiyun.zhiyun03.course.dao.CourseDAO;
+import com.zhiyun.zhiyun03.course.entity.Course;
+import com.zhiyun.zhiyun03.course.service.CourseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class CourseServiceImpl implements CourseService {
+
+ @Autowired
+ private CourseDAO courseDAO;
+
+ @Override
+ public void addCourse(Course course) {
+ courseDAO.insert(course);
+ }
+
+ @Override
+ public void delCourseById(Integer id) {
+ courseDAO.deleteByPrimaryKey(id);
+ }
+
+ @Override
+ public void updateById(Course course) {
+ courseDAO.updateByPrimaryKey(course);
+ }
+
+ @Override
+ public List selectAll() {
+ return courseDAO.selectAll();
+ }
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java b/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java
new file mode 100644
index 0000000..83059a3
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java
@@ -0,0 +1,33 @@
+package com.zhiyun.zhiyun03.directory.controller;
+
+import com.zhiyun.zhiyun03.course.common.JsonResult;
+import com.zhiyun.zhiyun03.directory.entity.Directory;
+import com.zhiyun.zhiyun03.directory.servcie.DirectoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api("目录")
+@RestController
+@RequestMapping("/api/directory")
+public class DirectoryController {
+ @Autowired
+ private DirectoryService directoryService;
+
+ @ApiOperation("添加目录")
+ @PostMapping("/add")
+ public JsonResult addDirectory(Directory directory){
+ directoryService.addDirectory(directory);
+ return JsonResult.ok();
+ }
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java
new file mode 100644
index 0000000..5eb61ae
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java
@@ -0,0 +1,7 @@
+package com.zhiyun.zhiyun03.directory.servcie;
+
+import com.zhiyun.zhiyun03.directory.entity.Directory;
+
+public interface DirectoryService {
+ void addDirectory(Directory directory);
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java
new file mode 100644
index 0000000..e10e1ff
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java
@@ -0,0 +1,19 @@
+package com.zhiyun.zhiyun03.directory.servcie.impl;
+
+import com.zhiyun.zhiyun03.course.dao.DirectoryDAO;
+import com.zhiyun.zhiyun03.directory.entity.Directory;
+import com.zhiyun.zhiyun03.directory.servcie.DirectoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DirectoryServiceImpl implements DirectoryService {
+
+ @Autowired
+ private DirectoryDAO directoryDAO;
+
+ @Override
+ public void addDirectory(Directory directory) {
+ directoryDAO.insert(directory);
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0653c9e..27bac68 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,9 +12,12 @@ mybatis:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
- driverClassName: com.mysql.jdbc.Driver
+ driverClassName: com.mysql.cj.jdbc.Driver
druid:
url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
- password: 123456
+ password: root
+
+swagger:
+ enabled: true
\ No newline at end of file
diff --git a/src/main/resources/mapper/directory/DirectoryDAO.xml b/src/main/resources/mapper/directory/DirectoryDAO.xml
new file mode 100644
index 0000000..50e1e0e
--- /dev/null
+++ b/src/main/resources/mapper/directory/DirectoryDAO.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+ id, dir_name, dir_img
+
+
+
+ delete from directory
+ where id = #{id,jdbcType=INTEGER}
+
+
+ insert into directory (id,dir_name, dir_img)
+ values (#{id},#{dirName,jdbcType=VARCHAR}, #{dirImg,jdbcType=VARCHAR})
+
+
+ insert into directory
+
+
+ dir_name,
+
+
+ dir_img,
+
+
+
+
+ #{dirName,jdbcType=VARCHAR},
+
+
+ #{dirImg,jdbcType=VARCHAR},
+
+
+
+
+ update directory
+
+
+ dir_name = #{dirName,jdbcType=VARCHAR},
+
+
+ dir_img = #{dirImg,jdbcType=VARCHAR},
+
+
+ where id = #{id,jdbcType=INTEGER}
+
+
+ update directory
+ set dir_name = #{dirName,jdbcType=VARCHAR},
+ dir_img = #{dirImg,jdbcType=VARCHAR}
+ where id = #{id,jdbcType=INTEGER}
+
+
\ No newline at end of file
From 1658f5ca18086a7555f74e22da7f9645794a3d6c Mon Sep 17 00:00:00 2001
From: wanghb <17803890193@163.com>
Date: Wed, 9 Aug 2023 18:12:48 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../zhiyun/zhiyun03/Zhiyun03Application.java | 2 +-
.../course/controller/CourseController.java | 67 +++++++---------
.../zhiyun03/course/mapper/CourseMapper.java | 9 +++
.../course/service/CourseService.java | 12 +--
.../service/impl/CourseServiceImpl.java | 78 ++++++++++++++-----
.../zhiyun/zhiyun03/course/vo/CourseVo.java | 20 +++++
.../controller/DirectoryController.java | 33 --------
.../directory/servcie/DirectoryService.java | 7 --
.../servcie/impl/DirectoryServiceImpl.java | 19 -----
src/main/resources/mapper/DirectoryMapper.xml | 5 ++
.../mapper/directory/DirectoryDAO.xml | 63 ---------------
11 files changed, 131 insertions(+), 184 deletions(-)
create mode 100644 src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
delete mode 100644 src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java
delete mode 100644 src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java
delete mode 100644 src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java
create mode 100644 src/main/resources/mapper/DirectoryMapper.xml
delete mode 100644 src/main/resources/mapper/directory/DirectoryDAO.xml
diff --git a/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java b/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java
index 3b3da6b..aa812b3 100644
--- a/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java
+++ b/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java
@@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
-@MapperScan("com.zhiyun.**.dao")
+
public class Zhiyun03Application {
public static void main(String[] args) {
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
index 0ddb10e..7ec77fe 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
@@ -6,6 +6,7 @@ import com.zhiyun.zhiyun03.course.common.JsonResult;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.service.CourseService;
+import com.zhiyun.zhiyun03.course.vo.CourseVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,49 +25,41 @@ public class CourseController {
@ApiOperation("查询课程")
@GetMapping("/selectAll")
- public JsonResult selectAll(@RequestParam(value = "page", required = false,defaultValue = "1") Integer pageNum,
- @RequestParam(value = "limit", required = false,defaultValue = "1") Integer pageSize){
+ public List queryCourse(){
- PageHelper.startPage(pageNum,pageSize);
- List courseList = courseService.selectAll();
-
- PageInfo coursePageInfo = new PageInfo<>();
-
- JsonResult jsonResult = JsonResult.ok();
- jsonResult.setData(coursePageInfo.getList());
- jsonResult.setCount(coursePageInfo.getTotal());
- return jsonResult;
+ List list = courseService.queryCourse();
+ return list;
}
- @ApiOperation("课程添加")
- @PostMapping("/add")
- public JsonResult addCourse(Course course){
- courseService.addCourse(course);
- return JsonResult.ok();
- }
-
-// @ApiOperation("查询目录")
-// @PostMapping("/select")
-// public JsonResult selectDir(Directory directory){
-// courseService.se(course);
+// @ApiOperation("课程添加")
+// @PostMapping("/add")
+// public JsonResult addCourse(Course course){
+// courseService.addCourse(course);
// return JsonResult.ok();
// }
-
- @ApiOperation("删除课程")
- @DeleteMapping("delById")
- public JsonResult delCourseById(Integer id){
- courseService.delCourseById(id);
-return JsonResult.ok();
- }
-
- @ApiOperation("更新课程")
- @DeleteMapping("updateById")
- public JsonResult updateById(Course course){
- courseService.updateById(course);
- return JsonResult.ok();
- }
-
+//
+//// @ApiOperation("查询目录")
+//// @PostMapping("/select")
+//// public JsonResult selectDir(Directory directory){
+//// courseService.se(course);
+//// return JsonResult.ok();
+//// }
+//
+// @ApiOperation("删除课程")
+// @DeleteMapping("delById")
+// public JsonResult delCourseById(Integer id){
+// courseService.delCourseById(id);
+//return JsonResult.ok();
+// }
+//
+// @ApiOperation("更新课程")
+// @DeleteMapping("updateById")
+// public JsonResult updateById(Course course){
+// courseService.updateById(course);
+// return JsonResult.ok();
+// }
+//
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
new file mode 100644
index 0000000..38c326f
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
@@ -0,0 +1,9 @@
+package com.zhiyun.zhiyun03.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhiyun.zhiyun03.course.entity.Course;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CourseMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
index dc3b083..c68e712 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
@@ -1,15 +1,17 @@
package com.zhiyun.zhiyun03.course.service;
import com.zhiyun.zhiyun03.course.entity.Course;
+import com.zhiyun.zhiyun03.course.vo.CourseVo;
import java.util.List;
public interface CourseService {
- public void addCourse(Course course);
+// public void addCourse(Course course);
+//
+// void delCourseById(Integer id);
+//
+// void updateById(Course course);
- void delCourseById(Integer id);
- void updateById(Course course);
-
- List selectAll();
+ List queryCourse();
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
index cbb3b52..ef36776 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
@@ -1,36 +1,76 @@
package com.zhiyun.zhiyun03.course.service.impl;
-import com.zhiyun.zhiyun03.course.dao.CourseDAO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhiyun.zhiyun03.application.entity.Directory;
+import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
+import com.zhiyun.zhiyun03.application.util.ConvertUtil;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.service.CourseService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.zhiyun.zhiyun03.course.vo.CourseVo;
+import com.zhiyun.zhiyun03.course.mapper.CourseMapper;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
import java.util.List;
@Service
-public class CourseServiceImpl implements CourseService {
+public class CourseServiceImpl extends ServiceImpl implements CourseService {
- @Autowired
- private CourseDAO courseDAO;
+ @Resource
+ private CourseMapper courseMapper;
- @Override
- public void addCourse(Course course) {
- courseDAO.insert(course);
- }
+ @Resource
+ DirectoryMapper directoryMapper;
- @Override
- public void delCourseById(Integer id) {
- courseDAO.deleteByPrimaryKey(id);
- }
- @Override
- public void updateById(Course course) {
- courseDAO.updateByPrimaryKey(course);
- }
+ /**
+ * 应用中心查询
+ */
@Override
- public List selectAll() {
- return courseDAO.selectAll();
+ public List queryCourse() {
+ QueryWrapper qwa=new QueryWrapper<>();
+ List courses = courseMapper.selectList(qwa);
+ QueryWrapper qwd=new QueryWrapper<>();
+ List directories = directoryMapper.selectList(qwd);
+ ConvertUtil convertUtil=new ConvertUtil();
+ List applicationVos = convertUtil.entityToVoList(courses, CourseVo.class);
+
+ for (int i = 0; i < courses.size(); i++) {
+ for (int j = 0; j queryCourse() {
+// return null;
+// }
+//
+// @Override
+// public List selectAll() {
+// return courseDAO.selectAll();
+// }
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java b/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
new file mode 100644
index 0000000..19c222a
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
@@ -0,0 +1,20 @@
+package com.zhiyun.zhiyun03.course.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class CourseVo{
+ @TableId
+ private int id;
+
+ private String courseName;
+
+ private String courseBrief;
+
+ private String courseUrl;
+
+ private String dirName;
+
+ private String appIcon;
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java b/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java
deleted file mode 100644
index 83059a3..0000000
--- a/src/main/java/com/zhiyun/zhiyun03/directory/controller/DirectoryController.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.zhiyun.zhiyun03.directory.controller;
-
-import com.zhiyun.zhiyun03.course.common.JsonResult;
-import com.zhiyun.zhiyun03.directory.entity.Directory;
-import com.zhiyun.zhiyun03.directory.servcie.DirectoryService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@Api("目录")
-@RestController
-@RequestMapping("/api/directory")
-public class DirectoryController {
- @Autowired
- private DirectoryService directoryService;
-
- @ApiOperation("添加目录")
- @PostMapping("/add")
- public JsonResult addDirectory(Directory directory){
- directoryService.addDirectory(directory);
- return JsonResult.ok();
- }
-
-
-
-
-
-
-
-}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java
deleted file mode 100644
index 5eb61ae..0000000
--- a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/DirectoryService.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.zhiyun.zhiyun03.directory.servcie;
-
-import com.zhiyun.zhiyun03.directory.entity.Directory;
-
-public interface DirectoryService {
- void addDirectory(Directory directory);
-}
diff --git a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java
deleted file mode 100644
index e10e1ff..0000000
--- a/src/main/java/com/zhiyun/zhiyun03/directory/servcie/impl/DirectoryServiceImpl.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.zhiyun.zhiyun03.directory.servcie.impl;
-
-import com.zhiyun.zhiyun03.course.dao.DirectoryDAO;
-import com.zhiyun.zhiyun03.directory.entity.Directory;
-import com.zhiyun.zhiyun03.directory.servcie.DirectoryService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DirectoryServiceImpl implements DirectoryService {
-
- @Autowired
- private DirectoryDAO directoryDAO;
-
- @Override
- public void addDirectory(Directory directory) {
- directoryDAO.insert(directory);
- }
-}
diff --git a/src/main/resources/mapper/DirectoryMapper.xml b/src/main/resources/mapper/DirectoryMapper.xml
new file mode 100644
index 0000000..8055e7d
--- /dev/null
+++ b/src/main/resources/mapper/DirectoryMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/directory/DirectoryDAO.xml b/src/main/resources/mapper/directory/DirectoryDAO.xml
deleted file mode 100644
index 50e1e0e..0000000
--- a/src/main/resources/mapper/directory/DirectoryDAO.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
- id, dir_name, dir_img
-
-
-
- delete from directory
- where id = #{id,jdbcType=INTEGER}
-
-
- insert into directory (id,dir_name, dir_img)
- values (#{id},#{dirName,jdbcType=VARCHAR}, #{dirImg,jdbcType=VARCHAR})
-
-
- insert into directory
-
-
- dir_name,
-
-
- dir_img,
-
-
-
-
- #{dirName,jdbcType=VARCHAR},
-
-
- #{dirImg,jdbcType=VARCHAR},
-
-
-
-
- update directory
-
-
- dir_name = #{dirName,jdbcType=VARCHAR},
-
-
- dir_img = #{dirImg,jdbcType=VARCHAR},
-
-
- where id = #{id,jdbcType=INTEGER}
-
-
- update directory
- set dir_name = #{dirName,jdbcType=VARCHAR},
- dir_img = #{dirImg,jdbcType=VARCHAR}
- where id = #{id,jdbcType=INTEGER}
-
-
\ No newline at end of file
From e8a9b2a66eee70ff15688f2cdd75639c5e7b7d09 Mon Sep 17 00:00:00 2001
From: wanghb <17803890193@163.com>
Date: Thu, 10 Aug 2023 10:17:52 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=BC=82=E5=B8=B8?=
=?UTF-8?q?=E5=92=8C=E8=BF=94=E5=9B=9E=E7=BB=9F=E4=B8=80=E7=BB=93=E6=9E=9C?=
=?UTF-8?q?=E9=9B=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../application/mapper/ApplicationMapper.java | 1 +
.../course/config/MybatisPlusConfig.java | 19 +++++
.../course/controller/CourseController.java | 49 ++++++------
.../zhiyun03/course/mapper/CourseMapper.java | 5 ++
.../zhiyun03/course/param/PageParam.java | 9 +++
.../course/service/CourseService.java | 12 ++-
.../service/impl/CourseServiceImpl.java | 54 +++++++++++--
.../zhiyun/zhiyun03/course/vo/CourseVo.java | 5 +-
.../com/zhiyun/zhiyun03/course/vo/PageVO.java | 13 ++++
.../zhiyun/zhiyun03/utils/common/Result.java | 76 +++++++++++++++++++
.../zhiyun03/utils/common/ResultCode.java | 22 ++++++
.../exception/GlobalExceptionHandler.java | 27 +++++++
.../utils/exception/ServiceException.java | 33 ++++++++
src/main/resources/application.yml | 26 ++++---
14 files changed, 307 insertions(+), 44 deletions(-)
create mode 100644 src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/common/Result.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/exception/ServiceException.java
diff --git a/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java b/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java
index 3408c5c..5c5aab4 100644
--- a/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.application.entity.Application;
import org.apache.ibatis.annotations.Mapper;
+
@Mapper
public interface ApplicationMapper extends BaseMapper {
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java b/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..e5e1263
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
@@ -0,0 +1,19 @@
+package com.zhiyun.zhiyun03.course.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MybatisPlusConfig {
+ // 从MyBatis-Plus 3.4.0开始,不再使用旧版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ // 向MyBatis-Plus的过滤器链中添加分页拦截器,需要设置数据库类型(主要用于分页方言)
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
+ }
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
index 7ec77fe..4722483 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
@@ -7,11 +7,14 @@ import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.service.CourseService;
import com.zhiyun.zhiyun03.course.vo.CourseVo;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
import java.util.List;
@Api("课程")
@@ -19,7 +22,7 @@ import java.util.List;
@RequestMapping("/api/course")
public class CourseController {
- @Autowired
+ @Resource
private CourseService courseService;
@@ -27,17 +30,17 @@ public class CourseController {
@GetMapping("/selectAll")
public List queryCourse(){
- List list = courseService.queryCourse();
- return list;
+ List lists = courseService.queryCourse();
+ return lists;
}
-// @ApiOperation("课程添加")
-// @PostMapping("/add")
-// public JsonResult addCourse(Course course){
-// courseService.addCourse(course);
-// return JsonResult.ok();
-// }
+ @ApiOperation("课程添加")
+ @PostMapping("/add")
+ public String addCourse(Course course){
+ courseService.addCourse(course);
+ return "success";
+ }
//
//// @ApiOperation("查询目录")
//// @PostMapping("/select")
@@ -46,20 +49,20 @@ public class CourseController {
//// return JsonResult.ok();
//// }
//
-// @ApiOperation("删除课程")
-// @DeleteMapping("delById")
-// public JsonResult delCourseById(Integer id){
-// courseService.delCourseById(id);
-//return JsonResult.ok();
-// }
-//
-// @ApiOperation("更新课程")
-// @DeleteMapping("updateById")
-// public JsonResult updateById(Course course){
-// courseService.updateById(course);
-// return JsonResult.ok();
-// }
-//
+ @ApiOperation("删除课程")
+ @DeleteMapping("delById")
+ public String delCourseById(Integer id){
+ courseService.delCourseById(id);
+ return "success";
+ }
+
+ @ApiOperation("更新课程")
+ @PostMapping("update")
+ public String updateById(Course course){
+ courseService.update(course);
+ return "success";
+ }
+
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
index 38c326f..2548fa2 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
@@ -4,6 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.course.entity.Course;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
@Mapper
public interface CourseMapper extends BaseMapper {
+
+
+
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java b/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
new file mode 100644
index 0000000..38c843a
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
@@ -0,0 +1,9 @@
+package com.zhiyun.zhiyun03.course.param;
+
+import lombok.Data;
+
+@Data
+public class PageParam {
+ private Integer currentPage;
+ private Integer pageSize;
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
index c68e712..ef858c1 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
@@ -1,11 +1,15 @@
package com.zhiyun.zhiyun03.course.service;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.vo.CourseVo;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
-public interface CourseService {
+public interface CourseService extends IService {
// public void addCourse(Course course);
//
// void delCourseById(Integer id);
@@ -14,4 +18,10 @@ public interface CourseService {
List queryCourse();
+
+ void addCourse(Course course);
+
+ void delCourseById(Integer id);
+
+ void update(Course course);
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
index ef36776..996834b 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/impl/CourseServiceImpl.java
@@ -1,7 +1,10 @@
package com.zhiyun.zhiyun03.course.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.util.BeanUtil;
+import com.github.pagehelper.Page;
import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
import com.zhiyun.zhiyun03.application.util.ConvertUtil;
@@ -9,6 +12,8 @@ import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.service.CourseService;
import com.zhiyun.zhiyun03.course.vo.CourseVo;
import com.zhiyun.zhiyun03.course.mapper.CourseMapper;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -21,7 +26,7 @@ public class CourseServiceImpl extends ServiceImpl implemen
private CourseMapper courseMapper;
@Resource
- DirectoryMapper directoryMapper;
+ private DirectoryMapper directoryMapper;
@@ -30,6 +35,7 @@ public class CourseServiceImpl extends ServiceImpl implemen
*/
@Override
public List queryCourse() {
+
QueryWrapper qwa=new QueryWrapper<>();
List courses = courseMapper.selectList(qwa);
QueryWrapper qwd=new QueryWrapper<>();
@@ -39,21 +45,53 @@ public class CourseServiceImpl extends ServiceImpl implemen
for (int i = 0; i < courses.size(); i++) {
for (int j = 0; j updateWrapper = new UpdateWrapper<>();
+ updateWrapper.set("id",course.getDirId());
+ directoryMapper.update(null,updateWrapper);
+
+
+ }
+
+ @Override
+ public void delCourseById(Integer id) {
+ courseMapper.deleteById(id);
+ }
+
+ @Override
+ public void update(Course course) {
+ //变更数据进行更新
+
+
+
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.set("course_name",course.getCourseName());
+ updateWrapper.set("course_brief",course.getCourseBrief());
+ updateWrapper.set("course_url",course.getCourseUrl());
+ updateWrapper.set("dir_id",course.getDirId());
+ updateWrapper.set("course_icon",course.getCourseIcon());
+ updateWrapper.eq("id",course.getId());
+ courseMapper.update(null,updateWrapper);
+ }
+
// @Override
// public void delCourseById(Integer id) {
// courseDAO.deleteByPrimaryKey(id);
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java b/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
index 19c222a..804ee88 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
@@ -1,10 +1,11 @@
package com.zhiyun.zhiyun03.course.vo;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.zhiyun.zhiyun03.course.param.PageParam;
import lombok.Data;
@Data
-public class CourseVo{
+public class CourseVo {
@TableId
private int id;
@@ -16,5 +17,5 @@ public class CourseVo{
private String dirName;
- private String appIcon;
+ private String courseIcon;
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java b/src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java
new file mode 100644
index 0000000..f37cbee
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java
@@ -0,0 +1,13 @@
+package com.zhiyun.zhiyun03.course.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PageVO {
+
+ private Integer currentPage;
+ private Long total;
+ private List list;
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/common/Result.java b/src/main/java/com/zhiyun/zhiyun03/utils/common/Result.java
new file mode 100644
index 0000000..4827bc2
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/common/Result.java
@@ -0,0 +1,76 @@
+package com.zhiyun.zhiyun03.utils.common;
+
+import lombok.Data;
+
+@Data
+public class Result {
+
+//返回信息码
+private String code;
+//返回信息
+private String msg;
+//返回数据
+T data;
+
+public Result(){}
+
+public Result(T data){
+ this.data=data;
+}
+
+
+//成功,只返回成功码和信息
+public Result success(){
+ Result result=new Result<>();
+ result.setCode(ResultCode.SUCCESS.code);
+ result.setMsg(ResultCode.SUCCESS.msg);
+ return result;
+}
+
+//成功,返回成功码、信息和数据
+public Result success(T data){
+ Result result=new Result();
+ result.setCode(ResultCode.SUCCESS.code);
+ result.setMsg(ResultCode.SUCCESS.msg);
+ result.setData(data);
+ return result;
+}
+
+//失败,返回自己定义的信息码和信息
+public Result error(){
+ Result result=new Result<>();
+ result.setCode(ResultCode.ERROR.code);
+ result.setMsg(ResultCode.ERROR.code);
+ return result;
+}
+
+//失败,返回controller层传过来信息码和信息
+public Result error(String code,String msg){
+ Result result=new Result<>();
+ result.setCode(code);
+ result.setMsg(msg);
+ return result;
+}
+
+
+public void setCode(String code){
+ this.code=code;
+}
+
+public void setMsg(String msg){
+ this.msg=msg;
+}
+
+public void setData(T data){
+ this.data=data;
+}
+
+@Override
+public String toString() {
+ return "Result{" +
+ "code='" + code + '\'' +
+ ", msg='" + msg + '\'' +
+ ", data=" + data +
+ '}';
+}
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java b/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java
new file mode 100644
index 0000000..bc08107
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java
@@ -0,0 +1,22 @@
+package com.zhiyun.zhiyun03.utils.common;
+
+public enum ResultCode {
+ SUCCESS("0", "成功"),
+ ERROR("-1", "系统异常"),
+ PARAM_ERROR("1001", "参数异常"),
+ USER_EXIST_ERROR("2001", "用户已存在"),
+ USER_ACCOUNT_ERROR("2002", "账号或密码错误"),
+ USER_NOT_EXIST_ERROR("2003", "未找到用户"),
+ ORDER_PAY_ERROR("3001", "库存不足,下单失败"),
+ PARAM_LOST_ERROR("2004", "参数缺失"),
+ PARAM_PASSWORD_ERROR("2005", "原密码输入错误"),
+ ;
+
+ public String code;
+ public String msg;
+
+ ResultCode(String code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java b/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..f853d53
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java
@@ -0,0 +1,27 @@
+package com.zhiyun.zhiyun03.utils.exception;
+
+import com.zhiyun.zhiyun03.utils.common.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+// @RestController + @ResponseBody
+@RestControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(ServiceException.class)
+ public Result serviceExceptionHandler(ServiceException e) {
+ log.error("异常信息", e);
+ Result