├── README.md
├── image
├── 1.png
├── 2.png
├── 3.png
├── 4.png
├── 5.png
├── 6.png
└── 7.png
├── limage
└── 1.png
├── pom.xml
└── src
├── main
├── java
│ └── com
│ │ ├── SpringbootSchemaApplication.java
│ │ ├── annotation
│ │ ├── APPLoginUser.java
│ │ ├── IgnoreAuth.java
│ │ └── LoginUser.java
│ │ ├── config
│ │ ├── InterceptorConfig.java
│ │ └── MybatisPlusConfig.java
│ │ ├── controller
│ │ ├── BanjiController.java
│ │ ├── CommonController.java
│ │ ├── ConfigController.java
│ │ ├── FileController.java
│ │ ├── GonggaoxinxiController.java
│ │ ├── JiaoshiController.java
│ │ ├── KechengleixingController.java
│ │ ├── KechengpingjiaController.java
│ │ ├── KechengxinxiController.java
│ │ ├── KechengziyuanController.java
│ │ ├── UserController.java
│ │ ├── XueshengController.java
│ │ ├── XueshengxuankeController.java
│ │ ├── ZuoyebuzhiController.java
│ │ ├── ZuoyepingfenController.java
│ │ └── ZuoyetijiaoController.java
│ │ ├── dao
│ │ ├── BanjiDao.java
│ │ ├── CommonDao.java
│ │ ├── ConfigDao.java
│ │ ├── GonggaoxinxiDao.java
│ │ ├── JiaoshiDao.java
│ │ ├── KechengleixingDao.java
│ │ ├── KechengpingjiaDao.java
│ │ ├── KechengxinxiDao.java
│ │ ├── KechengziyuanDao.java
│ │ ├── TokenDao.java
│ │ ├── UserDao.java
│ │ ├── XueshengDao.java
│ │ ├── XueshengxuankeDao.java
│ │ ├── ZuoyebuzhiDao.java
│ │ ├── ZuoyepingfenDao.java
│ │ └── ZuoyetijiaoDao.java
│ │ ├── entity
│ │ ├── BanjiEntity.java
│ │ ├── ConfigEntity.java
│ │ ├── EIException.java
│ │ ├── GonggaoxinxiEntity.java
│ │ ├── JiaoshiEntity.java
│ │ ├── KechengleixingEntity.java
│ │ ├── KechengpingjiaEntity.java
│ │ ├── KechengxinxiEntity.java
│ │ ├── KechengziyuanEntity.java
│ │ ├── TokenEntity.java
│ │ ├── UserEntity.java
│ │ ├── XueshengEntity.java
│ │ ├── XueshengxuankeEntity.java
│ │ ├── ZuoyebuzhiEntity.java
│ │ ├── ZuoyepingfenEntity.java
│ │ ├── ZuoyetijiaoEntity.java
│ │ ├── model
│ │ │ ├── BanjiModel.java
│ │ │ ├── GonggaoxinxiModel.java
│ │ │ ├── JiaoshiModel.java
│ │ │ ├── KechengleixingModel.java
│ │ │ ├── KechengpingjiaModel.java
│ │ │ ├── KechengxinxiModel.java
│ │ │ ├── KechengziyuanModel.java
│ │ │ ├── XueshengModel.java
│ │ │ ├── XueshengxuankeModel.java
│ │ │ ├── ZuoyebuzhiModel.java
│ │ │ ├── ZuoyepingfenModel.java
│ │ │ └── ZuoyetijiaoModel.java
│ │ ├── view
│ │ │ ├── BanjiView.java
│ │ │ ├── GonggaoxinxiView.java
│ │ │ ├── JiaoshiView.java
│ │ │ ├── KechengleixingView.java
│ │ │ ├── KechengpingjiaView.java
│ │ │ ├── KechengxinxiView.java
│ │ │ ├── KechengziyuanView.java
│ │ │ ├── XueshengView.java
│ │ │ ├── XueshengxuankeView.java
│ │ │ ├── ZuoyebuzhiView.java
│ │ │ ├── ZuoyepingfenView.java
│ │ │ └── ZuoyetijiaoView.java
│ │ └── vo
│ │ │ ├── BanjiVO.java
│ │ │ ├── GonggaoxinxiVO.java
│ │ │ ├── JiaoshiVO.java
│ │ │ ├── KechengleixingVO.java
│ │ │ ├── KechengpingjiaVO.java
│ │ │ ├── KechengxinxiVO.java
│ │ │ ├── KechengziyuanVO.java
│ │ │ ├── XueshengVO.java
│ │ │ ├── XueshengxuankeVO.java
│ │ │ ├── ZuoyebuzhiVO.java
│ │ │ ├── ZuoyepingfenVO.java
│ │ │ └── ZuoyetijiaoVO.java
│ │ ├── interceptor
│ │ └── AuthorizationInterceptor.java
│ │ ├── service
│ │ ├── BanjiService.java
│ │ ├── CommonService.java
│ │ ├── ConfigService.java
│ │ ├── GonggaoxinxiService.java
│ │ ├── JiaoshiService.java
│ │ ├── KechengleixingService.java
│ │ ├── KechengpingjiaService.java
│ │ ├── KechengxinxiService.java
│ │ ├── KechengziyuanService.java
│ │ ├── TokenService.java
│ │ ├── UserService.java
│ │ ├── XueshengService.java
│ │ ├── XueshengxuankeService.java
│ │ ├── ZuoyebuzhiService.java
│ │ ├── ZuoyepingfenService.java
│ │ ├── ZuoyetijiaoService.java
│ │ └── impl
│ │ │ ├── BanjiServiceImpl.java
│ │ │ ├── CommonServiceImpl.java
│ │ │ ├── ConfigServiceImpl.java
│ │ │ ├── GonggaoxinxiServiceImpl.java
│ │ │ ├── JiaoshiServiceImpl.java
│ │ │ ├── KechengleixingServiceImpl.java
│ │ │ ├── KechengpingjiaServiceImpl.java
│ │ │ ├── KechengxinxiServiceImpl.java
│ │ │ ├── KechengziyuanServiceImpl.java
│ │ │ ├── TokenServiceImpl.java
│ │ │ ├── UserServiceImpl.java
│ │ │ ├── XueshengServiceImpl.java
│ │ │ ├── XueshengxuankeServiceImpl.java
│ │ │ ├── ZuoyebuzhiServiceImpl.java
│ │ │ ├── ZuoyepingfenServiceImpl.java
│ │ │ └── ZuoyetijiaoServiceImpl.java
│ │ └── utils
│ │ ├── BaiduUtil.java
│ │ ├── CommonUtil.java
│ │ ├── FileUtil.java
│ │ ├── HttpClientUtils.java
│ │ ├── JQPageInfo.java
│ │ ├── MD5Util.java
│ │ ├── MPUtil.java
│ │ ├── PageUtils.java
│ │ ├── Query.java
│ │ ├── R.java
│ │ ├── SQLFilter.java
│ │ ├── SpringContextUtils.java
│ │ └── ValidatorUtils.java
└── resources
│ ├── application.yml
│ └── mapper
│ ├── BanjiDao.xml
│ ├── CommonDao.xml
│ ├── ConfigDao.xml
│ ├── GonggaoxinxiDao.xml
│ ├── JiaoshiDao.xml
│ ├── KechengleixingDao.xml
│ ├── KechengpingjiaDao.xml
│ ├── KechengxinxiDao.xml
│ ├── KechengziyuanDao.xml
│ ├── TokenDao.xml
│ ├── UserDao.xml
│ ├── XueshengDao.xml
│ ├── XueshengxuankeDao.xml
│ ├── ZuoyebuzhiDao.xml
│ ├── ZuoyepingfenDao.xml
│ └── ZuoyetijiaoDao.xml
└── test
└── java
└── com
└── SpringbootSchemaApplicationTests.java
/README.md:
--------------------------------------------------------------------------------
1 | 基于Springboot的课程作业管理系统(程序+论文)
2 | =
3 | ### 完整代码获取地址:从戎源码网 ([https://armycodes.com/](https://armycodes.com/))
4 | ### 作者微信:19941326836 QQ:952045282
5 | ### 承接计算机毕业设计、Java毕业设计、Python毕业设计、深度学习、机器学习
6 | ### 选题+开题报告+任务书+程序定制+安装调试+论文+答辩ppt 一条龙服务
7 | ### 所有选题地址https://github.com/nature924/allProject
8 |
9 | 一、项目介绍
10 | ---
11 | 系统包含两种角色:用户、管理员,系统分为前台和后台两大模块,主要功能如下:
12 | ### 管理员功能模块
13 | 登录: 管理员通过用户名、密码、角色进行登录。
14 | 首页查看: 查看个人中心、公告信息、班级管理、学生管理、教师管理、课程类型、课程信息、学生选课、作业布置、作业提交、作业评分、课程评价、课程资源等信息。
15 | 学生管理: 管理员管理学生信息,包括详情查看、修改、删除。
16 | 教师管理: 管理员管理教师信息,包括详情查看、修改、删除。
17 | 课程信息管理: 查看和管理课程信息,包括课程名称、类型、班级等。
18 | 作业布置管理: 查看和管理作业布置信息,包括课程名称、学期、班级等。
19 | 作业提交管理: 查看和管理作业提交信息,包括课程名称、学期、班级等。
20 | 课程评价管理: 查看和管理课程评价信息,包括课程名称、类型、评分等。
21 |
22 |
23 | ### 教师功能模块
24 | 登录: 教师通过用户名、密码、角色进行登录。
25 | 首页查看: 查看个人中心、课程信息管理、学生选课管理、作业布置管理、作业提交管理、作业评分管理、课程评价管理、课程资源管理等内容。
26 | 作业布置管理: 管理作业布置信息,包括修改作业要求等。
27 | 作业提交管理: 管理作业提交信息,包括修改或删除作业信息。
28 | 课程评价管理: 管理课程评价信息,包括查看、修改、删除评价内容。
29 |
30 |
31 | ### 学生功能模块
32 | 登录: 学生通过用户名、密码、角色进行登录。
33 | 首页查看: 查看个人中心、公告信息、课程信息管理、学生选课管理、作业布置管理、作业提交管理、作业评分管理、课程评价管理、课程资源管理等内容。
34 | 个人信息管理: 查看和管理个人信息,包括学号、密码、姓名、性别、手机、邮箱、班级等。
35 | 课程信息管理: 查看和管理课程信息,包括课程名称、类型、班级等。
36 | 课程评价管理: 管理课程评价信息,包括查看、删除评价内容。
37 | 课程资源管理: 查看和管理课程资源信息,包括上传和删除课程附件。
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | 二、项目技术
47 | ---
48 | - 编程语言:Java
49 | - 数据库:MySQL
50 | - 项目管理工具:Maven
51 | - 前端技术:VUE、HTML、Jquery、Bootstrap
52 | - 后端技术:Spring、SpringMVC、MyBatis
53 |
54 | 三、运行环境
55 | ---
56 | - 操作系统:Windows、macOS都可以
57 | - JDK版本:JDK1.8以上都可以
58 | - 开发工具:IDEA、Ecplise、Myecplise都可以
59 | - 数据库: MySQL5.7以上都可以
60 | - Tomcat:任意版本都可以
61 | - Maven:任意版本都可以
62 |
63 | 四、运行截图
64 | ---
65 | ### 论文截图:
66 | 
67 |
68 | ### 程序截图:
69 | 
70 | 
71 | 
72 | 
73 | 
74 | 
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/image/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/1.png
--------------------------------------------------------------------------------
/image/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/2.png
--------------------------------------------------------------------------------
/image/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/3.png
--------------------------------------------------------------------------------
/image/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/4.png
--------------------------------------------------------------------------------
/image/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/5.png
--------------------------------------------------------------------------------
/image/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/6.png
--------------------------------------------------------------------------------
/image/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/image/7.png
--------------------------------------------------------------------------------
/limage/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nature924/No193Course-Assignment-Management-System/4e9948c299aeb68802c6cbac37bdca4724f188ae/limage/1.png
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.2.2.RELEASE
9 |
10 |
11 | com.jlwl
12 |
13 | springbootwwiwn
14 | 0.0.1-SNAPSHOT
15 | springboot-schema
16 | springboot学习框架
17 |
18 |
19 | 1.8
20 | 1.2.8
21 | 3.1.1
22 |
23 |
24 |
25 |
26 | org.springframework.boot
27 | spring-boot-starter-web
28 |
29 |
30 | org.mybatis.spring.boot
31 | mybatis-spring-boot-starter
32 | 2.1.1
33 |
34 |
35 | org.springframework.boot
36 | spring-boot-starter-jdbc
37 |
38 |
39 |
40 | mysql
41 | mysql-connector-java
42 |
43 |
44 | org.apache.shiro
45 | shiro-spring
46 | 1.3.2
47 |
48 |
49 |
50 | com.baomidou
51 | mybatis-plus
52 | 2.3
53 |
54 |
55 | com.baomidou
56 | mybatisplus-spring-boot-starter
57 | 1.0.5
58 |
59 |
60 | com.google.protobuf
61 | protobuf-java
62 | 3.10.0
63 |
64 |
65 |
66 | org.apache.commons
67 | commons-lang3
68 | 3.0
69 |
70 |
71 |
72 | javax.validation
73 | validation-api
74 | 2.0.1.Final
75 |
76 |
77 |
78 | commons-io
79 | commons-io
80 | 2.5
81 |
82 |
83 |
84 |
85 | cn.hutool
86 | hutool-all
87 | 4.0.12
88 |
89 |
90 |
91 |
92 | com.alibaba
93 | fastjson
94 | ${fastjson.version}
95 |
96 |
97 |
98 | com.baidu.aip
99 | java-sdk
100 | 4.4.1
101 |
102 |
103 |
104 | org.springframework.boot
105 | spring-boot-starter-test
106 | test
107 |
108 |
109 | org.junit.vintage
110 | junit-vintage-engine
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 | org.springframework.boot
120 | spring-boot-maven-plugin
121 |
122 |
123 |
124 |
125 |
126 |
--------------------------------------------------------------------------------
/src/main/java/com/SpringbootSchemaApplication.java:
--------------------------------------------------------------------------------
1 | package com;
2 |
3 | import org.mybatis.spring.annotation.MapperScan;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.boot.builder.SpringApplicationBuilder;
7 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
8 |
9 | @SpringBootApplication
10 | @MapperScan(basePackages = {"com.dao"})
11 | public class SpringbootSchemaApplication extends SpringBootServletInitializer{
12 |
13 | public static void main(String[] args) {
14 | SpringApplication.run(SpringbootSchemaApplication.class, args);
15 | }
16 |
17 | @Override
18 | protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
19 | return applicationBuilder.sources(SpringbootSchemaApplication.class);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/APPLoginUser.java:
--------------------------------------------------------------------------------
1 | package com.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 登录用户信息
10 | */
11 | @Target(ElementType.PARAMETER)
12 | @Retention(RetentionPolicy.RUNTIME)
13 | public @interface APPLoginUser {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/IgnoreAuth.java:
--------------------------------------------------------------------------------
1 | package com.annotation;
2 |
3 | import java.lang.annotation.*;
4 |
5 | /**
6 | * 忽略Token验证
7 | */
8 | @Target(ElementType.METHOD)
9 | @Retention(RetentionPolicy.RUNTIME)
10 | @Documented
11 | public @interface IgnoreAuth {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/java/com/annotation/LoginUser.java:
--------------------------------------------------------------------------------
1 | package com.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 登录用户信息
10 | */
11 | @Target(ElementType.PARAMETER)
12 | @Retention(RetentionPolicy.RUNTIME)
13 | public @interface LoginUser {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/com/config/InterceptorConfig.java:
--------------------------------------------------------------------------------
1 | package com.config;
2 |
3 | import org.springframework.context.annotation.Bean;
4 | import org.springframework.context.annotation.Configuration;
5 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
6 | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
8 |
9 | import com.interceptor.AuthorizationInterceptor;
10 |
11 | @Configuration
12 | public class InterceptorConfig extends WebMvcConfigurationSupport{
13 |
14 | @Bean
15 | public AuthorizationInterceptor getAuthorizationInterceptor() {
16 | return new AuthorizationInterceptor();
17 | }
18 |
19 | @Override
20 | public void addInterceptors(InterceptorRegistry registry) {
21 | registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**");
22 | super.addInterceptors(registry);
23 | }
24 |
25 | /**
26 | * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法
27 | */
28 | @Override
29 | public void addResourceHandlers(ResourceHandlerRegistry registry) {
30 | registry.addResourceHandler("/**")
31 | .addResourceLocations("classpath:/resources/")
32 | .addResourceLocations("classpath:/static/")
33 | .addResourceLocations("classpath:/admin/")
34 | .addResourceLocations("classpath:/front/")
35 | .addResourceLocations("classpath:/public/");
36 | super.addResourceHandlers(registry);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/com/config/MybatisPlusConfig.java:
--------------------------------------------------------------------------------
1 |
2 | package com.config;
3 |
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Configuration;
6 |
7 | import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
8 | import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
9 |
10 | /**
11 | * mybatis-plus配置
12 | */
13 | @Configuration
14 | public class MybatisPlusConfig {
15 |
16 | /**
17 | * 分页插件
18 | */
19 | @Bean
20 | public PaginationInterceptor paginationInterceptor() {
21 | return new PaginationInterceptor();
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/controller/ConfigController.java:
--------------------------------------------------------------------------------
1 |
2 | package com.controller;
3 |
4 |
5 | import java.util.Arrays;
6 | import java.util.Map;
7 |
8 | import org.springframework.beans.factory.annotation.Autowired;
9 | import org.springframework.web.bind.annotation.PathVariable;
10 | import org.springframework.web.bind.annotation.PostMapping;
11 | import org.springframework.web.bind.annotation.RequestBody;
12 | import org.springframework.web.bind.annotation.RequestMapping;
13 | import org.springframework.web.bind.annotation.RequestParam;
14 | import org.springframework.web.bind.annotation.RestController;
15 |
16 | import com.annotation.IgnoreAuth;
17 | import com.baomidou.mybatisplus.mapper.EntityWrapper;
18 | import com.entity.ConfigEntity;
19 | import com.service.ConfigService;
20 | import com.utils.PageUtils;
21 | import com.utils.R;
22 | import com.utils.ValidatorUtils;
23 |
24 | /**
25 | * 登录相关
26 | */
27 | @RequestMapping("config")
28 | @RestController
29 | public class ConfigController{
30 |
31 | @Autowired
32 | private ConfigService configService;
33 |
34 | /**
35 | * 列表
36 | */
37 | @RequestMapping("/page")
38 | public R page(@RequestParam Map params,ConfigEntity config){
39 | EntityWrapper ew = new EntityWrapper();
40 | PageUtils page = configService.queryPage(params);
41 | return R.ok().put("data", page);
42 | }
43 |
44 | /**
45 | * 列表
46 | */
47 | @IgnoreAuth
48 | @RequestMapping("/list")
49 | public R list(@RequestParam Map params,ConfigEntity config){
50 | EntityWrapper ew = new EntityWrapper();
51 | PageUtils page = configService.queryPage(params);
52 | return R.ok().put("data", page);
53 | }
54 |
55 | /**
56 | * 信息
57 | */
58 | @RequestMapping("/info/{id}")
59 | public R info(@PathVariable("id") String id){
60 | ConfigEntity config = configService.selectById(id);
61 | return R.ok().put("data", config);
62 | }
63 |
64 | /**
65 | * 详情
66 | */
67 | @IgnoreAuth
68 | @RequestMapping("/detail/{id}")
69 | public R detail(@PathVariable("id") String id){
70 | ConfigEntity config = configService.selectById(id);
71 | return R.ok().put("data", config);
72 | }
73 |
74 | /**
75 | * 根据name获取信息
76 | */
77 | @RequestMapping("/info")
78 | public R infoByName(@RequestParam String name){
79 | ConfigEntity config = configService.selectOne(new EntityWrapper().eq("name", "faceFile"));
80 | return R.ok().put("data", config);
81 | }
82 |
83 | /**
84 | * 保存
85 | */
86 | @PostMapping("/save")
87 | public R save(@RequestBody ConfigEntity config){
88 | // ValidatorUtils.validateEntity(config);
89 | configService.insert(config);
90 | return R.ok();
91 | }
92 |
93 | /**
94 | * 修改
95 | */
96 | @RequestMapping("/update")
97 | public R update(@RequestBody ConfigEntity config){
98 | // ValidatorUtils.validateEntity(config);
99 | configService.updateById(config);//全部更新
100 | return R.ok();
101 | }
102 |
103 | /**
104 | * 删除
105 | */
106 | @RequestMapping("/delete")
107 | public R delete(@RequestBody Long[] ids){
108 | configService.deleteBatchIds(Arrays.asList(ids));
109 | return R.ok();
110 | }
111 | }
112 |
--------------------------------------------------------------------------------
/src/main/java/com/controller/FileController.java:
--------------------------------------------------------------------------------
1 | package com.controller;
2 |
3 | import java.io.File;
4 | import java.io.FileNotFoundException;
5 | import java.io.IOException;
6 | import java.util.Arrays;
7 | import java.util.Date;
8 | import java.util.HashMap;
9 | import java.util.List;
10 | import java.util.Map;
11 | import java.util.Random;
12 | import java.util.UUID;
13 |
14 | import org.apache.commons.io.FileUtils;
15 | import org.apache.commons.lang3.StringUtils;
16 | import org.springframework.beans.factory.annotation.Autowired;
17 | import org.springframework.http.HttpHeaders;
18 | import org.springframework.http.HttpStatus;
19 | import org.springframework.http.MediaType;
20 | import org.springframework.http.ResponseEntity;
21 | import org.springframework.util.ResourceUtils;
22 | import org.springframework.web.bind.annotation.PathVariable;
23 | import org.springframework.web.bind.annotation.RequestBody;
24 | import org.springframework.web.bind.annotation.RequestMapping;
25 | import org.springframework.web.bind.annotation.RequestParam;
26 | import org.springframework.web.bind.annotation.RestController;
27 | import org.springframework.web.multipart.MultipartFile;
28 |
29 | import com.annotation.IgnoreAuth;
30 | import com.baomidou.mybatisplus.mapper.EntityWrapper;
31 | import com.entity.ConfigEntity;
32 | import com.entity.EIException;
33 | import com.service.ConfigService;
34 | import com.utils.R;
35 |
36 | /**
37 | * 上传文件映射表
38 | */
39 | @RestController
40 | @RequestMapping("file")
41 | @SuppressWarnings({"unchecked","rawtypes"})
42 | public class FileController{
43 | @Autowired
44 | private ConfigService configService;
45 | /**
46 | * 上传文件
47 | */
48 | @RequestMapping("/upload")
49 | public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
50 | if (file.isEmpty()) {
51 | throw new EIException("上传文件不能为空");
52 | }
53 | String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
54 | File path = new File(ResourceUtils.getURL("classpath:static").getPath());
55 | if(!path.exists()) {
56 | path = new File("");
57 | }
58 | File upload = new File(path.getAbsolutePath(),"/upload/");
59 | if(!upload.exists()) {
60 | upload.mkdirs();
61 | }
62 | String fileName = new Date().getTime()+"."+fileExt;
63 | File dest = new File(upload.getAbsolutePath()+"/"+fileName);
64 | file.transferTo(dest);
65 | if(StringUtils.isNotBlank(type) && type.equals("1")) {
66 | ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile"));
67 | if(configEntity==null) {
68 | configEntity = new ConfigEntity();
69 | configEntity.setName("faceFile");
70 | configEntity.setValue(fileName);
71 | } else {
72 | configEntity.setValue(fileName);
73 | }
74 | configService.insertOrUpdate(configEntity);
75 | }
76 | return R.ok().put("file", fileName);
77 | }
78 |
79 | /**
80 | * 下载文件
81 | */
82 | @IgnoreAuth
83 | @RequestMapping("/download")
84 | public ResponseEntity download(@RequestParam String fileName) {
85 | try {
86 | File path = new File(ResourceUtils.getURL("classpath:static").getPath());
87 | if(!path.exists()) {
88 | path = new File("");
89 | }
90 | File upload = new File(path.getAbsolutePath(),"/upload/");
91 | if(!upload.exists()) {
92 | upload.mkdirs();
93 | }
94 | File file = new File(upload.getAbsolutePath()+"/"+fileName);
95 | if(file.exists()){
96 | /*if(!fileService.canRead(file, SessionManager.getSessionUser())){
97 | getResponse().sendError(403);
98 | }*/
99 | HttpHeaders headers = new HttpHeaders();
100 | headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
101 | headers.setContentDispositionFormData("attachment", fileName);
102 | return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
103 | }
104 | } catch (IOException e) {
105 | e.printStackTrace();
106 | }
107 | return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
108 | }
109 |
110 | }
111 |
--------------------------------------------------------------------------------
/src/main/java/com/dao/BanjiDao.java:
--------------------------------------------------------------------------------
1 | package com.dao;
2 |
3 | import com.entity.BanjiEntity;
4 | import com.baomidou.mybatisplus.mapper.BaseMapper;
5 | import java.util.List;
6 | import com.baomidou.mybatisplus.mapper.Wrapper;
7 | import com.baomidou.mybatisplus.plugins.pagination.Pagination;
8 |
9 | import org.apache.ibatis.annotations.Param;
10 | import com.entity.vo.BanjiVO;
11 | import com.entity.view.BanjiView;
12 |
13 |
14 | /**
15 | * 班级
16 | *
17 | * @author
18 | * @email
19 | * @date 2021-03-04 10:22:19
20 | */
21 | public interface BanjiDao extends BaseMapper {
22 |
23 | List selectListVO(@Param("ew") Wrapper wrapper);
24 |
25 | BanjiVO selectVO(@Param("ew") Wrapper wrapper);
26 |
27 | List selectListView(@Param("ew") Wrapper wrapper);
28 |
29 | List selectListView(Pagination page,@Param("ew") Wrapper wrapper);
30 |
31 | BanjiView selectView(@Param("ew") Wrapper wrapper);
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/dao/CommonDao.java:
--------------------------------------------------------------------------------
1 |
2 | package com.dao;
3 |
4 | import java.util.List;
5 | import java.util.Map;
6 |
7 | /**
8 | * 通用接口
9 | */
10 | public interface CommonDao{
11 | List getOption(Map params);
12 |
13 | Map getFollowByOption(Map params);
14 |
15 | List getFollowByOption2(Map params);
16 |
17 | void sh(Map params);
18 |
19 | int remindCount(Map params);
20 |
21 | Map selectCal(Map params);
22 |
23 | List