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] =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=BC=82=E5=B8=B8=E5=92=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=BB=9F=E4=B8=80=E7=BB=93=E6=9E=9C=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 result = new Result<>(); + return result.error(e.getCode(), e.getMsg()); + } + + @ExceptionHandler(Exception.class) + public Result exceptionHandler(Exception e) { + log.error("未知异常", e); + Result result = new Result<>(); + return result.error("500", "未知异常,请联系管理员"); + } + +} diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/exception/ServiceException.java b/src/main/java/com/zhiyun/zhiyun03/utils/exception/ServiceException.java new file mode 100644 index 0000000..315528b --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/utils/exception/ServiceException.java @@ -0,0 +1,33 @@ +package com.zhiyun.zhiyun03.utils.exception; + +public class ServiceException extends RuntimeException { + + private String code; + private String msg; + + public ServiceException() { + } + + public ServiceException(String code, String msg) { + super(msg); + this.code = code; + this.msg = msg; + + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 27bac68..bd3bb65 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,23 +1,29 @@ server: port: 8080 - -mybatis: - mapper-locations: classpath*:mapper/**/*.xml - configuration: - map-underscore-to-camel-case: true - # ??????? - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - +# +#mybatis: +# mapper-locations: classpath*:mapper/**/*.xml +# configuration: +# map-underscore-to-camel-case: true +# # ??????? +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# spring: datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver + driverClassName: com.mysql.jdbc.Driver druid: url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root + +# mybatis plus的配置和mybatis类似,之前在mybatis的配置,使用mybtis-plus替换 +mybatis-plus: + configuration: + # 控制台打印日志 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl swagger: - enabled: true \ No newline at end of file + enabled: true