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

@@ -0,0 +1,277 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="course-class-interface" />
<orderEntry type="module" module-name="application-common" />
<orderEntry type="module" module-name="common-core" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.31" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.31" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.31" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.18.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:28.2-android" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.1.5" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.70" level="project" />
<orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.1" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.1.0" level="project" />
<orderEntry type="library" name="Maven: cn.jimmyshi:bean-query:1.1.5" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-all:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.19" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.22" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.22" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.2" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-core:1.1.5" level="project" />
<orderEntry type="library" name="Maven: javax.persistence:persistence-api:1.0" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-base:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-weekend:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-extra:1.1.5" level="project" />
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-autoconfigure:2.1.5" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.13" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.1" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.13" level="project" />
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.11" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
<orderEntry type="module" module-name="common-redis" />
<orderEntry type="library" name="Maven: redis.clients:jedis:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.7.0" level="project" />
<orderEntry type="library" name="Maven: org.redisson:redisson:3.12.3" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.45.Final" level="project" />
<orderEntry type="library" name="Maven: javax.cache:cache-api:1.1.1" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.3.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.reactivex.rxjava2:rxjava:2.2.18" level="project" />
<orderEntry type="library" name="Maven: de.ruedigermoeller:fst:2.57" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.8" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-bean:5.0.13" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-core:5.0.13" level="project" />
<orderEntry type="module" module-name="common-sequence" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-sentinel:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-simple-http:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-common:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-annotation-aspectj:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.5" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-circuitbreaker-sentinel:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-reactor-adapter:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webflux-adapter:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webmvc-adapter:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-parameter-flow-control:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-server-default:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-common-default:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-client-default:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-sentinel-datasource:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.10.2" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:4.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.woodstox:woodstox-core:5.0.3" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-datasource-nacos:1.7.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-datasource-extension:1.7.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.29" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.2" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.11" level="project" />
<orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
<orderEntry type="library" name="Maven: de.codecentric:spring-boot-admin-starter-client:2.2.3" level="project" />
<orderEntry type="library" name="Maven: de.codecentric:spring-boot-admin-client:2.2.3" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.7.4" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.7.4" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.7.4" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-httpclient:10.7.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.11" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-hystrix:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-hystrix:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-serialization:1.5.18" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.module:jackson-module-afterburner:2.10.2" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-metrics-event-stream:1.5.18" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-javanica:1.5.18" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava-reactive-streams:1.2.1" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mapstruct:mapstruct-processor:1.3.1.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:4.3.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.curator:curator-client:4.0.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.5.3-beta" level="project" />
<orderEntry type="library" name="Maven: commons-cli:commons-cli:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:2.4.0" level="project" />
<orderEntry type="library" name="Maven: com.github.luben:zstd-jni:1.4.3-1" level="project" />
<orderEntry type="library" name="Maven: org.lz4:lz4-java:1.6.0" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.7.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.scala-lang:scala-library:2.12.10" level="project" />
<orderEntry type="library" name="Maven: com.lmax:disruptor:3.4.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.2.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.2.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.2.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.13.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.8" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.4.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.4.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" />
</component>
</module>

View File

