commit:集成Minio

This commit is contained in:
Jerry
2020-10-19 22:53:01 +08:00
parent c7bb5fd289
commit dc3a8ecfac
521 changed files with 6373 additions and 5339 deletions

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 设备类型常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class DeviceType {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 经验等级常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class ExpLevel {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 性别常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class Gender {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 学生行为常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class StudentActionType {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 学生状态常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class StudentStatus {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 学科常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class Subject {

View File

@@ -22,12 +22,12 @@
</dependency>
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>application-common</artifactId>
<artifactId>common-sequence</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-sequence</artifactId>
<artifactId>application-common</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>

View File

@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* 应用服务启动类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@SpringBootApplication
public class MyApplication {

View File

@@ -17,7 +17,7 @@ import java.util.*;
* 行政区划数据访问接口类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@RestController
@RequestMapping("/admin/app/areaCode")

View File

@@ -1,13 +1,17 @@
package com.orange.demo.app.controller;
import cn.hutool.core.util.ReflectUtil;
import cn.jimmyshi.beanquery.BeanQuery;
import cn.hutool.core.util.ReflectUtil;
import com.orange.demo.common.core.upload.BaseUpDownloader;
import com.orange.demo.common.core.upload.UpDownloaderFactory;
import com.orange.demo.common.core.upload.UploadResponseInfo;
import com.orange.demo.common.core.upload.UploadStoreInfo;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.common.core.cache.SessionCacheHelper;
@@ -19,7 +23,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import javax.validation.groups.Default;
@@ -27,7 +30,7 @@ import javax.validation.groups.Default;
* 课程数据操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController
@@ -40,6 +43,8 @@ public class CourseController {
private ApplicationConfig appConfig;
@Autowired
private SessionCacheHelper cacheHelper;
@Autowired
private UpDownloaderFactory upDownloaderFactory;
/**
* 新增课程数据数据。
@@ -160,7 +165,7 @@ public class CourseController {
}
return ResponseResult.success(course);
}
/**
* 附件文件下载。
* 这里将图片和其他类型的附件文件放到不同的父目录下,主要为了便于今后图片文件的迁移。
@@ -188,26 +193,33 @@ public class CourseController {
// 如果请求参数中没有包含主键Id就判断该文件是否为当前session上传的。
if (courseId == null) {
if (!cacheHelper.existSessionUploadFile(filename)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
ResponseResult.output(HttpServletResponse.SC_FORBIDDEN);
return;
}
} else {
Course course = courseService.getById(courseId);
if (course == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
ResponseResult.output(HttpServletResponse.SC_NOT_FOUND);
return;
}
String fieldJsonData = (String) ReflectUtil.getFieldValue(course, fieldName);
if (fieldJsonData == null) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
ResponseResult.output(HttpServletResponse.SC_BAD_REQUEST);
return;
}
if (!UpDownloadUtil.containFile(fieldJsonData, filename)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
if (!BaseUpDownloader.containFile(fieldJsonData, filename)) {
ResponseResult.output(HttpServletResponse.SC_FORBIDDEN);
return;
}
}
UpDownloadUtil.doDownload(appConfig.getUploadFileBaseDir(),
UploadStoreInfo storeInfo = MyModelUtil.getUploadStoreInfo(Course.class, fieldName);
if (!storeInfo.isSupportUpload()) {
ResponseResult.output(HttpServletResponse.SC_NOT_IMPLEMENTED,
ResponseResult.error(ErrorCodeEnum.INVALID_UPLOAD_FIELD));
return;
}
BaseUpDownloader upDownloader = upDownloaderFactory.get(storeInfo.getStoreType());
upDownloader.doDownload(appConfig.getUploadFileBaseDir(),
Course.class.getSimpleName(), fieldName, filename, asImage, response);
} catch (Exception e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
@@ -221,20 +233,30 @@ public class CourseController {
* @param fieldName 上传文件名。
* @param asImage 是否作为图片上传。如果是图片,今后下载的时候无需权限验证。否则就是附件上传,下载时需要权限验证。
* @param uploadFile 上传文件对象。
* @param response Http 应答对象。
* @throws IOException 文件读写错误。
*/
@PostMapping("/upload")
public void upload(
@RequestParam String fieldName,
@RequestParam Boolean asImage,
@RequestParam("uploadFile") MultipartFile uploadFile,
HttpServletResponse response) throws IOException {
String filename = UpDownloadUtil.doUpload(appConfig.getUploadFileBaseDir(),
Course.class.getSimpleName(), fieldName, asImage, uploadFile, response);
if (filename != null) {
cacheHelper.putSessionUploadFile(filename);
@RequestParam("uploadFile") MultipartFile uploadFile) throws Exception {
UploadStoreInfo storeInfo = MyModelUtil.getUploadStoreInfo(Course.class, fieldName);
// 这里就会判断参数中指定的字段,是否支持上传操作。
if (!storeInfo.isSupportUpload()) {
ResponseResult.output(HttpServletResponse.SC_FORBIDDEN,
ResponseResult.error(ErrorCodeEnum.INVALID_UPLOAD_FIELD));
return;
}
// 根据字段注解中的存储类型,通过工厂方法获取匹配的上传下载实现类,从而解耦。
BaseUpDownloader upDownloader = upDownloaderFactory.get(storeInfo.getStoreType());
UploadResponseInfo responseInfo = upDownloader.doUpload(null,
appConfig.getUploadFileBaseDir(), Course.class.getSimpleName(), fieldName, asImage, uploadFile);
if (responseInfo.getUploadFailed()) {
ResponseResult.output(HttpServletResponse.SC_FORBIDDEN,
ResponseResult.error(ErrorCodeEnum.UPLOAD_FAILED, responseInfo.getErrorMessage()));
return;
}
cacheHelper.putSessionUploadFile(responseInfo.getFilename());
ResponseResult.output(ResponseResult.success(responseInfo));
}
/**

View File

@@ -5,7 +5,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import lombok.extern.slf4j.Slf4j;
import com.alibaba.fastjson.JSONObject;
@@ -18,7 +18,7 @@ import java.util.*;
* 课程统计操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -21,7 +21,7 @@ import java.util.*;
* 年级操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -6,7 +6,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.extern.slf4j.Slf4j;
@@ -21,7 +21,7 @@ import javax.validation.groups.Default;
* 校区数据操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -5,7 +5,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import lombok.extern.slf4j.Slf4j;
import com.alibaba.fastjson.JSONObject;
@@ -18,7 +18,7 @@ import java.util.*;
* 学生行为统计操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -5,7 +5,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.extern.slf4j.Slf4j;
@@ -20,7 +20,7 @@ import javax.validation.groups.Default;
* 学生行为流水操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -5,7 +5,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.extern.slf4j.Slf4j;
@@ -21,7 +21,7 @@ import java.util.stream.Collectors;
* 班级数据操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -6,7 +6,7 @@ import com.orange.demo.app.model.*;
import com.orange.demo.app.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import lombok.extern.slf4j.Slf4j;
@@ -21,7 +21,7 @@ import javax.validation.groups.Default;
* 学生数据操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -7,7 +7,7 @@ import com.orange.demo.app.model.AreaCode;
* 行政区划数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface AreaCodeMapper extends BaseDaoMapper<AreaCode> {
}

View File

@@ -7,7 +7,7 @@ import com.orange.demo.app.model.ClassCourse;
* 数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface ClassCourseMapper extends BaseDaoMapper<ClassCourse> {
}

View File

@@ -7,7 +7,7 @@ import com.orange.demo.app.model.ClassStudent;
* 数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface ClassStudentMapper extends BaseDaoMapper<ClassStudent> {
}

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 课程数据数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface CourseMapper extends BaseDaoMapper<Course> {

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 课程统计数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface CourseTransStatsMapper extends BaseDaoMapper<CourseTransStats> {

View File

@@ -7,7 +7,7 @@ import com.orange.demo.app.model.Grade;
* 年级数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface GradeMapper extends BaseDaoMapper<Grade> {
}

View File

@@ -7,7 +7,7 @@ import com.orange.demo.app.model.MaterialEdition;
* 数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface MaterialEditionMapper extends BaseDaoMapper<MaterialEdition> {
}

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 校区数据数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SchoolInfoMapper extends BaseDaoMapper<SchoolInfo> {

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 学生行为统计数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface StudentActionStatsMapper extends BaseDaoMapper<StudentActionStats> {

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 学生行为流水数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface StudentActionTransMapper extends BaseDaoMapper<StudentActionTrans> {

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 班级数据数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface StudentClassMapper extends BaseDaoMapper<StudentClass> {

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 学生数据数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface StudentMapper extends BaseDaoMapper<Student> {

View File

@@ -16,6 +16,11 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<resultMap id="BaseResultMapWithClassCourse" type="com.orange.demo.app.model.Course" extends="BaseResultMap">
<association property="classCourse" column="course_id" foreignColumn="course_id"
notNullColumn="course_id" resultMap="com.orange.demo.app.dao.ClassCourseMapper.BaseResultMap" />
</resultMap>
<sql id="filterRef">
<if test="courseFilter != null">
<if test="courseFilter.courseName != null and courseFilter.courseName != ''">
@@ -62,9 +67,10 @@
</if>
</select>
<select id="getCourseListByClassId" resultMap="BaseResultMap">
<select id="getCourseListByClassId" resultMap="BaseResultMapWithClassCourse">
SELECT
zz_course.*
zz_course.*,
zz_class_course.*
FROM
zz_course,
zz_class_course

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 行政区划实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_area_code")

View File

@@ -9,7 +9,7 @@ import javax.validation.constraints.*;
* ClassCourse实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_class_course")

View File

@@ -9,7 +9,7 @@ import javax.validation.constraints.*;
* ClassStudent实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_class_student")

View File

@@ -2,6 +2,8 @@ package com.orange.demo.app.model;
import com.orange.demo.app.model.constant.CourseDifficult;
import com.orange.demo.application.common.constant.Subject;
import com.orange.demo.common.core.upload.UploadStoreTypeEnum;
import com.orange.demo.common.core.annotation.UploadFlagColumn;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.validator.UpdateGroup;
@@ -18,7 +20,7 @@ import java.util.Map;
* Course实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_course")
@@ -82,6 +84,7 @@ public class Course {
/**
* 多张课程图片地址。
*/
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
@NotBlank(message = "数据验证失败,课程图片不能为空!")
@Column(name = "picture_url")
private String pictureUrl;
@@ -140,6 +143,12 @@ public class Course {
@Transient
private String createTimeEnd;
/**
* courseId 的多对多关联表数据对象。
*/
@Transient
private ClassCourse classCourse;
@RelationDict(
masterIdField = "gradeId",
slaveServiceName = "gradeService",

View File

@@ -16,7 +16,7 @@ import java.util.Map;
* CourseTransStats实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_course_trans_stats")

View File

@@ -11,7 +11,7 @@ import javax.validation.constraints.*;
* Grade实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_grade")

View File

@@ -9,7 +9,7 @@ import javax.validation.constraints.*;
* MaterialEdition实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_material_edition")

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* SchoolInfo实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_school_info")

View File

@@ -18,7 +18,7 @@ import java.util.Map;
* Student实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_student")

View File

@@ -13,7 +13,7 @@ import java.util.Map;
* StudentActionStats实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_student_action_stats")

View File

@@ -17,7 +17,7 @@ import java.util.Map;
* StudentActionTrans实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_student_action_trans")

View File

@@ -18,7 +18,7 @@ import java.util.Map;
* StudentClass实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_class")

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 班级级别常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class ClassLevel {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 班级状态常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class ClassStatus {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 课程难度常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class CourseDifficult {

View File

@@ -16,7 +16,7 @@ import java.util.List;
* 行政区划的Service类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class AreaCodeService extends BaseDictService<AreaCode, Long> {

View File

@@ -19,7 +19,7 @@ import java.util.*;
* 课程数据数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class CourseService extends BaseService<Course, Long> {

View File

@@ -15,7 +15,7 @@ import java.util.*;
* 课程统计数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class CourseTransStatsService extends BaseService<CourseTransStats, Long> {

View File

@@ -14,7 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
* 年级数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class GradeService extends BaseDictService<Grade, Integer> {

View File

@@ -18,7 +18,7 @@ import java.util.*;
* 校区数据数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SchoolInfoService extends BaseService<SchoolInfo, Long> {

View File

@@ -15,7 +15,7 @@ import java.util.*;
* 学生行为统计数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class StudentActionStatsService extends BaseService<StudentActionStats, Long> {

View File

@@ -18,7 +18,7 @@ import java.util.*;
* 学生行为流水数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class StudentActionTransService extends BaseService<StudentActionTrans, Long> {

View File

@@ -21,7 +21,7 @@ import java.util.*;
* 班级数据数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class StudentClassService extends BaseService<StudentClass, Long> {

View File

@@ -19,7 +19,7 @@ import java.util.*;
* 学生数据数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class StudentService extends BaseService<Student, Long> {

View File

@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
* 应用程序自定义的程序属性配置文件。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Configuration

View File

@@ -14,7 +14,7 @@ import javax.sql.DataSource;
* 数据源配置Bean对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Configuration
@EnableTransactionManagement

View File

@@ -15,7 +15,7 @@ import java.nio.charset.StandardCharsets;
* 这里主要配置Web的各种过滤器和监听器等Servlet容器组件。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Configuration
public class FilterConfig {

View File

@@ -9,13 +9,13 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* 所有的项目拦截器都在这里集中配置
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthenticationInterceptor()).addPathPatterns("/**");
registry.addInterceptor(new AuthenticationInterceptor()).addPathPatterns("/admin/**");
}
}

View File

@@ -1,5 +1,6 @@
package com.orange.demo.interceptor;
import com.alibaba.fastjson.JSON;
import com.orange.demo.config.ApplicationConfig;
import com.orange.demo.upms.model.SysPermWhitelist;
import com.orange.demo.upms.service.SysPermWhitelistService;
@@ -11,7 +12,6 @@ import com.orange.demo.common.core.object.TokenData;
import com.orange.demo.common.core.util.ApplicationContextHolder;
import com.orange.demo.common.core.util.JwtUtil;
import com.orange.demo.common.core.cache.SessionCacheHelper;
import com.alibaba.fastjson.JSONObject;
import io.jsonwebtoken.Claims;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
* 登录用户Token验证、生成和权限验证的拦截器。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
public class AuthenticationInterceptor implements HandlerInterceptor {
@@ -76,7 +76,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
if (JwtUtil.isNullOrExpired(c)) {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
this.outputResponseMessage(response,
ResponseResult.error(ErrorCodeEnum.UNAUTHORIZED_LOGIN, "用户会话已过期,请重新登录!"));
ResponseResult.error(ErrorCodeEnum.UNAUTHORIZED_LOGIN, "用户会话已过期或尚未登录,请重新登录!"));
return false;
}
String sessionId = (String) c.get("sessionId");
@@ -89,7 +89,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
}
TokenData.addToRequest(tokenData);
// 如果url在权限资源白名单中则不需要进行鉴权操作
if (!tokenData.getIsAdmin() && !whitelistPermSet.contains(url)) {
if (Boolean.FALSE.equals(tokenData.getIsAdmin()) && !whitelistPermSet.contains(url)) {
Set<String> urlSet = sysPermService.getCacheableSysPermSetByUserId(
tokenData.getSessionId(), tokenData.getUserId());
if (!urlSet.contains(url)) {
@@ -127,7 +127,7 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
return;
}
response.setContentType("application/json; charset=utf-8");
out.print(JSONObject.toJSONString(respObj));
out.print(JSON.toJSONString(respObj));
out.flush();
out.close();
}

View File

@@ -28,11 +28,11 @@ import java.util.*;
* 登录接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController
@RequestMapping("/admin/login")
@RequestMapping("/admin/upms/login")
public class LoginController {
@Autowired

View File

@@ -22,7 +22,7 @@ import java.util.*;
* 菜单管理接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -25,7 +25,7 @@ import java.util.*;
* 权限字管理接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -25,7 +25,7 @@ import java.util.Map;
* 权限资源管理接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -24,7 +24,7 @@ import java.util.Map;
* 权限资源模块管理接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
* 角色管理接口控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -5,7 +5,7 @@ import com.orange.demo.upms.model.*;
import com.orange.demo.upms.service.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
import com.orange.demo.common.core.constant.*;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.AddGroup;
import com.orange.demo.common.core.validator.UpdateGroup;
@@ -23,7 +23,7 @@ import javax.validation.groups.Default;
* 用户管理操作控制器类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Slf4j
@RestController

View File

@@ -9,7 +9,7 @@ import java.util.List;
* 菜单数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysMenuMapper extends BaseDaoMapper<SysMenu> {

View File

@@ -7,7 +7,7 @@ import com.orange.demo.upms.model.SysMenuPermCode;
* 菜单与权限字关系数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysMenuPermCodeMapper extends BaseDaoMapper<SysMenuPermCode> {
}

View File

@@ -11,7 +11,7 @@ import java.util.Map;
* 权限字数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysPermCodeMapper extends BaseDaoMapper<SysPermCode> {

View File

@@ -7,7 +7,7 @@ import com.orange.demo.upms.model.SysPermCodePerm;
* 权限字与权限资源关系数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysPermCodePermMapper extends BaseDaoMapper<SysPermCodePerm> {
}

View File

@@ -11,7 +11,7 @@ import java.util.Map;
* 权限资源数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysPermMapper extends BaseDaoMapper<SysPerm> {

View File

@@ -9,7 +9,7 @@ import java.util.List;
* 权限资源模块数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysPermModuleMapper extends BaseDaoMapper<SysPermModule> {

View File

@@ -7,7 +7,7 @@ import com.orange.demo.upms.model.SysPermWhitelist;
* 权限资源白名单数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysPermWhitelistMapper extends BaseDaoMapper<SysPermWhitelist> {
}

View File

@@ -10,7 +10,7 @@ import java.util.List;
* 角色数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysRoleMapper extends BaseDaoMapper<SysRole> {

View File

@@ -7,7 +7,7 @@ import com.orange.demo.upms.model.SysRoleMenu;
* 角色与菜单操作关联关系数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysRoleMenuMapper extends BaseDaoMapper<SysRoleMenu> {
}

View File

@@ -10,7 +10,7 @@ import java.util.*;
* 用户管理数据操作访问接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysUserMapper extends BaseDaoMapper<SysUser> {

View File

@@ -9,7 +9,7 @@ import java.util.List;
* 用户与角色关联关系数据访问操作接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public interface SysUserRoleMapper extends BaseDaoMapper<SysUserRole> {

View File

@@ -17,7 +17,7 @@ import java.util.List;
* 菜单实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_menu")

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 菜单与权限字关联实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_menu_perm_code")

View File

@@ -15,7 +15,7 @@ import java.util.Map;
* 权限资源实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_perm")

View File

@@ -17,7 +17,7 @@ import java.util.List;
* 权限字实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_perm_code")

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 权限字与权限资源关联实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_perm_code_perm")

View File

@@ -16,7 +16,7 @@ import java.util.List;
* 权限模块实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_perm_module")

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 白名单实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_perm_whitelist")

View File

@@ -15,7 +15,7 @@ import java.util.List;
* 角色实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_role")

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 角色菜单实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_role_menu")

View File

@@ -21,7 +21,7 @@ import java.util.List;
* SysUser实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_user")

View File

@@ -8,7 +8,7 @@ import javax.persistence.*;
* 用户角色实体对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Data
@Table(name = "zz_sys_user_role")

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 菜单类型常量对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class SysMenuType {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 权限字类型常量对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class SysPermCodeType {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 权限资源模块类型常量对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class SysPermModuleType {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 用户状态常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class SysUserStatus {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 用户类型常量字典对象。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
public final class SysUserType {

View File

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
* 菜单数据服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysMenuService extends BaseService<SysMenu, Long> {

View File

@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
* 权限字数据服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysPermCodeService extends BaseService<SysPermCode, Long> {

View File

@@ -18,7 +18,7 @@ import java.util.List;
* 权限资源模块数据服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysPermModuleService extends BaseService<SysPermModule, Long> {

View File

@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
* 权限资源数据服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysPermService extends BaseService<SysPerm, Long> {

View File

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
* 白名单中的权限资源,可以不受权限控制,任何用户皆可访问,一般用于常用的字典数据列表接口。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysPermWhitelistService extends BaseService<SysPermWhitelist, String> {

View File

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
* 角色数据服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysRoleService extends BaseService<SysRole, Long> {

View File

@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
* 用户管理数据操作服务类。
*
* @author Jerry
* @date 2020-09-27
* @date 2020-10-19
*/
@Service
public class SysUserService extends BaseService<SysUser, Long> {

Some files were not shown because too many files have changed in this diff Show More