From 795e3e5461e9a9dfa69b6e5c9c8e19e71d97dc04 Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Thu, 10 Aug 2023 21:56:37 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 13 +-
.../application/mapper/DirectoryMapper.java | 1 +
.../course/config/MybatisPlusConfig.java | 19 ---
.../course/controller/CourseController.java | 45 ++++---
.../zhiyun03/course/mapper/CourseMapper.java | 6 +
.../course/service/CourseService.java | 14 +-
.../service/impl/CourseServiceImpl.java | 117 ++++++++++------
.../zhiyun/zhiyun03/course/vo/CourseVo.java | 9 +-
.../com/zhiyun/zhiyun03/course/vo/PageVO.java | 3 +
.../utils/config/GlobalCrossConfig.java | 33 +++++
src/main/resources/application.yml | 12 +-
src/main/resources/mapper/CourseMapper.xml | 51 +++++++
src/main/resources/mapper/DirectoryMapper.xml | 3 +
.../templates/layui-v2.6.8/courseList.html | 127 ++++++++++++++++--
.../templates/layui-v2.6.8/index.html | 2 +-
15 files changed, 352 insertions(+), 103 deletions(-)
delete mode 100644 src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/config/GlobalCrossConfig.java
create mode 100644 src/main/resources/mapper/CourseMapper.xml
diff --git a/pom.xml b/pom.xml
index c470267..b2ced62 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,6 +33,8 @@
test
+
+
com.alibaba
druid-spring-boot-starter
@@ -56,13 +58,18 @@
5.0.7
+
+
+
+
+
+
com.github.pagehelper
- pagehelper
- 5.3.2
+ pagehelper-spring-boot-starter
+ 1.4.6
-
com.github.xiaoymin
knife4j-spring-boot-starter
diff --git a/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java b/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java
index 2de95b0..3dc326d 100644
--- a/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java
@@ -6,4 +6,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DirectoryMapper extends BaseMapper {
+ Integer selectByName(String dirName);
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java b/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
deleted file mode 100644
index e5e1263..0000000
--- a/src/main/java/com/zhiyun/zhiyun03/course/config/MybatisPlusConfig.java
+++ /dev/null
@@ -1,19 +0,0 @@
-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 e52020f..040e035 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/controller/CourseController.java
@@ -1,6 +1,7 @@
package com.zhiyun.zhiyun03.course.controller;
+import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.service.CourseService;
@@ -11,6 +12,7 @@ import com.zhiyun.zhiyun03.utils.common.JsonResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
+import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -26,41 +28,48 @@ public class CourseController {
private CourseService courseService;
+
@ApiOperation("查询课程")
- @GetMapping("/selectAll")
- public JsonResult queryCourse(){
+ @GetMapping("/queryCourse")
+ public JsonResult> queryCourse(@ApiParam @RequestParam(value = "page",required = false,defaultValue = "1")Integer page,
+ @ApiParam @RequestParam(value = "limit",required = false,defaultValue = "1")Integer limit ){
- List lists = courseService.queryCourse();
+ PageVO lists = courseService.queryCourse(page,limit);
return JsonResult.success(lists);
}
+ @ApiOperation("根据ID查询课程")
+ @GetMapping("/queryCourseById")
+ public JsonResult queryCourseById(Integer id){
+
+ CourseVo courseVo =courseService.queryCourseById(id);
+
+ return JsonResult.success(courseVo);
+ }
+
+
+
@ApiOperation("课程添加")
- @PostMapping("/add")
- public JsonResult addCourse(Course course){
- courseService.addCourse(course);
+ @PostMapping("/addCourse")
+ public JsonResult addCourse(CourseVo courseVo){
+ int count = courseService.addCourse(courseVo);
+
return JsonResult.success();
}
-//
-//// @ApiOperation("查询目录")
-//// @PostMapping("/select")
-//// public JsonResult selectDir(Directory directory){
-//// courseService.se(course);
-//// return JsonResult.ok();
-//// }
-//
+
@ApiOperation("删除课程")
- @DeleteMapping("delById")
+ @DeleteMapping("delCourseById")
public JsonResult delCourseById(Integer id){
courseService.delCourseById(id);
return JsonResult.success();
}
@ApiOperation("更新课程")
- @PostMapping("update")
- public JsonResult updateById(Course course){
- courseService.update(course);
+ @PostMapping("updateById")
+ public JsonResult updateById(CourseVo courseVo){
+ int count = courseService.updateById(courseVo);
return JsonResult.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 2548fa2..03358bc 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
@@ -2,6 +2,8 @@ package com.zhiyun.zhiyun03.course.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.course.entity.Course;
+import com.zhiyun.zhiyun03.course.vo.CourseVo;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -10,5 +12,9 @@ import java.util.List;
public interface CourseMapper extends BaseMapper {
+ List queryCourse();
+ CourseVo queryCourseById(Integer id);
+
+ int updateCourseById(Course course);
}
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 ef858c1..bf40208 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/service/CourseService.java
@@ -16,12 +16,18 @@ public interface CourseService extends IService {
//
// void updateById(Course course);
+ /*
+ * 分页查询课程
+ * */
+ PageVO queryCourse(Integer page, Integer limit );
- List queryCourse();
-
- void addCourse(Course course);
+ int addCourse(CourseVo courseVo);
void delCourseById(Integer id);
- void update(Course course);
+ int updateById(CourseVo courseVo);
+ /*
+ * 根据ID查询课程
+ * */
+ CourseVo queryCourseById(Integer id);
}
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 77a1885..d78e89f 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,15 +1,17 @@
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.zhiyun.zhiyun03.application.entity.Directory;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
-import com.zhiyun.zhiyun03.utils.convert.ConvertUtil;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
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.utils.exception.ServiceException;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -24,33 +26,29 @@ public class CourseServiceImpl extends ServiceImpl implemen
@Resource
private DirectoryMapper directoryMapper;
-
-
/**
- * 应用中心查询
+ * 课程中心查询
*/
@Override
- 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(Integer page, Integer limit) {
+ //开启分页
+ PageHelper.startPage(page,limit);
+ //查询所有课程
+ List courseVoList = courseMapper.queryCourse();
+ if (courseVoList.isEmpty())
+ {
+ throw new ServiceException("400","课程数据为空");
+ }
+ PageInfo pageInfo = new PageInfo(courseVoList);
+ PageVO courseVoPageInfo = new PageVO<>();
+ //当前页
+ courseVoPageInfo.setCurrentPage(pageInfo.getPageNum());
+ //总条数
+ courseVoPageInfo.setTotal(pageInfo.getTotal());
+ //分页数据
+ courseVoPageInfo.setList(pageInfo.getList());
+
+ return courseVoPageInfo;
}
@@ -59,12 +57,29 @@ public class CourseServiceImpl extends ServiceImpl implemen
* 添加课程
*/
@Override
- public void addCourse(Course course) {
+ public int addCourse(CourseVo courseVo) {
+
+ if (courseVo == null)
+ {
+ throw new ServiceException("400","课程添加失败");
+ }
+
+ Course course = new Course();
+
+ BeanUtils.copyProperties(courseVo,course);
+
+ String dirName = courseVo.getDirName();
- courseMapper.insert(course);
-// UpdateWrapper updateWrapper = new UpdateWrapper<>();
-// updateWrapper.set("id",course.getDirId());
-// directoryMapper.update(null,updateWrapper);
+ Integer id = directoryMapper.selectByName(dirName);
+ course.setDirId(id);
+
+ int count = courseMapper.insert(course);
+ System.out.println("count====="+count);
+ if (count<0)
+ {
+ throw new ServiceException("400","课程添加失败");
+ }
+ return count;
}
@@ -81,16 +96,34 @@ public class CourseServiceImpl extends ServiceImpl implemen
* 课程更新
*/
@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);
+ public int updateById(CourseVo courseVo) {
+ Course course = new Course();
+ BeanUtils.copyProperties(courseVo,course);
+ String dirName = courseVo.getDirName();
+ Integer id = directoryMapper.selectByName(dirName);
+ course.setDirId(id);
+
+ int count = courseMapper.updateCourseById(course);
+ if (count<0)
+ {
+ throw new ServiceException("400","课程更新失败");
+ }
+ return count;
+
+ }
+
+ /**
+ * 根据ID查询课程
+ */
+ @Override
+ public CourseVo queryCourseById(Integer id) {
+ //根据id查找数据
+ CourseVo courseVo = courseMapper.queryCourseById(id);
+ if (courseVo==null)
+ {
+ throw new ServiceException("401","课程不存在");
+ }
+ return courseVo;
}
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 804ee88..6ab9a15 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/vo/CourseVo.java
@@ -9,13 +9,14 @@ public class CourseVo {
@TableId
private int id;
+ //课程名
private String courseName;
-
+ //课程简介
private String courseBrief;
-
+ //课程链接
private String courseUrl;
-
+ //归属目录
private String dirName;
-
+ //课程图标
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
index f37cbee..ae0ddb7 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/vo/PageVO.java
@@ -7,7 +7,10 @@ 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/config/GlobalCrossConfig.java b/src/main/java/com/zhiyun/zhiyun03/utils/config/GlobalCrossConfig.java
new file mode 100644
index 0000000..f204a79
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/config/GlobalCrossConfig.java
@@ -0,0 +1,33 @@
+package com.zhiyun.zhiyun03.utils.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+@Configuration
+public class GlobalCrossConfig {
+ @Bean
+ public CorsFilter corsFilter() {
+ //1. 添加 CORS配置信息
+ CorsConfiguration config = new CorsConfiguration();
+ //放行哪些原始域,*表示所有
+ // config.addAllowedOrigin("*");
+ // 注意:springboot2.4以上使用该方式
+ config.addAllowedOriginPattern("*");
+ //是否发送 Cookie
+ config.setAllowCredentials(true);
+ //放行哪些请求方式
+ config.addAllowedMethod("*");
+ //放行哪些原始请求头部信息
+ config.addAllowedHeader("*");
+ //暴露哪些头部信息
+ config.addExposedHeader("*");
+ //2. 添加映射路径
+ UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
+ corsConfigurationSource.registerCorsConfiguration("/**", config);
+ //3. 返回新的CorsFilter
+ return new CorsFilter(corsConfigurationSource);
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5667f33..2a02a29 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -16,7 +16,7 @@ spring:
druid:
url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
- password: 123456
+ password: root
@@ -25,5 +25,15 @@ mybatis-plus:
configuration:
# 控制台打印日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+
+
+pagehelper:
+ helper-dialect: mysql
+ reasonable: true
+ support-methods-arguments: true
+
+
+
swagger:
enabled: true
diff --git a/src/main/resources/mapper/CourseMapper.xml b/src/main/resources/mapper/CourseMapper.xml
new file mode 100644
index 0000000..f2909f8
--- /dev/null
+++ b/src/main/resources/mapper/CourseMapper.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ update course
+
+
+ course_name=#{courseName},
+
+
+ course_url=#{courseUrl},
+
+
+ course_brief=#{courseBrief},
+
+
+ dir_id=#{dirId},
+
+
+ course_icon=#{courseIcon}
+
+
+
+
+ id = #{id}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DirectoryMapper.xml b/src/main/resources/mapper/DirectoryMapper.xml
index 8055e7d..d02639e 100644
--- a/src/main/resources/mapper/DirectoryMapper.xml
+++ b/src/main/resources/mapper/DirectoryMapper.xml
@@ -2,4 +2,7 @@
+
\ No newline at end of file
diff --git a/src/main/resources/templates/layui-v2.6.8/courseList.html b/src/main/resources/templates/layui-v2.6.8/courseList.html
index da6688c..a3b4daf 100644
--- a/src/main/resources/templates/layui-v2.6.8/courseList.html
+++ b/src/main/resources/templates/layui-v2.6.8/courseList.html
@@ -25,38 +25,100 @@
删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
diff --git a/src/main/resources/templates/layui-v2.6.8/index.html b/src/main/resources/templates/layui-v2.6.8/index.html
index 5128b87..fc35088 100644
--- a/src/main/resources/templates/layui-v2.6.8/index.html
+++ b/src/main/resources/templates/layui-v2.6.8/index.html
@@ -54,7 +54,7 @@
-
- 课程中心
+ 课程中心
-
应用中心
From 66460c199c6424e472f841614acdd70bf62c24d7 Mon Sep 17 00:00:00 2001
From: wanghb <17803890193@163.com>
Date: Fri, 11 Aug 2023 11:16:18 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E9=98=BF=E9=87=8C=E4=BA=91oss=E5=92=8C?=
=?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=B8=AD=E5=BF=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 12 ++
.../zhiyun03/course/mapper/CourseMapper.java | 2 +
.../zhiyun03/course/param/PageParam.java | 6 +
.../service/impl/CourseServiceImpl.java | 12 +-
.../controller/DownloadController.java | 96 ++++++++++++
.../zhiyun03/download/entity/Download.java | 6 +-
.../download/mapper/DownloadMapper.java | 8 +
.../download/service/DownloadService.java | 16 ++
.../service/impl/DownloadServiceImpl.java | 138 ++++++++++++++++++
.../zhiyun03/download/vo/DownloadVo.java | 34 +++++
.../zhiyun03/utils/oss/AliyunOssUtil.java | 76 ++++++++++
.../zhiyun03/utils/oss/OssConfiguration.java | 32 ++++
src/main/resources/application.yml | 19 ++-
src/main/resources/mapper/CourseMapper.xml | 3 +
src/main/resources/mapper/DownloadMapper.xml | 45 ++++++
15 files changed, 492 insertions(+), 13 deletions(-)
create mode 100644 src/main/java/com/zhiyun/zhiyun03/download/vo/DownloadVo.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/oss/AliyunOssUtil.java
create mode 100644 src/main/java/com/zhiyun/zhiyun03/utils/oss/OssConfiguration.java
create mode 100644 src/main/resources/mapper/DownloadMapper.xml
diff --git a/pom.xml b/pom.xml
index b2ced62..398067b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,6 +76,18 @@
3.0.3
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.14.0
+
+
+
+ commons-fileupload
+ commons-fileupload
+ 1.4
+
+
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 03358bc..cef02f2 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/mapper/CourseMapper.java
@@ -17,4 +17,6 @@ public interface CourseMapper extends BaseMapper {
CourseVo queryCourseById(Integer id);
int updateCourseById(Course course);
+
+ int selectByName(String courseName);
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java b/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
index 38c843a..c40fdc3 100644
--- a/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
+++ b/src/main/java/com/zhiyun/zhiyun03/course/param/PageParam.java
@@ -4,6 +4,12 @@ import lombok.Data;
@Data
public class PageParam {
+ /**
+ * 当前页
+ */
private Integer currentPage;
+ /**
+ * 每页展示条数
+ */
private Integer pageSize;
}
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 d78e89f..fa75935 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
@@ -58,12 +58,18 @@ public class CourseServiceImpl extends ServiceImpl implemen
*/
@Override
public int addCourse(CourseVo courseVo) {
-
if (courseVo == null)
{
throw new ServiceException("400","课程添加失败");
}
+ int sum = courseMapper.selectByName(courseVo.getCourseName());
+ if (sum>0)
+ {
+ throw new ServiceException("403","该课程已经存在");
+ }
+
+
Course course = new Course();
BeanUtils.copyProperties(courseVo,course);
@@ -97,12 +103,14 @@ public class CourseServiceImpl extends ServiceImpl implemen
*/
@Override
public int updateById(CourseVo courseVo) {
+ //将vo值赋给course
Course course = new Course();
BeanUtils.copyProperties(courseVo,course);
+ //查询归属目录
String dirName = courseVo.getDirName();
Integer id = directoryMapper.selectByName(dirName);
course.setDirId(id);
-
+ //根据id进行课程更新
int count = courseMapper.updateCourseById(course);
if (count<0)
{
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/controller/DownloadController.java b/src/main/java/com/zhiyun/zhiyun03/download/controller/DownloadController.java
index 7f946bf..74529e7 100644
--- a/src/main/java/com/zhiyun/zhiyun03/download/controller/DownloadController.java
+++ b/src/main/java/com/zhiyun/zhiyun03/download/controller/DownloadController.java
@@ -1,4 +1,100 @@
package com.zhiyun.zhiyun03.download.controller;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
+import com.zhiyun.zhiyun03.download.service.DownloadService;
+import com.zhiyun.zhiyun03.download.vo.DownloadVo;
+import com.zhiyun.zhiyun03.utils.common.JsonResult;
+import com.zhiyun.zhiyun03.utils.oss.AliyunOssUtil;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileOutputStream;
+
+@RestController
+@RequestMapping("/download")
public class DownloadController {
+
+ @Resource
+ private AliyunOssUtil ossUtil;
+
+
+ @Resource
+ private DownloadService downloadService;
+
+
+ @ApiOperation("查询下载中心")
+ @GetMapping("/queryDownload")
+ public JsonResult> queryDownload(@ApiParam @RequestParam(value = "page",required = false,defaultValue = "1")Integer page,
+ @ApiParam @RequestParam(value = "limit",required = false,defaultValue = "5")Integer limit ){
+
+ PageVO lists = downloadService.queryDownload(page,limit);
+
+ return JsonResult.success(lists);
+ }
+
+ @ApiOperation("添加下载")
+ @PostMapping("/addDownload")
+ public JsonResult addDownload(DownloadVo vo){
+ int count = downloadService.addDownload(vo);
+ return JsonResult.success();
+
+ }
+
+ @ApiOperation("图片上传")
+ @PostMapping("/uploadFile")
+ public JsonResult upload(@RequestParam("file") @RequestPart MultipartFile file){
+ String upload = null;
+ try {
+ if (file != null) {
+ String fileName = file.getOriginalFilename();
+ if (!"".equals(fileName.trim())) {
+ File newFile = new File(fileName);
+
+ FileOutputStream os = new FileOutputStream(newFile);
+ os.write(file.getBytes());
+ os.close();
+
+ //把file里的内容复制到newFile中
+ file.transferTo(newFile);
+ upload = ossUtil.upload(newFile);
+
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ String path = "https://zhiyun03.oss-cn-beijing.aliyuncs.com/"+ upload;
+ return JsonResult.success(path);
+ }
+
+
+
+
+ @ApiOperation("删除下载")
+ @PostMapping("/delDownload")
+ public JsonResult delDownload(Integer id){
+ int count = downloadService.delDownload(id);
+ return JsonResult.success();
+
+ }
+
+ @ApiOperation("根据Id查询")
+ @PostMapping("/queryById")
+ public JsonResult queryById(Integer id){
+ DownloadVo downloadAddVo =downloadService.queryById(id);
+ return JsonResult.success(downloadAddVo);
+
+ }
+
+ @ApiOperation("更新下载")
+ @PostMapping("/updateDownload")
+ public JsonResult updateDownload(DownloadVo vo){
+ int count =downloadService.updateDownload(vo);
+ return JsonResult.success();
+ }
+
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/entity/Download.java b/src/main/java/com/zhiyun/zhiyun03/download/entity/Download.java
index b599b5b..df7a662 100644
--- a/src/main/java/com/zhiyun/zhiyun03/download/entity/Download.java
+++ b/src/main/java/com/zhiyun/zhiyun03/download/entity/Download.java
@@ -21,7 +21,7 @@ public class Download {
* id
*/
@TableId(value = "id",type = IdType.AUTO)
- private int id;
+ private Integer id;
/**
* 下载名称
@@ -32,8 +32,8 @@ public class Download {
/**
* 下载简介
*/
- @TableField(value = "download_biref")
- private String downloadBiref;
+ @TableField(value = "download_brief")
+ private String downloadBrief;
/**
* 下载链接
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/mapper/DownloadMapper.java b/src/main/java/com/zhiyun/zhiyun03/download/mapper/DownloadMapper.java
index ab3f516..25f2c1f 100644
--- a/src/main/java/com/zhiyun/zhiyun03/download/mapper/DownloadMapper.java
+++ b/src/main/java/com/zhiyun/zhiyun03/download/mapper/DownloadMapper.java
@@ -2,8 +2,16 @@ package com.zhiyun.zhiyun03.download.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.download.entity.Download;
+import com.zhiyun.zhiyun03.download.vo.DownloadVo;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
@Mapper
public interface DownloadMapper extends BaseMapper {
+ List queryDownload();
+
+ int selectByName(String downloadName);
+
+ int updateDownloadById(Download download);
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/service/DownloadService.java b/src/main/java/com/zhiyun/zhiyun03/download/service/DownloadService.java
index 73872c5..18cba85 100644
--- a/src/main/java/com/zhiyun/zhiyun03/download/service/DownloadService.java
+++ b/src/main/java/com/zhiyun/zhiyun03/download/service/DownloadService.java
@@ -1,7 +1,23 @@
package com.zhiyun.zhiyun03.download.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
import com.zhiyun.zhiyun03.download.entity.Download;
+import com.zhiyun.zhiyun03.download.vo.DownloadVo;
public interface DownloadService extends IService {
+ /*
+ * 查询下载中心
+ * */
+ PageVO queryDownload(Integer page, Integer limit);
+ /*
+ * 添加下载
+ * */
+ int addDownload(DownloadVo vo);
+
+ int delDownload(Integer id);
+
+ DownloadVo queryById(Integer id);
+
+ int updateDownload(DownloadVo vo);
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/service/impl/DownloadServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/download/service/impl/DownloadServiceImpl.java
index 924a89a..c90e1e0 100644
--- a/src/main/java/com/zhiyun/zhiyun03/download/service/impl/DownloadServiceImpl.java
+++ b/src/main/java/com/zhiyun/zhiyun03/download/service/impl/DownloadServiceImpl.java
@@ -1,11 +1,149 @@
package com.zhiyun.zhiyun03.download.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.zhiyun.zhiyun03.application.entity.Directory;
+import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
+import com.zhiyun.zhiyun03.course.vo.PageVO;
import com.zhiyun.zhiyun03.download.entity.Download;
import com.zhiyun.zhiyun03.download.mapper.DownloadMapper;
import com.zhiyun.zhiyun03.download.service.DownloadService;
+import com.zhiyun.zhiyun03.download.vo.DownloadVo;
+import com.zhiyun.zhiyun03.utils.exception.ServiceException;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
@Service
public class DownloadServiceImpl extends ServiceImpl implements DownloadService {
+
+ @Resource
+ private DownloadMapper downloadMapper;
+
+ @Resource
+ private DirectoryMapper directoryMapper;
+
+ /*
+ * 查询下载中心
+ * */
+ @Override
+ public PageVO queryDownload(Integer page, Integer limit) {
+
+ //开启分页
+ PageHelper.startPage(page,limit);
+ //查询所有下载数据
+ List downloadVoList = downloadMapper.queryDownload();
+
+ PageInfo downloadVoPageInfo = new PageInfo<>(downloadVoList);
+ PageVO downloadVoPageVO = new PageVO<>();
+ //获取当前页
+ downloadVoPageVO.setCurrentPage(downloadVoPageInfo.getPageNum());
+ //总条数
+ downloadVoPageVO.setTotal(downloadVoPageInfo.getTotal());
+ //分页数据
+ downloadVoPageVO.setList(downloadVoPageInfo.getList());
+
+
+ return downloadVoPageVO;
+ }
+ /*
+ * 添加下载
+ * */
+ @Override
+ public int addDownload(DownloadVo vo) {
+ //查询下载名称是否已经存在
+ int count = downloadMapper.selectByName(vo.getDownloadName());
+ if (count>0)
+ {
+ throw new ServiceException("403","下载已存在");
+ }
+ //将vo值传给download
+ Download download = new Download();
+ BeanUtils.copyProperties(vo,download);
+ //查询归属目录id
+ Integer dirId = directoryMapper.selectByName(vo.getDirName());
+ download.setDirId(dirId);
+ download.setDownloadUpdatetime(new Date());
+ //添加download
+ int insert = downloadMapper.insert(download);
+ if (insert>0)
+ {
+ return insert;
+ }else
+ {
+ throw new ServiceException("400","添加下载失败");
+ }
+ }
+
+ /*
+ * 根据id删除数据
+ * */
+ @Override
+ public int delDownload(Integer id) {
+ if (id == null)
+ {
+ throw new ServiceException("400","查询id值为空");
+ }
+ //根据id删除
+ int count = downloadMapper.deleteById(id);
+
+ if (count>0)
+ {
+ return count;
+ }else
+ {
+ throw new ServiceException("400","删除失败");
+ }
+ }
+ /*
+ * 根据id查询数据
+ * */
+ @Override
+ public DownloadVo queryById(Integer id) {
+ //根据id查询数据
+ Download download = downloadMapper.selectById(id);
+ //查询目录id
+ Directory directory = directoryMapper.selectById(download.getDirId());
+ DownloadVo downloadAddVo = new DownloadVo();
+ //复制给vo
+ BeanUtils.copyProperties(download,downloadAddVo);
+ downloadAddVo.setDirName(directory.getDirName());
+
+ return downloadAddVo;
+ }
+ /*
+ * 更新下载
+ * */
+ @Override
+ public int updateDownload(DownloadVo vo) {
+ //查询更新的下载名是否存在
+ int sum = downloadMapper.selectByName(vo.getDownloadName());
+ if (sum>0)
+ {
+ throw new ServiceException("403","下载已存在");
+ }
+
+ //将vo值传给download
+ Download download = new Download();
+ BeanUtils.copyProperties(vo,download);
+ //查询归属目录id
+ Integer dirId = directoryMapper.selectByName(vo.getDirName());
+ download.setDirId(dirId);
+ download.setDownloadUpdatetime(new Date());
+ //添加download
+ int insert = downloadMapper.updateDownloadById(download);
+ if (insert>0)
+ {
+ return insert;
+ }else
+ {
+ throw new ServiceException("400","更新失败");
+ }
+ }
+
+
}
diff --git a/src/main/java/com/zhiyun/zhiyun03/download/vo/DownloadVo.java b/src/main/java/com/zhiyun/zhiyun03/download/vo/DownloadVo.java
new file mode 100644
index 0000000..7f558e3
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/download/vo/DownloadVo.java
@@ -0,0 +1,34 @@
+package com.zhiyun.zhiyun03.download.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+@Data
+public class DownloadVo {
+ @TableId
+ private int id;
+
+ /**
+ * 下载名称
+ */
+ private String downloadName;
+ /**
+ * 下载简介
+ */
+ private String downloadBrief;
+ /**
+ * 下载链接
+ */
+ private String downloadUrl;
+ /**
+ * 归属目录
+ */
+ private String dirName;
+ /**
+ * 下载图片
+ */
+ private String downloadImg;
+
+
+
+}
diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/oss/AliyunOssUtil.java b/src/main/java/com/zhiyun/zhiyun03/utils/oss/AliyunOssUtil.java
new file mode 100644
index 0000000..2e7ac00
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/oss/AliyunOssUtil.java
@@ -0,0 +1,76 @@
+package com.zhiyun.zhiyun03.utils.oss;
+
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.CannedAccessControlList;
+import com.aliyun.oss.model.CreateBucketRequest;
+import com.aliyun.oss.model.PutObjectRequest;
+import com.aliyun.oss.model.PutObjectResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 封装文件上传方法
+ */
+@Component
+public class AliyunOssUtil {
+
+ @Autowired
+ private OssConfiguration config;
+
+ public String upload(File file) {
+ if (file == null) {
+ return null;
+ }
+
+ String endPoint = config.getEndPoint();
+ String keyId = config.getAccessKeyId();
+ String keySecret = config.getAccessKeySecret();
+ String bucketName = config.getBucketName();
+ String fileHost = config.getFileHost();
+
+ //定义子文件的格式
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ String dateStr = format.format(new Date());
+
+ //阿里云文件上传客户端
+ OSSClient client = new OSSClient(endPoint, keyId, keySecret);
+
+ try {
+ //判断桶是否存在
+ if (!client.doesBucketExist(bucketName)) {
+ //创建桶
+ client.createBucket(bucketName);
+ CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
+ //设置访问权限为公共读
+ createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
+ //发起创建桶的请求
+ client.createBucket(createBucketRequest);
+ }
+
+ //当桶存在时,进行文件上传
+ //设置文件路径和名称
+ String fileUrl = fileHost + "/" + (dateStr + "/" + UUID.randomUUID().toString().replace("-", "") + "-" + file.getName());
+ PutObjectResult result = client.putObject(new PutObjectRequest(bucketName, fileUrl, file));
+ client.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);
+
+ //文件上传成功后,返回当前文件的路径
+ if (result != null) {
+ return fileUrl;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (client != null) {
+ client.shutdown();
+ }
+ }
+
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/oss/OssConfiguration.java b/src/main/java/com/zhiyun/zhiyun03/utils/oss/OssConfiguration.java
new file mode 100644
index 0000000..8df33d5
--- /dev/null
+++ b/src/main/java/com/zhiyun/zhiyun03/utils/oss/OssConfiguration.java
@@ -0,0 +1,32 @@
+package com.zhiyun.zhiyun03.utils.oss;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
+
+/**
+ * 把配置文件中的配置信息读取到该类中.
+ */
+@Data
+@Configuration
+public class OssConfiguration {
+
+ @Value("${endpoint}")
+ private String endPoint;
+
+ @Value("${accessKeyId}")
+ private String accessKeyId;
+
+ @Value("${accessKeySecret}")
+ private String accessKeySecret;
+
+ @Value("${filehost}")
+ private String fileHost;
+
+ @Value("${bucketName}")
+ private String bucketName;
+
+}
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2a02a29..9225c66 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,14 +1,17 @@
server:
port: 8080
-#
-#mybatis:
-# mapper-locations: classpath*:mapper/**/*.xml
-# configuration:
-# map-underscore-to-camel-case: true
-# # ???????
-# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-#
+
+#配置OSS的个人信息
+bucketName: zhiyun03
+accessKeyId: LTAI5t8zUbXsJpzPuoBQ3eGu
+accessKeySecret: dIYCoLCKlKPp17wqRRPlrwLaznDYXc
+#OSS对应的区域
+endpoint: oss-cn-beijing.aliyuncs.com
+#OSS对应的文件夹,会在OSS中自动创建
+filehost: images
+
+
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/src/main/resources/mapper/CourseMapper.xml b/src/main/resources/mapper/CourseMapper.xml
index f2909f8..84e176c 100644
--- a/src/main/resources/mapper/CourseMapper.xml
+++ b/src/main/resources/mapper/CourseMapper.xml
@@ -47,5 +47,8 @@
on c.dir_id = d.id
where c.id =#{id}
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/DownloadMapper.xml b/src/main/resources/mapper/DownloadMapper.xml
new file mode 100644
index 0000000..9d8e553
--- /dev/null
+++ b/src/main/resources/mapper/DownloadMapper.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ update download
+
+
+ download_name=#{downloadName},
+
+
+ download_url=#{downloadUrl},
+
+
+ download_brief=#{downloadBrief},
+
+
+ dir_id=#{dirId},
+
+
+ download_img=#{downloadImg}
+
+
+
+
+ id = #{id}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file