@@ -8,8 +8,8 @@ import org.springframework.context.annotation.ComponentScan;
/**
* course-class服务启动类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@SpringCloudApplication
@EnableFeignClients(basePackages = "com.orange.demo")

View File

@@ -13,8 +13,8 @@ import org.springframework.context.annotation.Configuration;
* uploadFileBaseDir: /user/xxx/fileRoot/
* defaultSomething: defaultValue
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@RefreshScope

View File

@@ -13,8 +13,8 @@ import javax.sql.DataSource;
/**
* 数据源配置Bean对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Configuration
@EnableTransactionManagement

View File

@@ -18,8 +18,8 @@ import java.util.*;
/**
* 行政区划数据访问接口类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@RestController
@RequestMapping("/areaCode")

View File

@@ -15,6 +15,7 @@ import com.orange.demo.common.core.base.controller.BaseController;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.common.redis.cache.SessionCacheHelper;
import com.orange.demo.courseclassservice.config.ApplicationConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,8 +30,8 @@ import java.util.*;
/**
* 课程数据操作控制器类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Slf4j
@RestController
@@ -41,6 +42,8 @@ public class CourseController extends BaseController<Course, CourseDto, Long> {
private CourseService courseService;
@Autowired
private ApplicationConfig appConfig;
@Autowired
private SessionCacheHelper cacheHelper;
@Override
protected BaseService<Course, CourseDto, Long> service() {
@@ -191,31 +194,39 @@ public class CourseController extends BaseController<Course, CourseDto, Long> {
*/
@GetMapping("/download")
public void download(
@RequestParam Long courseId,
@RequestParam(required = false) Long courseId,
@RequestParam String fieldName,
@RequestParam String filename,
@RequestParam Boolean asImage,
HttpServletResponse response) {
if (MyCommonUtil.existBlankArgument(courseId, fieldName, filename, asImage)) {
if (MyCommonUtil.existBlankArgument(fieldName, filename, asImage)) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
// 使用try来捕获异常是为了保证一旦出现异常可以返回500的错误状态便于调试。
// 否则有可能给前端返回的是200的错误码。
try {
Course course = courseService.getById(courseId);
if (course == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
String fieldJsonData = (String) ReflectUtil.getFieldValue(course, fieldName);
if (fieldJsonData == null) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
if (!UpDownloadUtil.containFile(fieldJsonData, filename)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
// 如果请求参数中没有包含主键Id就判断该文件是否为当前session上传的。
if (courseId == null) {
if (!cacheHelper.existSessionUploadFile(filename)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
} else {
Course course = courseService.getById(courseId);
if (course == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
String fieldJsonData = (String) ReflectUtil.getFieldValue(course, fieldName);
if (fieldJsonData == null) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
if (!UpDownloadUtil.containFile(fieldJsonData, filename)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return;
}
}
UpDownloadUtil.doDownload(appConfig.getUploadFileBaseDir(),
Course.class.getSimpleName(), fieldName, filename, asImage, response);
@@ -240,8 +251,11 @@ public class CourseController extends BaseController<Course, CourseDto, Long> {
@RequestParam Boolean asImage,
@RequestParam("uploadFile") MultipartFile uploadFile,
HttpServletResponse response) throws IOException {
UpDownloadUtil.doUpload(appConfig.getUploadFileBaseDir(), appConfig.getServiceContextPath(),
String filename = UpDownloadUtil.doUpload(appConfig.getUploadFileBaseDir(), appConfig.getServiceContextPath(),
Course.class.getSimpleName(), fieldName, asImage, uploadFile, response);
if (filename != null) {
cacheHelper.putSessionUploadFile(filename);
}
}
/**

View File

@@ -24,8 +24,8 @@ import java.util.*;
/**
* 年级操作控制器类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Slf4j
@RestController

View File

@@ -24,8 +24,8 @@ import java.util.*;
/**
* 校区数据操作控制器类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Slf4j
@RestController

View File

@@ -24,8 +24,8 @@ import java.util.stream.Collectors;
/**
* 班级数据操作控制器类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Slf4j
@RestController
@@ -245,37 +245,75 @@ public class StudentClassController extends BaseController<StudentClass, Student
* 批量添加班级数据和 [课程数据] 对象的多对多关联关系数据。
*
* @param classId 主表主键Id。
* @param classCourseList 关联对象列表。
* @param classCourseDtoList 关联对象列表。
* @return 应答结果对象。
*/
@PostMapping("/addClassCourse")
public ResponseResult<Void> addClassCourse(
@MyRequestBody Long classId,
@MyRequestBody(elementType = ClassCourse.class) List<ClassCourse> classCourseList) {
if (MyCommonUtil.existBlankArgument(classId, classCourseList)) {
@MyRequestBody(value = "classCourseList", elementType = ClassCourseDto.class) List<ClassCourseDto> classCourseDtoList) {
if (MyCommonUtil.existBlankArgument(classId, classCourseDtoList)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
for (ClassCourse classCourse : classCourseList) {
// NOTE: 如果中间表 [ClassCourse] 除了两个关联主键之外还包括其他NotNull或NotBlank字段
// 请在执行下面验证之前手动赋值缺省值。如果没有此种情况请忽略并删除该TODO注释。
// 如classCourse.setCourseOrder(0) 或 classCourse.setStarCourse(false)等。
classCourse.setClassId(classId);
classCourse.setCourseOrder(0);
for (ClassCourseDto classCourse : classCourseDtoList) {
String errorMessage = MyCommonUtil.getModelValidationError(classCourse);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATAED_FAILED, errorMessage);
}
}
Set<Long> courseIdSet =
classCourseList.stream().map(ClassCourse::getCourseId).collect(Collectors.toSet());
classCourseDtoList.stream().map(ClassCourseDto::getCourseId).collect(Collectors.toSet());
if (!studentClassService.existId(classId)
|| !courseService.existUniqueKeyList("courseId", courseIdSet)) {
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
}
studentClassService.addClassCourseList(classCourseList);
List<ClassCourse> classCourseList =
MyModelUtil.copyCollectionTo(classCourseDtoList, ClassCourse.class);
studentClassService.addClassCourseList(classCourseList, classId);
return ResponseResult.success();
}
/**
* 更新指定班级数据和指定 [课程数据] 的多对多关联数据。
*
* @param classCourseDto 对多对中间表对象。
* @return 应答结果对象。
*/
@PostMapping("/updateClassCourse")
public ResponseResult<Void> updateClassCourse(
@MyRequestBody("classCourse") ClassCourseDto classCourseDto) {
String errorMessage = MyCommonUtil.getModelValidationError(classCourseDto);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATAED_FAILED, errorMessage);
}
ClassCourse classCourse = MyModelUtil.copyTo(classCourseDto, ClassCourse.class);
if (!studentClassService.updateClassCourse(classCourse)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
return ResponseResult.success();
}
/**
* 显示班级数据和指定 [课程数据] 的多对多关联详情数据。
*
* @param classId 主表主键Id。
* @param courseId 从表主键Id。
* @return 应答结果对象,包括中间表详情。
*/
@GetMapping("/viewClassCourse")
public ResponseResult<ClassCourseDto> viewClassCourse(
@RequestParam Long classId, @RequestParam Long courseId) {
if (MyCommonUtil.existBlankArgument(classId, courseId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
ClassCourse classCourse = studentClassService.getClassCourse(classId, courseId);
if (classCourse == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
ClassCourseDto classCourseDto = MyModelUtil.copyTo(classCourse, ClassCourseDto.class);
return ResponseResult.success(classCourseDto);
}
/**
* 移除指定班级数据和指定 [课程数据] 的多对多关联关系。
*
@@ -364,33 +402,31 @@ public class StudentClassController extends BaseController<StudentClass, Student
* 批量添加班级数据和 [学生数据] 对象的多对多关联关系数据。
*
* @param classId 主表主键Id。
* @param classStudentList 关联对象列表。
* @param classStudentDtoList 关联对象列表。
* @return 应答结果对象。
*/
@PostMapping("/addClassStudent")
public ResponseResult<Void> addClassStudent(
@MyRequestBody Long classId,
@MyRequestBody(elementType = ClassStudent.class) List<ClassStudent> classStudentList) {
if (MyCommonUtil.existBlankArgument(classId, classStudentList)) {
@MyRequestBody(value = "classStudentList", elementType = ClassStudentDto.class) List<ClassStudentDto> classStudentDtoList) {
if (MyCommonUtil.existBlankArgument(classId, classStudentDtoList)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
for (ClassStudent classStudent : classStudentList) {
// NOTE: 如果中间表 [ClassCourse] 除了两个关联主键之外还包括其他NotNull或NotBlank字段
// 请在执行下面验证之前手动赋值缺省值。如果没有此种情况请忽略并删除该TODO注释。
// 如classCourse.setCourseOrder(0) 或 classCourse.setStarCourse(false)等。
classStudent.setClassId(classId);
for (ClassStudentDto classStudent : classStudentDtoList) {
String errorMessage = MyCommonUtil.getModelValidationError(classStudent);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATAED_FAILED, errorMessage);
}
}
Set<Long> studentIdSet =
classStudentList.stream().map(ClassStudent::getStudentId).collect(Collectors.toSet());
classStudentDtoList.stream().map(ClassStudentDto::getStudentId).collect(Collectors.toSet());
if (!studentClassService.existId(classId)
|| !studentService.existUniqueKeyList("studentId", studentIdSet)) {
return ResponseResult.error(ErrorCodeEnum.INVALID_RELATED_RECORD_ID);
}
studentClassService.addClassStudentList(classStudentList);
List<ClassStudent> classStudentList =
MyModelUtil.copyCollectionTo(classStudentDtoList, ClassStudent.class);
studentClassService.addClassStudentList(classStudentList, classId);
return ResponseResult.success();
}

View File

@@ -24,8 +24,8 @@ import java.util.*;
/**
* 学生数据操作控制器类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Slf4j
@RestController

View File

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

View File

@@ -6,8 +6,8 @@ import com.orange.demo.courseclassservice.model.ClassCourse;
/**
* 数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
public interface ClassCourseMapper extends BaseDaoMapper<ClassCourse> {
}

View File

@@ -6,8 +6,8 @@ import com.orange.demo.courseclassservice.model.ClassStudent;
/**
* 数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
public interface ClassStudentMapper extends BaseDaoMapper<ClassStudent> {
}

View File

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

View File

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

View File

@@ -6,8 +6,8 @@ import com.orange.demo.courseclassservice.model.MaterialEdition;
/**
* 数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
public interface MaterialEditionMapper extends BaseDaoMapper<MaterialEdition> {
}

View File

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

View File

@@ -2,8 +2,6 @@ package com.orange.demo.courseclassservice.dao;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.courseclassservice.model.StudentClass;
import com.orange.demo.courseclassservice.model.ClassCourse;
import com.orange.demo.courseclassservice.model.ClassStudent;
import org.apache.ibatis.annotations.Param;
import java.util.*;
@@ -11,8 +9,8 @@ import java.util.*;
/**
* 班级数据数据操作访问接口。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
public interface StudentClassMapper extends BaseDaoMapper<StudentClass> {
@@ -43,18 +41,4 @@ public interface StudentClassMapper extends BaseDaoMapper<StudentClass> {
@Param("inFilterColumn") String inFilterColumn,
@Param("inFilterValues") Set<M> inFilterValues,
@Param("studentClassFilter") StudentClass studentClassFilter);
/**
* 插入一组关联关系数据。
*
* @param classCourseList 关联关系数据项列表。
*/
void addClassCourseList(List<ClassCourse> classCourseList);
/**
* 插入一组关联关系数据。
*
* @param classStudentList 关联关系数据项列表。
*/
void addClassStudentList(List<ClassStudent> classStudentList);
}

View File

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

View File

@@ -56,18 +56,4 @@
<include refid="filterRef"/>
</where>
</select>
<insert id="addClassCourseList">
REPLACE INTO zz_class_course(class_id, course_id) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(#{item.classId}, #{item.courseId})
</foreach>
</insert>
<insert id="addClassStudentList">
REPLACE INTO zz_class_student(class_id, student_id) VALUES
<foreach collection="list" index="index" item="item" separator=",">
(#{item.classId}, #{item.studentId})
</foreach>
</insert>
</mapper>

View File

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

View File

@@ -7,8 +7,8 @@ import javax.validation.constraints.*;
/**
* ClassCourse实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_class_course")
@@ -33,7 +33,6 @@ public class ClassCourse {
/**
* 课程顺序(数值越小越靠前)。
*/
@NotNull(message = "数据验证失败,课程顺序(数值越小越靠前)不能为空!")
@Column(name = "course_order")
private Integer courseOrder;
}

View File

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

View File

@@ -20,8 +20,8 @@ import java.util.Map;
/**
* Course实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_course")

View File

@@ -1,5 +1,7 @@
package com.orange.demo.courseclassservice.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.*;
@@ -7,8 +9,8 @@ import javax.validation.constraints.*;
/**
* Grade实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_grade")
@@ -31,8 +33,9 @@ public class Grade {
private String gradeName;
/**
* 是否正在使用0不是1
* 逻辑删除标记字段(1: 正常 -1: 已删除)
*/
@NotNull(message = "数据验证失败是否正在使用0不是1不能为空")
@JSONField(serialize = false)
@DeletedFlagColumn
private Integer status;
}

View File

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

View File

@@ -14,8 +14,8 @@ import java.util.Map;
/**
* SchoolInfo实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_school_info")

View File

@@ -20,8 +20,8 @@ import java.util.Map;
/**
* Student实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_student")

View File

@@ -20,8 +20,8 @@ import java.util.Map;
/**
* StudentClass实体对象。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Data
@Table(name = "zz_class")

View File

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

View File

@@ -20,8 +20,8 @@ import java.util.*;
/**
* 课程数据数据操作服务类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Service
public class CourseService extends BaseService<Course, CourseDto, Long> {
@@ -75,6 +75,7 @@ public class CourseService extends BaseService<Course, CourseDto, Long> {
course.setCreateUserId(originalCourse.getCreateUserId());
course.setCreateTime(originalCourse.getCreateTime());
course.setUpdateTime(new Date());
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
return courseMapper.updateByPrimaryKey(course) == 1;
}

View File

@@ -3,6 +3,7 @@ package com.orange.demo.courseclassservice.service;
import com.orange.demo.common.redis.cache.RedisDictionaryCache;
import com.orange.demo.common.core.base.service.BaseDictService;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.courseclassservice.dao.GradeMapper;
import com.orange.demo.courseclassservice.model.Grade;
import com.orange.demo.courseclassinterface.dto.GradeDto;
@@ -16,8 +17,8 @@ import javax.annotation.PostConstruct;
/**
* 年级数据操作服务类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Service
public class GradeService extends BaseDictService<Grade, GradeDto, Integer> {
@@ -55,6 +56,7 @@ public class GradeService extends BaseDictService<Grade, GradeDto, Integer> {
*/
@Transactional(rollbackFor = Exception.class)
public Grade saveNew(Grade grade) {
grade.setStatus(GlobalDeletedFlag.NORMAL);
gradeMapper.insert(grade);
dictionaryCache.put(grade.getGradeId(), grade);
return grade;
@@ -69,6 +71,7 @@ public class GradeService extends BaseDictService<Grade, GradeDto, Integer> {
*/
@Transactional(rollbackFor = Exception.class)
public boolean update(Grade grade, Grade originalGrade) {
grade.setStatus(GlobalDeletedFlag.NORMAL);
if (gradeMapper.updateByPrimaryKey(grade) != 1) {
return false;
}
@@ -84,7 +87,10 @@ public class GradeService extends BaseDictService<Grade, GradeDto, Integer> {
*/
@Transactional(rollbackFor = Exception.class)
public boolean remove(Integer gradeId) {
if (gradeMapper.deleteByPrimaryKey(gradeId) != 1) {
Grade deletedObject = new Grade();
deletedObject.setGradeId(gradeId);
deletedObject.setStatus(GlobalDeletedFlag.DELETED);
if (gradeMapper.updateByPrimaryKeySelective(deletedObject) != 1) {
return false;
}
dictionaryCache.invalidate(gradeId);

View File

@@ -19,8 +19,8 @@ import java.util.*;
/**
* 校区数据数据操作服务类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Service
public class SchoolInfoService extends BaseService<SchoolInfo, SchoolInfoDto, Long> {
@@ -64,6 +64,7 @@ public class SchoolInfoService extends BaseService<SchoolInfo, SchoolInfoDto, Lo
*/
@Transactional(rollbackFor = Exception.class)
public boolean update(SchoolInfo schoolInfo, SchoolInfo originalSchoolInfo) {
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
return schoolInfoMapper.updateByPrimaryKey(schoolInfo) == 1;
}

View File

@@ -22,8 +22,8 @@ import java.util.*;
/**
* 班级数据数据操作服务类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Service
public class StudentClassService extends BaseService<StudentClass, StudentClassDto, Long> {
@@ -80,6 +80,7 @@ public class StudentClassService extends BaseService<StudentClass, StudentClassD
studentClass.setCreateUserId(originalStudentClass.getCreateUserId());
studentClass.setCreateTime(originalStudentClass.getCreateTime());
studentClass.setStatus(GlobalDeletedFlag.NORMAL);
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
return studentClassMapper.updateByPrimaryKey(studentClass) == 1;
}
@@ -179,10 +180,47 @@ public class StudentClassService extends BaseService<StudentClass, StudentClassD
* 批量添加多对多关联关系。
*
* @param classCourseList 多对多关联表对象集合。
* @param classId 主表Id。
*/
@Transactional(rollbackFor = Exception.class)
public void addClassCourseList(List<ClassCourse> classCourseList) {
studentClassMapper.addClassCourseList(classCourseList);
public void addClassCourseList(List<ClassCourse> classCourseList, Long classId) {
for (ClassCourse classCourse : classCourseList) {
classCourse.setClassId(classId);
if (classCourse.getCourseOrder() == null) {
classCourse.setCourseOrder(0);
}
}
classCourseMapper.insertList(classCourseList);
}
/**
* 更新中间表数据。
*
* @param classCourse 中间表对象。
* @return 更新成功与否。
*/
@Transactional(rollbackFor = Exception.class)
public boolean updateClassCourse(ClassCourse classCourse) {
Example e = new Example(ClassCourse.class);
e.createCriteria()
.andEqualTo("classId", classCourse.getClassId())
.andEqualTo("courseId", classCourse.getCourseId());
return classCourseMapper.updateByExample(classCourse, e) > 0;
}
/**
* 获取中间表数据。
*
* @param classId 主表Id。
* @param courseId 从表Id。
* @return 中间表对象。
*/
public ClassCourse getClassCourse(Long classId, Long courseId) {
Example e = new Example(ClassCourse.class);
e.createCriteria()
.andEqualTo("classId", classId)
.andEqualTo("courseId", courseId);
return classCourseMapper.selectOneByExample(e);
}
/**
@@ -204,10 +242,14 @@ public class StudentClassService extends BaseService<StudentClass, StudentClassD
* 批量添加多对多关联关系。
*
* @param classStudentList 多对多关联表对象集合。
* @param classId 主表Id。
*/
@Transactional(rollbackFor = Exception.class)
public void addClassStudentList(List<ClassStudent> classStudentList) {
studentClassMapper.addClassStudentList(classStudentList);
public void addClassStudentList(List<ClassStudent> classStudentList, Long classId) {
for (ClassStudent classStudent : classStudentList) {
classStudent.setClassId(classId);
}
classStudentMapper.insertList(classStudentList);
}
/**

View File

@@ -1,5 +1,6 @@
package com.orange.demo.courseclassservice.service;
import com.orange.demo.application.common.constant.StudentStatus;
import com.orange.demo.courseclassservice.dao.*;
import com.orange.demo.courseclassservice.model.*;
import com.orange.demo.courseclassinterface.dto.*;
@@ -19,8 +20,8 @@ import java.util.*;
/**
* 学生数据数据操作服务类。
*
* @author Orange Team
* @date 2020-08-08
* @author Jerry
* @date 2020-09-27
*/
@Service
public class StudentService extends BaseService<Student, StudentDto, Long> {
@@ -58,6 +59,15 @@ public class StudentService extends BaseService<Student, StudentDto, Long> {
public Student saveNew(Student student) {
student.setStudentId(idGenerator.nextLongId());
student.setRegisterTime(new Date());
if (student.getTotalCoin() == null) {
student.setTotalCoin(0);
}
if (student.getLeftCoin() == null) {
student.setLeftCoin(0);
}
if (student.getStatus() == null) {
student.setStatus(StudentStatus.NORMAL);
}
studentMapper.insert(student);
return student;
}
@@ -72,6 +82,7 @@ public class StudentService extends BaseService<Student, StudentDto, Long> {
@Transactional(rollbackFor = Exception.class)
public boolean update(Student student, Student originalStudent) {
student.setRegisterTime(originalStudent.getRegisterTime());
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
return studentMapper.updateByPrimaryKey(student) == 1;
}