commit:添加多对多关联中间表更新支持,功能位于 班级管理 -> 课程 -> 编辑课程顺序

This commit is contained in:
Jerry
2020-09-27 22:22:59 +08:00
parent 295d466207
commit 307588694e
495 changed files with 7134 additions and 1183 deletions

View File

@@ -12,7 +12,7 @@ import java.util.Date;
* Controller的环绕拦截类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@ControllerAdvice
public class MyControllerAdvice {

View File

@@ -22,7 +22,7 @@ import java.util.concurrent.TimeoutException;
* 用不同的函数,处理不同类型的异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
@RestControllerAdvice("com.orange.demo")

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于标记逻辑删除字段。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于标记更新字段。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于标记Service所依赖的数据源类型。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -9,7 +9,7 @@ import java.lang.annotation.Target;
* 标记Controller中的方法参数参数解析器会根据该注解将请求中的JSON数据映射到参数中的绑定字段。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于标记无需Token验证的接口
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 标识Model和常量字典之间的关联关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 标识Model之间的字典关联关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 标注多对多的Model关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于多对多的Model关系。标注通过从表关联字段或者关联表关联字段计算主表聚合计算字段的规则。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 主要用于一对多的Model关系。标注通过从表关联字段计算主表聚合计算字段的规则。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -6,7 +6,7 @@ import java.lang.annotation.*;
* 标识Model之间的一对一关联关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -25,7 +25,7 @@ import java.util.List;
* 记录接口的链路traceId、请求参数、应答数据、错误信息和调用时长。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Aspect
@Component

View File

@@ -14,7 +14,7 @@ import java.util.Map;
*
* @param <M> 主Model实体对象。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@RegisterMapper
public interface BaseDaoMapper<M> extends Mapper<M>, InsertListMapper<M> {

View File

@@ -12,7 +12,7 @@ import java.util.stream.Collectors;
* @param <D> Domain域对象类型。
* @param <M> Model实体对象类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public interface BaseModelMapper<D, M> {

View File

@@ -8,7 +8,7 @@ import java.util.List;
*
* @param <M> 数据类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class DummyModelMapper<M> implements BaseModelMapper<M, M> {

View File

@@ -16,7 +16,7 @@ import java.util.List;
* @param <M> Model实体对象的类型。
* @param <K> Model对象主键的类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public abstract class BaseDictService<M, K> extends BaseService<M, K> {

View File

@@ -34,7 +34,7 @@ import static java.util.stream.Collectors.*;
* @param <M> Model对象的类型。
* @param <K> Model对象主键的类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public abstract class BaseService<M, K> {

View File

@@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit;
* 使用Caffeine作为本地缓存库
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Configuration
@EnableCaching

View File

@@ -9,7 +9,7 @@ import java.util.Set;
* @param <K> 字典表主键类型。
* @param <V> 字典表对象类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public interface DictionaryCache<K, V> {

View File

@@ -9,7 +9,7 @@ import java.util.function.Function;
* @param <K> 字典表主键类型。
* @param <V> 字典表对象类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MapDictionaryCache<K, V> implements DictionaryCache<K, V> {

View File

@@ -12,7 +12,7 @@ import java.util.function.Function;
* @param <K> 字典表主键类型。
* @param <V> 字典表对象类型。
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MapTreeDictionaryCache<K, V> extends MapDictionaryCache<K, V> {

View File

@@ -13,7 +13,7 @@ import java.util.Set;
* Session数据缓存辅助类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@SuppressWarnings("unchecked")
@Component

View File

@@ -21,7 +21,7 @@ import java.util.List;
* 所有的项目拦截器、参数解析器、消息对象转换器都在这里集中配置。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Configuration
public class CommonWebMvcConfig implements WebMvcConfigurer {

View File

@@ -8,7 +8,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
* 目前用于用户密码加密UAA接入应用客户端的client_secret加密。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Configuration
public class EncryptConfig {

View File

@@ -24,7 +24,7 @@ import java.util.List;
* RestTemplate连接池配置对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Configuration
public class RestTemplateConfig {

View File

@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
* tomcat配置对象。当前配置禁用了PUT和DELETE方法防止渗透攻击。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Configuration
public class TomcatConfig {

View File

@@ -7,7 +7,7 @@ import java.util.Map;
* 聚合计算的常量类型对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public final class AggregationType {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.constant;
* 应用程序的常量声明对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public final class ApplicationConstant {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.constant;
* 返回应答中的错误代码和错误信息。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public enum ErrorCodeEnum {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.constant;
* 数据记录逻辑删除标记常量。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public final class GlobalDeletedFlag {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.exception;
* 数据验证失败的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class DataValidationException extends RuntimeException {

View File

@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
* 无效的类对象字段的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
* 无效的实体对象字段的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode;
* 无效的实体对象的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@@ -5,7 +5,7 @@ package com.orange.demo.common.core.exception;
* NOTE主要是为了避免SonarQube进行代码质量扫描时给出警告。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MyRuntimeException extends RuntimeException {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.exception;
* 没有数据被修改的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class NoDataAffectException extends RuntimeException {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.exception;
* 没有数据访问权限的自定义异常。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class NoDataPermException extends RuntimeException {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.exception;
* Redis缓存访问失败。比如获取分布式数据锁超时、等待线程中断等。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class RedisCacheAccessException extends RuntimeException {

View File

@@ -29,7 +29,7 @@ import java.util.*;
* 2、多个对象需要封装到一个对象里才可以用@RequestBody接收。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MyRequestArgumentResolver implements HandlerMethodArgumentResolver {

View File

@@ -11,7 +11,7 @@ import java.util.Map;
* 应用程序启动后的事件监听对象。主要负责加载Model之间的字典关联和一对一关联所对应的Service结构关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Component
public class LoadCachedDataListener implements ApplicationListener<ApplicationReadyEvent> {

View File

@@ -11,7 +11,7 @@ import java.util.Map;
* 应用程序启动后的事件监听对象。主要负责加载Model之间的字典关联和一对一关联所对应的Service结构关系。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Component
public class LoadServiceRelationListener implements ApplicationListener<ApplicationReadyEvent> {

View File

@@ -8,7 +8,7 @@ import lombok.Data;
* 同时为了提升效率减少查询次数可以根据具体的需求将部分验证关联对象存入data字段以供Controller使用。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
public class CallResult {

View File

@@ -7,7 +7,7 @@ import lombok.Data;
* Mybatis Mapper.xml中所需的分组条件对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@AllArgsConstructor

View File

@@ -20,7 +20,7 @@ import java.util.List;
* 查询分组参数请求对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@EqualsAndHashCode(callSuper = true)
@Slf4j

View File

@@ -18,7 +18,7 @@ import java.util.*;
* Controller参数中的排序请求对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@EqualsAndHashCode(callSuper = true)
@Slf4j

View File

@@ -6,7 +6,7 @@ import lombok.Getter;
* Controller参数中的分页请求对象
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Getter
public class MyPageParam {

View File

@@ -8,7 +8,7 @@ import lombok.Data;
* BaseService中的实体对象数据组装函数会根据该参数对象进行数据组装。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@Builder

View File

@@ -16,7 +16,7 @@ import java.util.List;
* Where中的条件语句。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
@Data

View File

@@ -7,7 +7,7 @@ import lombok.Data;
* 接口返回对象
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
public class ResponseResult<T> {

View File

@@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletRequest;
* 基于Jwt用于前后端传递的令牌对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@ToString

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.object;
* 二元组对象。主要用于可以一次返回多个结果的场景,同时还能避免强制转换。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class Tuple2<T1, T2> {

View File

@@ -11,7 +11,7 @@ import java.lang.reflect.Field;
* 获取JDK动态代理/CGLIB代理对象代理的目标对象的工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class AopTargetUtil {

View File

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
* Spring 系统启动应用感知对象主要用于获取Spring Bean的上下文对象后续的代码中可以直接查找系统中加载的Bean对象。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Component
public class ApplicationContextHolder implements ApplicationContextAware {

View File

@@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletResponse;
* 获取Servlet HttpRequest和HttpResponse的工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class ContextUtil {

View File

@@ -23,7 +23,7 @@ import java.util.*;
* 导出工具类目前支持xlsx和csv两种类型。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class ExportUtil {

View File

@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
* 导入工具类目前支持xlsx和csv两种类型。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class ImportUtil {

View File

@@ -16,7 +16,7 @@ import java.util.List;
* Ip工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class IpUtil {

View File

@@ -12,7 +12,7 @@ import java.util.Map;
* 基于JWT的Token生成工具类
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class JwtUtil {

View File

@@ -6,7 +6,7 @@ package com.orange.demo.common.core.util;
* 提高代码的规范度和可维护性。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class LogMessageUtil {

View File

@@ -16,7 +16,7 @@ import java.util.UUID;
* 脚手架中常用的基本工具方法集合,一般而言工程内部使用的方法。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MyCommonUtil {

View File

@@ -16,7 +16,7 @@ import static org.joda.time.PeriodType.days;
* 日期工具类主要封装了部分joda-time中的方法让很多代码一行完成同时统一了日期到字符串的pattern格式。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MyDateUtil {

View File

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
* 负责Model数据操作、类型转换和关系关联等行为的工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class MyModelUtil {

View File

@@ -10,7 +10,7 @@ import java.util.List;
* 生成带有分页信息的数据列表
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class MyPageUtil {

View File

@@ -15,7 +15,7 @@ import java.util.Map;
* Java RSA 加密工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class RsaUtil {

View File

@@ -15,7 +15,7 @@ import java.util.function.Function;
* @param <K> 节点之间关联键的类型。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
public class TreeNode<T, K> {

View File

@@ -24,7 +24,7 @@ import java.util.Objects;
* 上传或下载附件文件的工具类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Slf4j
public class UpDownloadUtil {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.validator;
* 数据增加的验证分组。通常用于数据新增场景。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public interface AddGroup {
}

View File

@@ -11,7 +11,7 @@ import java.lang.annotation.Target;
* 定义在Model对象中标注字段值引用自指定的常量字典和ConstDictRefValidator对象配合完成数据验证。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -10,7 +10,7 @@ import java.lang.reflect.Method;
* 数据字段自定义验证用于验证Model中字符串字段的最大长度和最小长度。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class ConstDictValidator implements ConstraintValidator<ConstDictRef, Object> {

View File

@@ -11,7 +11,7 @@ import java.lang.annotation.Target;
* 定义在Model或Dto对象中UTF-8编码的字符串字段长度的上限和下限和TextLengthValidator对象配合完成数据验证。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)

View File

@@ -9,7 +9,7 @@ import javax.validation.ConstraintValidatorContext;
* 数据字段自定义验证用于验证Model中UTF-8编码的字符串字段的最大长度和最小长度。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class TextLengthValidator implements ConstraintValidator<TextLength, String> {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.core.validator;
* 数据修改的验证分组。通常用于数据更新的场景。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public interface UpdateGroup {

View File

@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
* common-sequence模块的自动配置引导类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@EnableConfigurationProperties({IdGeneratorProperties.class})
public class IdGeneratorAutoConfigure {

View File

@@ -7,7 +7,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* common-sequence模块的配置类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Data
@ConfigurationProperties(prefix = "sequence")

View File

@@ -9,7 +9,7 @@ import cn.hutool.core.util.IdUtil;
* WorkNodeId是通过配置文件静态指定的。而SnowflakeIdGenerator的WorkNodeId是由zk生成的。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public class BasicIdGenerator implements MyIdGenerator {

View File

@@ -4,7 +4,7 @@ package com.orange.demo.common.sequence.generator;
* 分布式Id生成器的统一接口。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
public interface MyIdGenerator {

View File

@@ -12,7 +12,7 @@ import javax.annotation.PostConstruct;
* 分布式Id生成器的封装类。该对象可根据配置选择不同的生成器实现类。
*
* @author Jerry
* @date 2020-09-25
* @date 2020-09-27
*/
@Component
public class IdGeneratorWrapper {