mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 18:46:36 +08:00
同步1.9.0
This commit is contained in:
1
orange-demo-multi-service/.idea/.name
generated
1
orange-demo-multi-service/.idea/.name
generated
@@ -1 +0,0 @@
|
|||||||
OrangeMultiDemo
|
|
||||||
@@ -14,57 +14,6 @@
|
|||||||
<inspection_tool class="CheckDtdRefs" enabled="false" level="ERROR" enabled_by_default="false" />
|
<inspection_tool class="CheckDtdRefs" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
<inspection_tool class="CheckTagEmptyBody" enabled="false" level="WARNING" enabled_by_default="false" />
|
<inspection_tool class="CheckTagEmptyBody" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="CheckXmlFileWithXercesValidator" enabled="false" level="ERROR" enabled_by_default="false" />
|
<inspection_tool class="CheckXmlFileWithXercesValidator" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
<inspection_tool class="CloudToolkitAbstractClassShouldStartWithAbstractNaming" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAbstractMethodOrInterfaceMethodMustUseJavadoc" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidApacheBeanUtilsCopy" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidCallStaticSimpleDateFormat" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidCommentBehindStatement" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidComplexCondition" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidConcurrentCompetitionRandom" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidDoubleOrFloatEqualCompare" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidManuallyCreateThread" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidMissUseOfMathRandom" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidNegationOperator" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidNewDateGetTime" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidPatternCompileInMethod" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidReturnInFinally" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidStartWithDollarAndUnderLineNaming" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitAvoidUseTimer" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitBigDecimalAvoidDoubleConstructor" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitBooleanPropertyShouldNotStartWithIs" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitClassCastExceptionWithSubListToArrayList" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitClassCastExceptionWithToArray" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitClassMustHaveAuthor" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitClassNamingShouldBeCamel" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitCollectionInitShouldAssignCapacity" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitCommentsMustBeJavadocFormat" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitConcurrentExceptionWithModifyOriginSubList" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitConstantFieldShouldBeUpperCase" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitCountDownShouldInFinally" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitDontModifyInForeachCircle" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitEnumConstantsMustHaveComment" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitExceptionClassShouldEndWithException" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitIbatisMethodQueryForList" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitLowerCamelCaseVariableNaming" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitMethodReturnWrapperType" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitMethodTooLong" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitPackageNaming" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitPojoMustOverrideToString" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitPojoMustUsePrimitiveField" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitPojoNoDefaultValue" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitRemoveCommentedCode" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitServiceOrDaoClassShouldEndWithImpl" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitStringConcat" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitSwitchStatement" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitTestClassShouldEndWithTestNaming" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitThreadLocalShouldRemove" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitThreadPoolCreation" enabled="false" level="BLOCKER" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitThreadShouldSetName" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitTransactionMustHaveRollback" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitUndefineMagicConstant" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitUnsupportedExceptionWithModifyAsList" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitUseQuietReferenceNotation" enabled="false" level="MAJOR" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="CloudToolkitUseRightCaseForDateFormat" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
|
||||||
<inspection_tool class="ConstantConditions" enabled="false" level="WARNING" enabled_by_default="false">
|
<inspection_tool class="ConstantConditions" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
<option name="SUGGEST_NULLABLE_ANNOTATIONS" value="false" />
|
<option name="SUGGEST_NULLABLE_ANNOTATIONS" value="false" />
|
||||||
<option name="DONT_REPORT_TRUE_ASSERT_STATEMENTS" value="false" />
|
<option name="DONT_REPORT_TRUE_ASSERT_STATEMENTS" value="false" />
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: com.baomidou:mybatis-plus:3.4.2">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.4.2/mybatis-plus-3.4.2.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.4.2/mybatis-plus-3.4.2-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus/3.4.2/mybatis-plus-3.4.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.4.2/mybatis-plus-annotation-3.4.2.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.4.2/mybatis-plus-annotation-3.4.2-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-annotation/3.4.2/mybatis-plus-annotation-3.4.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.4.2/mybatis-plus-boot-starter-3.4.2.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.4.2/mybatis-plus-boot-starter-3.4.2-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-boot-starter/3.4.2/mybatis-plus-boot-starter-3.4.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: com.baomidou:mybatis-plus-core:3.4.2">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.4.2/mybatis-plus-core-3.4.2.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.4.2/mybatis-plus-core-3.4.2-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.4.2/mybatis-plus-core-3.4.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: com.baomidou:mybatis-plus-extension:3.4.2">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.4.2/mybatis-plus-extension-3.4.2.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.4.2/mybatis-plus-extension-3.4.2-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.4.2/mybatis-plus-extension-3.4.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__com_orange_demo_common_log_1_0_0.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__com_orange_demo_common_log_1_0_0.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: com.orange.demo:common-log:1.0.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/orange/demo/common-log/1.0.0/common-log-1.0.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/orange/demo/common-log/1.0.0/common-log-1.0.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/orange/demo/common-log/1.0.0/common-log-1.0.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: javax.persistence:persistence-api:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.mybatis:mybatis:3.5.5">
|
<library name="Maven: org.mybatis:mybatis:3.4.6">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.5/mybatis-3.5.5.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.5/mybatis-3.5.5-javadoc.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.5.5/mybatis-3.5.5-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.mybatis:mybatis-spring:2.0.5">
|
<library name="Maven: org.mybatis:mybatis-spring:1.3.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.5/mybatis-spring-2.0.5.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.2/mybatis-spring-1.3.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.5/mybatis-spring-2.0.5-javadoc.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.2/mybatis-spring-1.3.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/2.0.5/mybatis-spring-2.0.5-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis-spring/1.3.2/mybatis-spring-1.3.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_base_1_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_base_1_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-base:1.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-base/1.1.5/mapper-base-1.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-base/1.1.5/mapper-base-1.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-base/1.1.5/mapper-base-1.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_core_1_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_core_1_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-core:1.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-core/1.1.5/mapper-core-1.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-core/1.1.5/mapper-core-1.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-core/1.1.5/mapper-core-1.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_extra_1_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_extra_1_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-extra:1.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-extra/1.1.5/mapper-extra-1.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-extra/1.1.5/mapper-extra-1.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-extra/1.1.5/mapper-extra-1.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_1_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_1_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-spring:1.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring/1.1.5/mapper-spring-1.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring/1.1.5/mapper-spring-1.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring/1.1.5/mapper-spring-1.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-spring-boot-autoconfigure:2.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-autoconfigure/2.1.5/mapper-spring-boot-autoconfigure-2.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-autoconfigure/2.1.5/mapper-spring-boot-autoconfigure-2.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-autoconfigure/2.1.5/mapper-spring-boot-autoconfigure-2.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_starter_2_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_starter_2_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-starter/2.1.5/mapper-spring-boot-starter-2.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-starter/2.1.5/mapper-spring-boot-starter-2.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-spring-boot-starter/2.1.5/mapper-spring-boot-starter-2.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_weekend_1_1_5.xml
generated
Normal file
13
orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_weekend_1_1_5.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: tk.mybatis:mapper-weekend:1.1.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-weekend/1.1.5/mapper-weekend-1.1.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-weekend/1.1.5/mapper-weekend-1.1.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/tk/mybatis/mapper-weekend/1.1.5/mapper-weekend-1.1.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
27
orange-demo-multi-service/.idea/workspace.xml
generated
27
orange-demo-multi-service/.idea/workspace.xml
generated
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="216743b9-524b-4922-b455-b0e9c8b485b9" name="Default Changelist" comment="" />
|
<list default="true" id="a0b6f27a-b36a-441c-af92-f7eb47b4b3ce" name="Default Changelist" comment="" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<component name="ProjectCodeStyleSettingsMigration">
|
<component name="ProjectCodeStyleSettingsMigration">
|
||||||
<option name="version" value="1" />
|
<option name="version" value="1" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectId" id="1wfVMeoGKApld9UdILFEuYjLurI" />
|
<component name="ProjectId" id="1xX0EnUm7ILYI1um57oGVrdwMUq" />
|
||||||
<component name="ProjectViewState">
|
<component name="ProjectViewState">
|
||||||
<option name="abbreviatePackageNames" value="true" />
|
<option name="abbreviatePackageNames" value="true" />
|
||||||
<option name="autoscrollFromSource" value="true" />
|
<option name="autoscrollFromSource" value="true" />
|
||||||
@@ -27,16 +27,11 @@
|
|||||||
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
<property name="aspect.path.notification.shown" value="true" />
|
<property name="aspect.path.notification.shown" value="true" />
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/zz-resource/db-scripts" />
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
<property name="nodejs_interpreter_path" value="/usr/local/bin/node" />
|
<property name="nodejs_interpreter_path" value="/usr/local/bin/node" />
|
||||||
<property name="settings.editor.selected.configurable" value="Errors" />
|
<property name="settings.editor.selected.configurable" value="Errors" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RecentsManager">
|
<component name="RunManager" selected="Spring Boot.StatsApplication">
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
|
||||||
<recent name="$PROJECT_DIR$/zz-resource/db-scripts" />
|
|
||||||
</key>
|
|
||||||
</component>
|
|
||||||
<component name="RunManager" selected="Spring Boot.UpmsApplication">
|
|
||||||
<configuration name="AdminMonitorApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
|
<configuration name="AdminMonitorApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
|
||||||
<module name="admin-monitor" />
|
<module name="admin-monitor" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.orange.demo.adminmonitor.AdminMonitorApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.orange.demo.adminmonitor.AdminMonitorApplication" />
|
||||||
@@ -83,22 +78,16 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="TaskManager">
|
<component name="TaskManager">
|
||||||
<task active="true" id="Default" summary="Default task">
|
<task active="true" id="Default" summary="Default task">
|
||||||
<changelist id="216743b9-524b-4922-b455-b0e9c8b485b9" name="Default Changelist" comment="" />
|
<changelist id="a0b6f27a-b36a-441c-af92-f7eb47b4b3ce" name="Default Changelist" comment="" />
|
||||||
<created>1628849582125</created>
|
<created>1630486016377</created>
|
||||||
<option name="number" value="Default" />
|
<option name="number" value="Default" />
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1628849582125</updated>
|
<updated>1630486016377</updated>
|
||||||
<workItem from="1628849584343" duration="407000" />
|
<workItem from="1630486018005" duration="271000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
<option name="version" value="1" />
|
<option name="version" value="1" />
|
||||||
</component>
|
</component>
|
||||||
<component name="WindowStateProjectService">
|
|
||||||
<state x="383" y="212" width="735" height="476" key="find.popup" timestamp="1628849897788">
|
|
||||||
<screen x="0" y="0" width="1440" height="900" />
|
|
||||||
</state>
|
|
||||||
<state x="383" y="212" width="735" height="476" key="find.popup/0.0.1440.900@0.0.1440.900" timestamp="1628849897788" />
|
|
||||||
</component>
|
|
||||||
</project>
|
</project>
|
||||||
@@ -65,20 +65,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -64,20 +64,23 @@
|
|||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
@@ -99,6 +102,7 @@
|
|||||||
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
|
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.orange.demo:common-log:1.0.0" level="project" />
|
||||||
<orderEntry type="module" module-name="common-redis" />
|
<orderEntry type="module" module-name="common-redis" />
|
||||||
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
||||||
|
|||||||
@@ -20,6 +20,11 @@
|
|||||||
<artifactId>course-class-api</artifactId>
|
<artifactId>course-class-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.orange.demo</groupId>
|
||||||
|
<artifactId>common-log</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.orange.demo</groupId>
|
<groupId>com.orange.demo</groupId>
|
||||||
<artifactId>common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import tk.mybatis.spring.annotation.MapperScan;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行政区划实体对象。
|
* 行政区划实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,30 +11,31 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_area_code")
|
@Table(name = "zz_area_code")
|
||||||
public class AreaCode {
|
public class AreaCode {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行政区划主键Id
|
* 行政区划主键Id
|
||||||
*/
|
*/
|
||||||
@TableId(value = "area_id")
|
@Id
|
||||||
|
@Column(name = "area_id")
|
||||||
private Long areaId;
|
private Long areaId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行政区划名称
|
* 行政区划名称
|
||||||
*/
|
*/
|
||||||
@TableField(value = "area_name")
|
@Column(name = "area_name")
|
||||||
private String areaName;
|
private String areaName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行政区划级别 (1: 省级别 2: 市级别 3: 区级别)
|
* 行政区划级别 (1: 省级别 2: 市级别 3: 区级别)
|
||||||
*/
|
*/
|
||||||
@TableField(value = "area_level")
|
@Column(name = "area_level")
|
||||||
private Integer areaLevel;
|
private Integer areaLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 父级行政区划Id
|
* 父级行政区划Id
|
||||||
*/
|
*/
|
||||||
@TableField(value = "parent_id")
|
@Column(name = "parent_id")
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassCourse实体对象。
|
* ClassCourse实体对象。
|
||||||
@@ -10,24 +10,26 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_class_course")
|
@Table(name = "zz_class_course")
|
||||||
public class ClassCourse {
|
public class ClassCourse {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级Id。
|
* 班级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "class_id")
|
@Id
|
||||||
|
@Column(name = "class_id")
|
||||||
private Long classId;
|
private Long classId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程Id。
|
* 课程Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_id")
|
@Id
|
||||||
|
@Column(name = "course_id")
|
||||||
private Long courseId;
|
private Long courseId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程顺序(数值越小越靠前)。
|
* 课程顺序(数值越小越靠前)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_order")
|
@Column(name = "course_order")
|
||||||
private Integer courseOrder;
|
private Integer courseOrder;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassStudent实体对象。
|
* ClassStudent实体对象。
|
||||||
@@ -10,18 +10,20 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_class_student")
|
@Table(name = "zz_class_student")
|
||||||
public class ClassStudent {
|
public class ClassStudent {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级Id。
|
* 班级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "class_id")
|
@Id
|
||||||
|
@Column(name = "class_id")
|
||||||
private Long classId;
|
private Long classId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生Id。
|
* 学生Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_id")
|
@Id
|
||||||
|
@Column(name = "student_id")
|
||||||
private Long studentId;
|
private Long studentId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.courseclassapi.vo.CourseVo;
|
import com.orange.demo.courseclassapi.vo.CourseVo;
|
||||||
import com.orange.demo.courseclassapi.constant.CourseDifficult;
|
import com.orange.demo.courseclassapi.constant.CourseDifficult;
|
||||||
import com.orange.demo.application.common.constant.Subject;
|
import com.orange.demo.application.common.constant.Subject;
|
||||||
@@ -12,6 +11,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -24,19 +24,20 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_course")
|
@Table(name = "zz_course")
|
||||||
public class Course {
|
public class Course {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "course_id")
|
@Id
|
||||||
|
@Column(name = "course_id")
|
||||||
private Long courseId;
|
private Long courseId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程名称。
|
* 课程名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_name")
|
@Column(name = "course_name")
|
||||||
private String courseName;
|
private String courseName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,86 +58,86 @@ public class Course {
|
|||||||
/**
|
/**
|
||||||
* 年级Id。
|
* 年级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_id")
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学科Id。
|
* 学科Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "subject_id")
|
@Column(name = "subject_id")
|
||||||
private Integer subjectId;
|
private Integer subjectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课时数量。
|
* 课时数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "class_hour")
|
@Column(name = "class_hour")
|
||||||
private Integer classHour;
|
private Integer classHour;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多张课程图片地址。
|
* 多张课程图片地址。
|
||||||
*/
|
*/
|
||||||
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
|
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
|
||||||
@TableField(value = "picture_url")
|
@Column(name = "picture_url")
|
||||||
private String pictureUrl;
|
private String pictureUrl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建用户Id。
|
* 创建用户Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_user_id")
|
@Column(name = "create_user_id")
|
||||||
private Long createUserId;
|
private Long createUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建时间。
|
* 创建时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_time")
|
@Column(name = "create_time")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最后修改时间。
|
* 最后修改时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "update_time")
|
@Column(name = "update_time")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* price 范围过滤起始值(>=)。
|
* price 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private BigDecimal priceStart;
|
private BigDecimal priceStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* price 范围过滤结束值(<=)。
|
* price 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private BigDecimal priceEnd;
|
private BigDecimal priceEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* classHour 范围过滤起始值(>=)。
|
* classHour 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Integer classHourStart;
|
private Integer classHourStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* classHour 范围过滤结束值(<=)。
|
* classHour 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Integer classHourEnd;
|
private Integer classHourEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* updateTime 范围过滤起始值(>=)。
|
* updateTime 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String updateTimeStart;
|
private String updateTimeStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* updateTime 范围过滤结束值(<=)。
|
* updateTime 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String updateTimeEnd;
|
private String updateTimeEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* courseId 的多对多关联表数据对象。
|
* courseId 的多对多关联表数据对象。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private ClassCourse classCourse;
|
private ClassCourse classCourse;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -145,19 +146,19 @@ public class Course {
|
|||||||
slaveModelClass = Grade.class,
|
slaveModelClass = Grade.class,
|
||||||
slaveIdField = "gradeId",
|
slaveIdField = "gradeId",
|
||||||
slaveNameField = "gradeName")
|
slaveNameField = "gradeName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> gradeIdDictMap;
|
private Map<String, Object> gradeIdDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "difficulty",
|
masterIdField = "difficulty",
|
||||||
constantDictClass = CourseDifficult.class)
|
constantDictClass = CourseDifficult.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> difficultyDictMap;
|
private Map<String, Object> difficultyDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "subjectId",
|
masterIdField = "subjectId",
|
||||||
constantDictClass = Subject.class)
|
constantDictClass = Subject.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> subjectIdDictMap;
|
private Map<String, Object> subjectIdDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grade实体对象。
|
* Grade实体对象。
|
||||||
@@ -10,24 +11,26 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_grade")
|
@Table(name = "zz_grade")
|
||||||
public class Grade {
|
public class Grade {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "grade_id", type = IdType.AUTO)
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级名称。
|
* 年级名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_name")
|
@Column(name = "grade_name")
|
||||||
private String gradeName;
|
private String gradeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
private Integer status;
|
private Integer status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MaterialEdition实体对象。
|
* MaterialEdition实体对象。
|
||||||
@@ -10,19 +10,21 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_material_edition")
|
@Table(name = "zz_material_edition")
|
||||||
public class MaterialEdition {
|
public class MaterialEdition {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "edition_id", type = IdType.AUTO)
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "edition_id")
|
||||||
private Integer editionId;
|
private Integer editionId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 教材版本名称。
|
* 教材版本名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "edition_name")
|
@Column(name = "edition_name")
|
||||||
private String editionName;
|
private String editionName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
|
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
|
||||||
import com.orange.demo.common.core.annotation.RelationDict;
|
import com.orange.demo.common.core.annotation.RelationDict;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -17,31 +17,32 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_school_info")
|
@Table(name = "zz_school_info")
|
||||||
public class SchoolInfo {
|
public class SchoolInfo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学校Id。
|
* 学校Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "school_id")
|
@Id
|
||||||
|
@Column(name = "school_id")
|
||||||
private Long schoolId;
|
private Long schoolId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学校名称。
|
* 学校名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "school_name")
|
@Column(name = "school_name")
|
||||||
private String schoolName;
|
private String schoolName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在省Id。
|
* 所在省Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "province_id")
|
@Column(name = "province_id")
|
||||||
private Long provinceId;
|
private Long provinceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在城市Id。
|
* 所在城市Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "city_id")
|
@Column(name = "city_id")
|
||||||
private Long cityId;
|
private Long cityId;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -50,7 +51,7 @@ public class SchoolInfo {
|
|||||||
slaveModelClass = AreaCode.class,
|
slaveModelClass = AreaCode.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> provinceIdDictMap;
|
private Map<String, Object> provinceIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -59,7 +60,7 @@ public class SchoolInfo {
|
|||||||
slaveModelClass = AreaCode.class,
|
slaveModelClass = AreaCode.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> cityIdDictMap;
|
private Map<String, Object> cityIdDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.courseclassapi.vo.StudentVo;
|
import com.orange.demo.courseclassapi.vo.StudentVo;
|
||||||
import com.orange.demo.application.common.constant.Gender;
|
import com.orange.demo.application.common.constant.Gender;
|
||||||
import com.orange.demo.application.common.constant.ExpLevel;
|
import com.orange.demo.application.common.constant.ExpLevel;
|
||||||
@@ -12,6 +11,7 @@ import com.orange.demo.common.core.util.MyCommonUtil;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -23,43 +23,44 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_student")
|
@Table(name = "zz_student")
|
||||||
public class Student {
|
public class Student {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生Id。
|
* 学生Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "student_id")
|
@Id
|
||||||
|
@Column(name = "student_id")
|
||||||
private Long studentId;
|
private Long studentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录手机。
|
* 登录手机。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "login_mobile")
|
@Column(name = "login_mobile")
|
||||||
private String loginMobile;
|
private String loginMobile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生姓名。
|
* 学生姓名。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_name")
|
@Column(name = "student_name")
|
||||||
private String studentName;
|
private String studentName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在省份Id。
|
* 所在省份Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "province_id")
|
@Column(name = "province_id")
|
||||||
private Long provinceId;
|
private Long provinceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在城市Id。
|
* 所在城市Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "city_id")
|
@Column(name = "city_id")
|
||||||
private Long cityId;
|
private Long cityId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 区县Id。
|
* 区县Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "district_id")
|
@Column(name = "district_id")
|
||||||
private Long districtId;
|
private Long districtId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,37 +76,37 @@ public class Student {
|
|||||||
/**
|
/**
|
||||||
* 经验等级 (0: 初级 1: 中级 2: 高级 3: 资深)。
|
* 经验等级 (0: 初级 1: 中级 2: 高级 3: 资深)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "experience_level")
|
@Column(name = "experience_level")
|
||||||
private Integer experienceLevel;
|
private Integer experienceLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总共充值学币数量。
|
* 总共充值学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "total_coin")
|
@Column(name = "total_coin")
|
||||||
private Integer totalCoin;
|
private Integer totalCoin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可用学币数量。
|
* 可用学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "left_coin")
|
@Column(name = "left_coin")
|
||||||
private Integer leftCoin;
|
private Integer leftCoin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级Id。
|
* 年级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_id")
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校区Id。
|
* 校区Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "school_id")
|
@Column(name = "school_id")
|
||||||
private Long schoolId;
|
private Long schoolId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册时间。
|
* 注册时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "register_time")
|
@Column(name = "register_time")
|
||||||
private Date registerTime;
|
private Date registerTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,31 +117,31 @@ public class Student {
|
|||||||
/**
|
/**
|
||||||
* birthday 范围过滤起始值(>=)。
|
* birthday 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String birthdayStart;
|
private String birthdayStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* birthday 范围过滤结束值(<=)。
|
* birthday 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String birthdayEnd;
|
private String birthdayEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* registerTime 范围过滤起始值(>=)。
|
* registerTime 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String registerTimeStart;
|
private String registerTimeStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* registerTime 范围过滤结束值(<=)。
|
* registerTime 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String registerTimeEnd;
|
private String registerTimeEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* true LIKE搜索字符串。
|
* true LIKE搜索字符串。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String searchString;
|
private String searchString;
|
||||||
|
|
||||||
public void setSearchString(String searchString) {
|
public void setSearchString(String searchString) {
|
||||||
@@ -153,7 +154,7 @@ public class Student {
|
|||||||
slaveModelClass = AreaCode.class,
|
slaveModelClass = AreaCode.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> provinceIdDictMap;
|
private Map<String, Object> provinceIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -162,7 +163,7 @@ public class Student {
|
|||||||
slaveModelClass = AreaCode.class,
|
slaveModelClass = AreaCode.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> cityIdDictMap;
|
private Map<String, Object> cityIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -171,7 +172,7 @@ public class Student {
|
|||||||
slaveModelClass = AreaCode.class,
|
slaveModelClass = AreaCode.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> districtIdDictMap;
|
private Map<String, Object> districtIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -180,7 +181,7 @@ public class Student {
|
|||||||
slaveModelClass = Grade.class,
|
slaveModelClass = Grade.class,
|
||||||
slaveIdField = "gradeId",
|
slaveIdField = "gradeId",
|
||||||
slaveNameField = "gradeName")
|
slaveNameField = "gradeName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> gradeIdDictMap;
|
private Map<String, Object> gradeIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -189,25 +190,25 @@ public class Student {
|
|||||||
slaveModelClass = SchoolInfo.class,
|
slaveModelClass = SchoolInfo.class,
|
||||||
slaveIdField = "schoolId",
|
slaveIdField = "schoolId",
|
||||||
slaveNameField = "schoolName")
|
slaveNameField = "schoolName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> schoolIdDictMap;
|
private Map<String, Object> schoolIdDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "gender",
|
masterIdField = "gender",
|
||||||
constantDictClass = Gender.class)
|
constantDictClass = Gender.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> genderDictMap;
|
private Map<String, Object> genderDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "experienceLevel",
|
masterIdField = "experienceLevel",
|
||||||
constantDictClass = ExpLevel.class)
|
constantDictClass = ExpLevel.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> experienceLevelDictMap;
|
private Map<String, Object> experienceLevelDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "status",
|
masterIdField = "status",
|
||||||
constantDictClass = StudentStatus.class)
|
constantDictClass = StudentStatus.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> statusDictMap;
|
private Map<String, Object> statusDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
package com.orange.demo.courseclassservice.model;
|
package com.orange.demo.courseclassservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.courseclassapi.vo.StudentClassVo;
|
import com.orange.demo.courseclassapi.vo.StudentClassVo;
|
||||||
import com.orange.demo.courseclassapi.constant.ClassLevel;
|
import com.orange.demo.courseclassapi.constant.ClassLevel;
|
||||||
import com.orange.demo.common.core.annotation.RelationDict;
|
import com.orange.demo.common.core.annotation.RelationDict;
|
||||||
import com.orange.demo.common.core.annotation.RelationConstDict;
|
import com.orange.demo.common.core.annotation.RelationConstDict;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -20,61 +21,62 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_class")
|
@Table(name = "zz_class")
|
||||||
public class StudentClass {
|
public class StudentClass {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级Id。
|
* 班级Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "class_id")
|
@Id
|
||||||
|
@Column(name = "class_id")
|
||||||
private Long classId;
|
private Long classId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级名称。
|
* 班级名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "class_name")
|
@Column(name = "class_name")
|
||||||
private String className;
|
private String className;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学校Id。
|
* 学校Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "school_id")
|
@Column(name = "school_id")
|
||||||
private Long schoolId;
|
private Long schoolId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生班长Id。
|
* 学生班长Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "leader_id")
|
@Column(name = "leader_id")
|
||||||
private Long leaderId;
|
private Long leaderId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 已完成课时数量。
|
* 已完成课时数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "finish_class_hour")
|
@Column(name = "finish_class_hour")
|
||||||
private Integer finishClassHour;
|
private Integer finishClassHour;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级级别(0: 初级班 1: 培优班 2: 冲刺提分班 3: 竞赛班)。
|
* 班级级别(0: 初级班 1: 培优班 2: 冲刺提分班 3: 竞赛班)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "class_level")
|
@Column(name = "class_level")
|
||||||
private Integer classLevel;
|
private Integer classLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建用户。
|
* 创建用户。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_user_id")
|
@Column(name = "create_user_id")
|
||||||
private Long createUserId;
|
private Long createUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 班级创建时间。
|
* 班级创建时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_time")
|
@Column(name = "create_time")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -83,7 +85,7 @@ public class StudentClass {
|
|||||||
slaveModelClass = SchoolInfo.class,
|
slaveModelClass = SchoolInfo.class,
|
||||||
slaveIdField = "schoolId",
|
slaveIdField = "schoolId",
|
||||||
slaveNameField = "schoolName")
|
slaveNameField = "schoolName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> schoolIdDictMap;
|
private Map<String, Object> schoolIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -92,13 +94,13 @@ public class StudentClass {
|
|||||||
slaveModelClass = Student.class,
|
slaveModelClass = Student.class,
|
||||||
slaveIdField = "studentId",
|
slaveIdField = "studentId",
|
||||||
slaveNameField = "studentName")
|
slaveNameField = "studentName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> leaderIdDictMap;
|
private Map<String, Object> leaderIdDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "classLevel",
|
masterIdField = "classLevel",
|
||||||
constantDictClass = ClassLevel.class)
|
constantDictClass = ClassLevel.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> classLevelDictMap;
|
private Map<String, Object> classLevelDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.service.impl;
|
package com.orange.demo.courseclassservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.courseclassservice.service.*;
|
import com.orange.demo.courseclassservice.service.*;
|
||||||
import com.orange.demo.courseclassservice.dao.*;
|
import com.orange.demo.courseclassservice.dao.*;
|
||||||
import com.orange.demo.courseclassservice.model.*;
|
import com.orange.demo.courseclassservice.model.*;
|
||||||
@@ -82,8 +80,7 @@ public class CourseServiceImpl extends BaseService<Course, Long> implements Cour
|
|||||||
course.setCreateTime(originalCourse.getCreateTime());
|
course.setCreateTime(originalCourse.getCreateTime());
|
||||||
course.setUpdateTime(new Date());
|
course.setUpdateTime(new Date());
|
||||||
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
||||||
UpdateWrapper<Course> uw = this.createUpdateQueryForNullValue(course, course.getCourseId());
|
return courseMapper.updateByPrimaryKey(course) == 1;
|
||||||
return courseMapper.update(course, uw) == 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -95,13 +92,14 @@ public class CourseServiceImpl extends BaseService<Course, Long> implements Cour
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long courseId) {
|
public boolean remove(Long courseId) {
|
||||||
if (courseMapper.deleteById(courseId) == 0) {
|
// 这里先删除主数据
|
||||||
|
if (!this.removeById(courseId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// 开始删除与本地多对多父表的关联
|
// 开始删除与本地多对多父表的关联
|
||||||
ClassCourse classCourse = new ClassCourse();
|
ClassCourse classCourse = new ClassCourse();
|
||||||
classCourse.setCourseId(courseId);
|
classCourse.setCourseId(courseId);
|
||||||
classCourseMapper.delete(new QueryWrapper<>(classCourse));
|
classCourseMapper.delete(classCourse);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.service.impl;
|
package com.orange.demo.courseclassservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.courseclassservice.service.*;
|
import com.orange.demo.courseclassservice.service.*;
|
||||||
import com.orange.demo.courseclassservice.dao.*;
|
import com.orange.demo.courseclassservice.dao.*;
|
||||||
import com.orange.demo.courseclassservice.model.*;
|
import com.orange.demo.courseclassservice.model.*;
|
||||||
@@ -70,8 +69,7 @@ public class SchoolInfoServiceImpl extends BaseService<SchoolInfo, Long> impleme
|
|||||||
@Override
|
@Override
|
||||||
public boolean update(SchoolInfo schoolInfo, SchoolInfo originalSchoolInfo) {
|
public boolean update(SchoolInfo schoolInfo, SchoolInfo originalSchoolInfo) {
|
||||||
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
||||||
UpdateWrapper<SchoolInfo> uw = this.createUpdateQueryForNullValue(schoolInfo, schoolInfo.getSchoolId());
|
return schoolInfoMapper.updateByPrimaryKey(schoolInfo) == 1;
|
||||||
return schoolInfoMapper.update(schoolInfo, uw) == 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,7 +81,8 @@ public class SchoolInfoServiceImpl extends BaseService<SchoolInfo, Long> impleme
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long schoolId) {
|
public boolean remove(Long schoolId) {
|
||||||
return schoolInfoMapper.deleteById(schoolId) == 1;
|
// 这里先删除主数据
|
||||||
|
return this.removeById(schoolId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.service.impl;
|
package com.orange.demo.courseclassservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.courseclassservice.service.*;
|
import com.orange.demo.courseclassservice.service.*;
|
||||||
import com.orange.demo.courseclassservice.dao.*;
|
import com.orange.demo.courseclassservice.dao.*;
|
||||||
import com.orange.demo.courseclassservice.model.*;
|
import com.orange.demo.courseclassservice.model.*;
|
||||||
@@ -18,6 +16,7 @@ import com.github.pagehelper.Page;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -84,9 +83,9 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
public boolean update(StudentClass studentClass, StudentClass originalStudentClass) {
|
public boolean update(StudentClass studentClass, StudentClass originalStudentClass) {
|
||||||
studentClass.setCreateUserId(originalStudentClass.getCreateUserId());
|
studentClass.setCreateUserId(originalStudentClass.getCreateUserId());
|
||||||
studentClass.setCreateTime(originalStudentClass.getCreateTime());
|
studentClass.setCreateTime(originalStudentClass.getCreateTime());
|
||||||
|
studentClass.setStatus(GlobalDeletedFlag.NORMAL);
|
||||||
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
||||||
UpdateWrapper<StudentClass> uw = this.createUpdateQueryForNullValue(studentClass, studentClass.getClassId());
|
return studentClassMapper.updateByPrimaryKey(studentClass) == 1;
|
||||||
return studentClassMapper.update(studentClass, uw) == 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,16 +97,17 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long classId) {
|
public boolean remove(Long classId) {
|
||||||
if (studentClassMapper.deleteById(classId) == 0) {
|
// 这里先删除主数据
|
||||||
|
if (!this.removeById(classId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// 开始删除多对多中间表的关联
|
// 开始删除多对多中间表的关联
|
||||||
ClassCourse classCourse = new ClassCourse();
|
ClassCourse classCourse = new ClassCourse();
|
||||||
classCourse.setClassId(classId);
|
classCourse.setClassId(classId);
|
||||||
classCourseMapper.delete(new QueryWrapper<>(classCourse));
|
classCourseMapper.delete(classCourse);
|
||||||
ClassStudent classStudent = new ClassStudent();
|
ClassStudent classStudent = new ClassStudent();
|
||||||
classStudent.setClassId(classId);
|
classStudent.setClassId(classId);
|
||||||
classStudentMapper.delete(new QueryWrapper<>(classStudent));
|
classStudentMapper.delete(classStudent);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,8 +197,8 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
for (ClassCourse classCourse : classCourseList) {
|
for (ClassCourse classCourse : classCourseList) {
|
||||||
classCourse.setClassId(classId);
|
classCourse.setClassId(classId);
|
||||||
MyModelUtil.setDefaultValue(classCourse, "courseOrder", 0);
|
MyModelUtil.setDefaultValue(classCourse, "courseOrder", 0);
|
||||||
classCourseMapper.insert(classCourse);
|
|
||||||
}
|
}
|
||||||
|
classCourseMapper.insertList(classCourseList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -210,13 +210,11 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean updateClassCourse(ClassCourse classCourse) {
|
public boolean updateClassCourse(ClassCourse classCourse) {
|
||||||
ClassCourse filter = new ClassCourse();
|
Example e = new Example(ClassCourse.class);
|
||||||
filter.setClassId(classCourse.getClassId());
|
e.createCriteria()
|
||||||
filter.setCourseId(classCourse.getCourseId());
|
.andEqualTo("classId", classCourse.getClassId())
|
||||||
UpdateWrapper<ClassCourse> uw =
|
.andEqualTo("courseId", classCourse.getCourseId());
|
||||||
BaseService.createUpdateQueryForNullValue(classCourse, ClassCourse.class);
|
return classCourseMapper.updateByExample(classCourse, e) > 0;
|
||||||
uw.setEntity(filter);
|
|
||||||
return classCourseMapper.update(classCourse, uw) > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -228,10 +226,11 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ClassCourse getClassCourse(Long classId, Long courseId) {
|
public ClassCourse getClassCourse(Long classId, Long courseId) {
|
||||||
ClassCourse filter = new ClassCourse();
|
Example e = new Example(ClassCourse.class);
|
||||||
filter.setClassId(classId);
|
e.createCriteria()
|
||||||
filter.setCourseId(courseId);
|
.andEqualTo("classId", classId)
|
||||||
return classCourseMapper.selectOne(new QueryWrapper<>(filter));
|
.andEqualTo("courseId", courseId);
|
||||||
|
return classCourseMapper.selectOneByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -247,7 +246,7 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
ClassCourse filter = new ClassCourse();
|
ClassCourse filter = new ClassCourse();
|
||||||
filter.setClassId(classId);
|
filter.setClassId(classId);
|
||||||
filter.setCourseId(courseId);
|
filter.setCourseId(courseId);
|
||||||
return classCourseMapper.delete(new QueryWrapper<>(filter)) > 0;
|
return classCourseMapper.delete(filter) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -261,8 +260,8 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
public void addClassStudentList(List<ClassStudent> classStudentList, Long classId) {
|
public void addClassStudentList(List<ClassStudent> classStudentList, Long classId) {
|
||||||
for (ClassStudent classStudent : classStudentList) {
|
for (ClassStudent classStudent : classStudentList) {
|
||||||
classStudent.setClassId(classId);
|
classStudent.setClassId(classId);
|
||||||
classStudentMapper.insert(classStudent);
|
|
||||||
}
|
}
|
||||||
|
classStudentMapper.insertList(classStudentList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,7 +277,7 @@ public class StudentClassServiceImpl extends BaseService<StudentClass, Long> imp
|
|||||||
ClassStudent filter = new ClassStudent();
|
ClassStudent filter = new ClassStudent();
|
||||||
filter.setClassId(classId);
|
filter.setClassId(classId);
|
||||||
filter.setStudentId(studentId);
|
filter.setStudentId(studentId);
|
||||||
return classStudentMapper.delete(new QueryWrapper<>(filter)) > 0;
|
return classStudentMapper.delete(filter) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.orange.demo.courseclassservice.service.impl;
|
package com.orange.demo.courseclassservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.application.common.constant.StudentStatus;
|
import com.orange.demo.application.common.constant.StudentStatus;
|
||||||
import com.orange.demo.courseclassservice.service.*;
|
import com.orange.demo.courseclassservice.service.*;
|
||||||
import com.orange.demo.courseclassservice.dao.*;
|
import com.orange.demo.courseclassservice.dao.*;
|
||||||
@@ -81,8 +79,7 @@ public class StudentServiceImpl extends BaseService<Student, Long> implements St
|
|||||||
@Override
|
@Override
|
||||||
public boolean update(Student student, Student originalStudent) {
|
public boolean update(Student student, Student originalStudent) {
|
||||||
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
||||||
UpdateWrapper<Student> uw = this.createUpdateQueryForNullValue(student, student.getStudentId());
|
return studentMapper.updateByPrimaryKey(student) == 1;
|
||||||
return studentMapper.update(student, uw) == 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -94,13 +91,14 @@ public class StudentServiceImpl extends BaseService<Student, Long> implements St
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long studentId) {
|
public boolean remove(Long studentId) {
|
||||||
if (studentMapper.deleteById(studentId) == 0) {
|
// 这里先删除主数据
|
||||||
|
if (!this.removeById(studentId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// 开始删除与本地多对多父表的关联
|
// 开始删除与本地多对多父表的关联
|
||||||
ClassStudent classStudent = new ClassStudent();
|
ClassStudent classStudent = new ClassStudent();
|
||||||
classStudent.setStudentId(studentId);
|
classStudent.setStudentId(studentId);
|
||||||
classStudentMapper.delete(new QueryWrapper<>(classStudent));
|
classStudentMapper.delete(classStudent);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,21 +110,23 @@
|
|||||||
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" 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: stax:stax-api:1.0.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
|
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
@@ -178,6 +180,7 @@
|
|||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.10.RELEASE" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" 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.31" level="project" />
|
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.14.RELEASE" level="project" />
|
||||||
|
|||||||
@@ -65,20 +65,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -25,6 +25,11 @@
|
|||||||
<artifactId>course-class-api</artifactId>
|
<artifactId>course-class-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.orange.demo</groupId>
|
||||||
|
<artifactId>common-log</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.orange.demo</groupId>
|
<groupId>com.orange.demo</groupId>
|
||||||
<artifactId>common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import tk.mybatis.spring.annotation.MapperScan;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.statsservice.model;
|
package com.orange.demo.statsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.statsapi.vo.CourseTransStatsVo;
|
import com.orange.demo.statsapi.vo.CourseTransStatsVo;
|
||||||
import com.orange.demo.courseclassapi.vo.CourseVo;
|
import com.orange.demo.courseclassapi.vo.CourseVo;
|
||||||
import com.orange.demo.courseclassapi.client.CourseClient;
|
import com.orange.demo.courseclassapi.client.CourseClient;
|
||||||
@@ -13,6 +12,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -24,79 +24,81 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_course_trans_stats")
|
@Table(name = "zz_course_trans_stats")
|
||||||
public class CourseTransStats {
|
public class CourseTransStats {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "stats_id", type = IdType.AUTO)
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "stats_id")
|
||||||
private Long statsId;
|
private Long statsId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计日期。
|
* 统计日期。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "stats_date")
|
@Column(name = "stats_date")
|
||||||
private Date statsDate;
|
private Date statsDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 科目Id。
|
* 科目Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "subject_id")
|
@Column(name = "subject_id")
|
||||||
private Integer subjectId;
|
private Integer subjectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级Id。
|
* 年级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_id")
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级名称。
|
* 年级名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_name")
|
@Column(name = "grade_name")
|
||||||
private String gradeName;
|
private String gradeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程Id。
|
* 课程Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_id")
|
@Column(name = "course_id")
|
||||||
private Long courseId;
|
private Long courseId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 课程名称。
|
* 课程名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_name")
|
@Column(name = "course_name")
|
||||||
private String courseName;
|
private String courseName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生上课次数。
|
* 学生上课次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_attend_count")
|
@Column(name = "student_attend_count")
|
||||||
private Integer studentAttendCount;
|
private Integer studentAttendCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生献花数量。
|
* 学生献花数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_flower_amount")
|
@Column(name = "student_flower_amount")
|
||||||
private Integer studentFlowerAmount;
|
private Integer studentFlowerAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生献花次数。
|
* 学生献花次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_flower_count")
|
@Column(name = "student_flower_count")
|
||||||
private Integer studentFlowerCount;
|
private Integer studentFlowerCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* statsDate 范围过滤起始值(>=)。
|
* statsDate 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String statsDateStart;
|
private String statsDateStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* statsDate 范围过滤结束值(<=)。
|
* statsDate 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String statsDateEnd;
|
private String statsDateEnd;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -105,7 +107,7 @@ public class CourseTransStats {
|
|||||||
slaveModelClass = GradeVo.class,
|
slaveModelClass = GradeVo.class,
|
||||||
slaveIdField = "gradeId",
|
slaveIdField = "gradeId",
|
||||||
slaveNameField = "gradeName")
|
slaveNameField = "gradeName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> gradeIdDictMap;
|
private Map<String, Object> gradeIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -114,13 +116,13 @@ public class CourseTransStats {
|
|||||||
slaveModelClass = CourseVo.class,
|
slaveModelClass = CourseVo.class,
|
||||||
slaveIdField = "courseId",
|
slaveIdField = "courseId",
|
||||||
slaveNameField = "courseName")
|
slaveNameField = "courseName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> courseIdDictMap;
|
private Map<String, Object> courseIdDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "subjectId",
|
masterIdField = "subjectId",
|
||||||
constantDictClass = Subject.class)
|
constantDictClass = Subject.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> subjectIdDictMap;
|
private Map<String, Object> subjectIdDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package com.orange.demo.statsservice.model;
|
package com.orange.demo.statsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grade实体对象。
|
* Grade实体对象。
|
||||||
@@ -10,24 +11,26 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_grade")
|
@Table(name = "zz_grade")
|
||||||
public class Grade {
|
public class Grade {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "grade_id", type = IdType.AUTO)
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级名称。
|
* 年级名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_name")
|
@Column(name = "grade_name")
|
||||||
private String gradeName;
|
private String gradeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
private Integer status;
|
private Integer status;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.orange.demo.statsservice.model;
|
package com.orange.demo.statsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SchoolInfo实体对象。
|
* SchoolInfo实体对象。
|
||||||
@@ -10,30 +10,31 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_school_info")
|
@Table(name = "zz_school_info")
|
||||||
public class SchoolInfo {
|
public class SchoolInfo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学校Id。
|
* 学校Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "school_id")
|
@Id
|
||||||
|
@Column(name = "school_id")
|
||||||
private Long schoolId;
|
private Long schoolId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学校名称。
|
* 学校名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "school_name")
|
@Column(name = "school_name")
|
||||||
private String schoolName;
|
private String schoolName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在省Id。
|
* 所在省Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "province_id")
|
@Column(name = "province_id")
|
||||||
private Long provinceId;
|
private Long provinceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所在城市Id。
|
* 所在城市Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "city_id")
|
@Column(name = "city_id")
|
||||||
private Long cityId;
|
private Long cityId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.statsservice.model;
|
package com.orange.demo.statsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.statsapi.vo.StudentActionStatsVo;
|
import com.orange.demo.statsapi.vo.StudentActionStatsVo;
|
||||||
import com.orange.demo.courseclassapi.vo.AreaCodeVo;
|
import com.orange.demo.courseclassapi.vo.AreaCodeVo;
|
||||||
import com.orange.demo.courseclassapi.vo.GradeVo;
|
import com.orange.demo.courseclassapi.vo.GradeVo;
|
||||||
@@ -11,6 +10,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -22,145 +22,146 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_student_action_stats")
|
@Table(name = "zz_student_action_stats")
|
||||||
public class StudentActionStats {
|
public class StudentActionStats {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "stats_id")
|
@Id
|
||||||
|
@Column(name = "stats_id")
|
||||||
private Long statsId;
|
private Long statsId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计日期。
|
* 统计日期。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "stats_date")
|
@Column(name = "stats_date")
|
||||||
private Date statsDate;
|
private Date statsDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计小时。
|
* 统计小时。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "stats_month")
|
@Column(name = "stats_month")
|
||||||
private Date statsMonth;
|
private Date statsMonth;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级Id。
|
* 年级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_id")
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生所在省Id。
|
* 学生所在省Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "province_id")
|
@Column(name = "province_id")
|
||||||
private Long provinceId;
|
private Long provinceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生所在城市Id。
|
* 学生所在城市Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "city_id")
|
@Column(name = "city_id")
|
||||||
private Long cityId;
|
private Long cityId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购课学币数量。
|
* 购课学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_course_amount")
|
@Column(name = "buy_course_amount")
|
||||||
private Integer buyCourseAmount;
|
private Integer buyCourseAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买课程次数。
|
* 购买课程次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_course_count")
|
@Column(name = "buy_course_count")
|
||||||
private Integer buyCourseCount;
|
private Integer buyCourseCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买视频学币数量。
|
* 购买视频学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_video_amount")
|
@Column(name = "buy_video_amount")
|
||||||
private Integer buyVideoAmount;
|
private Integer buyVideoAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买视频次数。
|
* 购买视频次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_video_count")
|
@Column(name = "buy_video_count")
|
||||||
private Integer buyVideoCount;
|
private Integer buyVideoCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买作业学币数量。
|
* 购买作业学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_paper_amount")
|
@Column(name = "buy_paper_amount")
|
||||||
private Integer buyPaperAmount;
|
private Integer buyPaperAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买作业次数。
|
* 购买作业次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_paper_count")
|
@Column(name = "buy_paper_count")
|
||||||
private Integer buyPaperCount;
|
private Integer buyPaperCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买献花数量。
|
* 购买献花数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_flower_amount")
|
@Column(name = "buy_flower_amount")
|
||||||
private Integer buyFlowerAmount;
|
private Integer buyFlowerAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买献花次数。
|
* 购买献花次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "buy_flower_count")
|
@Column(name = "buy_flower_count")
|
||||||
private Integer buyFlowerCount;
|
private Integer buyFlowerCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充值学币数量。
|
* 充值学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "recharge_coin_amount")
|
@Column(name = "recharge_coin_amount")
|
||||||
private Integer rechargeCoinAmount;
|
private Integer rechargeCoinAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充值学币次数。
|
* 充值学币次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "recharge_coin_count")
|
@Column(name = "recharge_coin_count")
|
||||||
private Integer rechargeCoinCount;
|
private Integer rechargeCoinCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 线下课程上课次数。
|
* 线下课程上课次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "do_course_count")
|
@Column(name = "do_course_count")
|
||||||
private Integer doCourseCount;
|
private Integer doCourseCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 观看视频次数。
|
* 观看视频次数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "watch_video_count")
|
@Column(name = "watch_video_count")
|
||||||
private Integer watchVideoCount;
|
private Integer watchVideoCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买献花消费学币数量。
|
* 购买献花消费学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "watch_video_total_second")
|
@Column(name = "watch_video_total_second")
|
||||||
private Integer watchVideoTotalSecond;
|
private Integer watchVideoTotalSecond;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 做题数量。
|
* 做题数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "do_exercise_count")
|
@Column(name = "do_exercise_count")
|
||||||
private Integer doExerciseCount;
|
private Integer doExerciseCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 做题正确的数量。
|
* 做题正确的数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "do_exercise_correct_count")
|
@Column(name = "do_exercise_correct_count")
|
||||||
private Integer doExerciseCorrectCount;
|
private Integer doExerciseCorrectCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* statsDate 范围过滤起始值(>=)。
|
* statsDate 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String statsDateStart;
|
private String statsDateStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* statsDate 范围过滤结束值(<=)。
|
* statsDate 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String statsDateEnd;
|
private String statsDateEnd;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -169,7 +170,7 @@ public class StudentActionStats {
|
|||||||
slaveModelClass = GradeVo.class,
|
slaveModelClass = GradeVo.class,
|
||||||
slaveIdField = "gradeId",
|
slaveIdField = "gradeId",
|
||||||
slaveNameField = "gradeName")
|
slaveNameField = "gradeName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> gradeIdDictMap;
|
private Map<String, Object> gradeIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -178,7 +179,7 @@ public class StudentActionStats {
|
|||||||
slaveModelClass = AreaCodeVo.class,
|
slaveModelClass = AreaCodeVo.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> provinceIdDictMap;
|
private Map<String, Object> provinceIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -187,7 +188,7 @@ public class StudentActionStats {
|
|||||||
slaveModelClass = AreaCodeVo.class,
|
slaveModelClass = AreaCodeVo.class,
|
||||||
slaveIdField = "areaId",
|
slaveIdField = "areaId",
|
||||||
slaveNameField = "areaName")
|
slaveNameField = "areaName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> cityIdDictMap;
|
private Map<String, Object> cityIdDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.statsservice.model;
|
package com.orange.demo.statsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.statsapi.vo.StudentActionTransVo;
|
import com.orange.demo.statsapi.vo.StudentActionTransVo;
|
||||||
import com.orange.demo.courseclassapi.client.SchoolInfoClient;
|
import com.orange.demo.courseclassapi.client.SchoolInfoClient;
|
||||||
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
|
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
|
||||||
@@ -14,6 +13,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -25,109 +25,110 @@ import java.util.Map;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_student_action_trans")
|
@Table(name = "zz_student_action_trans")
|
||||||
public class StudentActionTrans {
|
public class StudentActionTrans {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "trans_id")
|
@Id
|
||||||
|
@Column(name = "trans_id")
|
||||||
private Long transId;
|
private Long transId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生Id。
|
* 学生Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_id")
|
@Column(name = "student_id")
|
||||||
private Long studentId;
|
private Long studentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生名称。
|
* 学生名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "student_name")
|
@Column(name = "student_name")
|
||||||
private String studentName;
|
private String studentName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生校区。
|
* 学生校区。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "school_id")
|
@Column(name = "school_id")
|
||||||
private Long schoolId;
|
private Long schoolId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 年级Id。
|
* 年级Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "grade_id")
|
@Column(name = "grade_id")
|
||||||
private Integer gradeId;
|
private Integer gradeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 行为类型(0: 充值 1: 购课 2: 上课签到 3: 上课签退 4: 看视频课 5: 做作业 6: 刷题 7: 献花)。
|
* 行为类型(0: 充值 1: 购课 2: 上课签到 3: 上课签退 4: 看视频课 5: 做作业 6: 刷题 7: 献花)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "action_type")
|
@Column(name = "action_type")
|
||||||
private Integer actionType;
|
private Integer actionType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备类型(0: iOS 1: Android 2: PC)。
|
* 设备类型(0: iOS 1: Android 2: PC)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "device_type")
|
@Column(name = "device_type")
|
||||||
private Integer deviceType;
|
private Integer deviceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 看视频秒数。
|
* 看视频秒数。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "watch_video_seconds")
|
@Column(name = "watch_video_seconds")
|
||||||
private Integer watchVideoSeconds;
|
private Integer watchVideoSeconds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买献花数量。
|
* 购买献花数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "flower_count")
|
@Column(name = "flower_count")
|
||||||
private Integer flowerCount;
|
private Integer flowerCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买作业数量。
|
* 购买作业数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "paper_count")
|
@Column(name = "paper_count")
|
||||||
private Integer paperCount;
|
private Integer paperCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买视频数量。
|
* 购买视频数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "video_count")
|
@Column(name = "video_count")
|
||||||
private Integer videoCount;
|
private Integer videoCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买课程数量。
|
* 购买课程数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "course_count")
|
@Column(name = "course_count")
|
||||||
private Integer courseCount;
|
private Integer courseCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 充值学币数量。
|
* 充值学币数量。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "coin_count")
|
@Column(name = "coin_count")
|
||||||
private Integer coinCount;
|
private Integer coinCount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 做题是否正确标记。
|
* 做题是否正确标记。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "exercise_correct_flag")
|
@Column(name = "exercise_correct_flag")
|
||||||
private Integer exerciseCorrectFlag;
|
private Integer exerciseCorrectFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发生时间。
|
* 发生时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_time")
|
@Column(name = "create_time")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* createTime 范围过滤起始值(>=)。
|
* createTime 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String createTimeStart;
|
private String createTimeStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* createTime 范围过滤结束值(<=)。
|
* createTime 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String createTimeEnd;
|
private String createTimeEnd;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -136,7 +137,7 @@ public class StudentActionTrans {
|
|||||||
slaveModelClass = SchoolInfoVo.class,
|
slaveModelClass = SchoolInfoVo.class,
|
||||||
slaveIdField = "schoolId",
|
slaveIdField = "schoolId",
|
||||||
slaveNameField = "schoolName")
|
slaveNameField = "schoolName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> schoolIdDictMap;
|
private Map<String, Object> schoolIdDictMap;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -145,19 +146,19 @@ public class StudentActionTrans {
|
|||||||
slaveModelClass = GradeVo.class,
|
slaveModelClass = GradeVo.class,
|
||||||
slaveIdField = "gradeId",
|
slaveIdField = "gradeId",
|
||||||
slaveNameField = "gradeName")
|
slaveNameField = "gradeName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> gradeIdDictMap;
|
private Map<String, Object> gradeIdDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "actionType",
|
masterIdField = "actionType",
|
||||||
constantDictClass = StudentActionType.class)
|
constantDictClass = StudentActionType.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> actionTypeDictMap;
|
private Map<String, Object> actionTypeDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "deviceType",
|
masterIdField = "deviceType",
|
||||||
constantDictClass = DeviceType.class)
|
constantDictClass = DeviceType.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> deviceTypeDictMap;
|
private Map<String, Object> deviceTypeDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.statsservice.service.impl;
|
package com.orange.demo.statsservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.statsservice.service.*;
|
import com.orange.demo.statsservice.service.*;
|
||||||
import com.orange.demo.statsservice.dao.*;
|
import com.orange.demo.statsservice.dao.*;
|
||||||
import com.orange.demo.statsservice.model.*;
|
import com.orange.demo.statsservice.model.*;
|
||||||
@@ -76,8 +75,7 @@ public class StudentActionTransServiceImpl extends BaseService<StudentActionTran
|
|||||||
public boolean update(StudentActionTrans studentActionTrans, StudentActionTrans originalStudentActionTrans) {
|
public boolean update(StudentActionTrans studentActionTrans, StudentActionTrans originalStudentActionTrans) {
|
||||||
studentActionTrans.setCreateTime(originalStudentActionTrans.getCreateTime());
|
studentActionTrans.setCreateTime(originalStudentActionTrans.getCreateTime());
|
||||||
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
|
||||||
UpdateWrapper<StudentActionTrans> uw = this.createUpdateQueryForNullValue(studentActionTrans, studentActionTrans.getTransId());
|
return studentActionTransMapper.updateByPrimaryKey(studentActionTrans) == 1;
|
||||||
return studentActionTransMapper.update(studentActionTrans, uw) == 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -89,7 +87,8 @@ public class StudentActionTransServiceImpl extends BaseService<StudentActionTran
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long transId) {
|
public boolean remove(Long transId) {
|
||||||
return studentActionTransMapper.deleteById(transId) == 1;
|
// 这里先删除主数据
|
||||||
|
return this.removeById(transId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -64,20 +64,23 @@
|
|||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
@@ -100,6 +103,7 @@
|
|||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
||||||
<orderEntry type="module" module-name="course-class-api" />
|
<orderEntry type="module" module-name="course-class-api" />
|
||||||
|
<orderEntry type="library" name="Maven: com.orange.demo:common-log:1.0.0" level="project" />
|
||||||
<orderEntry type="module" module-name="common-redis" />
|
<orderEntry type="module" module-name="common-redis" />
|
||||||
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
||||||
|
|||||||
@@ -64,20 +64,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -20,6 +20,11 @@
|
|||||||
<artifactId>upms-api</artifactId>
|
<artifactId>upms-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.orange.demo</groupId>
|
||||||
|
<artifactId>common-log</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.orange.demo</groupId>
|
<groupId>com.orange.demo</groupId>
|
||||||
<artifactId>common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import tk.mybatis.spring.annotation.MapperScan;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ import com.orange.demo.common.core.util.*;
|
|||||||
import com.orange.demo.common.redis.cache.SessionCacheHelper;
|
import com.orange.demo.common.redis.cache.SessionCacheHelper;
|
||||||
import com.orange.demo.upmsapi.constant.SysUserStatus;
|
import com.orange.demo.upmsapi.constant.SysUserStatus;
|
||||||
import com.orange.demo.upmsapi.constant.SysUserType;
|
import com.orange.demo.upmsapi.constant.SysUserType;
|
||||||
import com.orange.demo.upmsservice.model.SysMenu;
|
import com.orange.demo.upmsservice.model.*;
|
||||||
import com.orange.demo.upmsservice.model.SysUser;
|
|
||||||
import com.orange.demo.upmsservice.service.*;
|
import com.orange.demo.upmsservice.service.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
@@ -165,9 +164,10 @@ public class LoginController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private JSONObject buildLoginData(SysUser user) {
|
private JSONObject buildLoginData(SysUser user) {
|
||||||
|
int deviceType = MyCommonUtil.getDeviceType();
|
||||||
boolean isAdmin = user.getUserType() == SysUserType.TYPE_ADMIN;
|
boolean isAdmin = user.getUserType() == SysUserType.TYPE_ADMIN;
|
||||||
TokenData tokenData = new TokenData();
|
TokenData tokenData = new TokenData();
|
||||||
String sessionId = user.getLoginName() + "_" + MyCommonUtil.generateUuid();
|
String sessionId = user.getLoginName() + "_" + deviceType + "_" + MyCommonUtil.generateUuid();
|
||||||
tokenData.setUserId(user.getUserId());
|
tokenData.setUserId(user.getUserId());
|
||||||
tokenData.setIsAdmin(isAdmin);
|
tokenData.setIsAdmin(isAdmin);
|
||||||
tokenData.setLoginName(user.getLoginName());
|
tokenData.setLoginName(user.getLoginName());
|
||||||
@@ -175,6 +175,7 @@ public class LoginController {
|
|||||||
tokenData.setSessionId(sessionId);
|
tokenData.setSessionId(sessionId);
|
||||||
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
|
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
|
||||||
tokenData.setLoginTime(new Date());
|
tokenData.setLoginTime(new Date());
|
||||||
|
tokenData.setDeviceType(deviceType);
|
||||||
// 这里手动将TokenData存入request,便于OperationLogAspect统一处理操作日志。
|
// 这里手动将TokenData存入request,便于OperationLogAspect统一处理操作日志。
|
||||||
TokenData.addToRequest(tokenData);
|
TokenData.addToRequest(tokenData);
|
||||||
JSONObject jsonData = new JSONObject();
|
JSONObject jsonData = new JSONObject();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.orange.demo.upmsservice.controller;
|
package com.orange.demo.upmsservice.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.TypeReference;
|
||||||
import com.github.pagehelper.page.PageMethod;
|
import com.github.pagehelper.page.PageMethod;
|
||||||
import com.orange.demo.upmsservice.model.*;
|
import com.orange.demo.upmsservice.model.*;
|
||||||
import com.orange.demo.upmsservice.service.*;
|
import com.orange.demo.upmsservice.service.*;
|
||||||
@@ -52,7 +53,6 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
|
|||||||
* @param roleIdListString 逗号分隔的角色Id列表。
|
* @param roleIdListString 逗号分隔的角色Id列表。
|
||||||
* @return 应答结果对象,包含新增用户的主键Id。
|
* @return 应答结果对象,包含新增用户的主键Id。
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@ApiOperationSupport(ignoreParameters = {
|
@ApiOperationSupport(ignoreParameters = {
|
||||||
"sysUserDto.userId",
|
"sysUserDto.userId",
|
||||||
"sysUserDto.createTimeStart",
|
"sysUserDto.createTimeStart",
|
||||||
@@ -65,11 +65,12 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
|
|||||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
|
||||||
}
|
}
|
||||||
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
|
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
|
||||||
CallResult result = sysUserService.verifyRelatedData(sysUser, null, roleIdListString);
|
CallResult result = sysUserService.verifyRelatedData(
|
||||||
|
sysUser, null, roleIdListString);
|
||||||
if (!result.isSuccess()) {
|
if (!result.isSuccess()) {
|
||||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
||||||
}
|
}
|
||||||
Set<Long> roleIdSet = (Set<Long>) result.getData().get("roleIdSet");
|
Set<Long> roleIdSet = result.getData().getObject("roleIdSet", new TypeReference<Set<Long>>() {});
|
||||||
sysUserService.saveNew(sysUser, roleIdSet);
|
sysUserService.saveNew(sysUser, roleIdSet);
|
||||||
return ResponseResult.success(sysUser.getUserId());
|
return ResponseResult.success(sysUser.getUserId());
|
||||||
}
|
}
|
||||||
@@ -81,7 +82,6 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
|
|||||||
* @param roleIdListString 逗号分隔的角色Id列表。
|
* @param roleIdListString 逗号分隔的角色Id列表。
|
||||||
* @return 应答结果对象。
|
* @return 应答结果对象。
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@ApiOperationSupport(ignoreParameters = {
|
@ApiOperationSupport(ignoreParameters = {
|
||||||
"sysUserDto.createTimeStart",
|
"sysUserDto.createTimeStart",
|
||||||
"sysUserDto.createTimeEnd"})
|
"sysUserDto.createTimeEnd"})
|
||||||
@@ -97,11 +97,12 @@ public class SysUserController extends BaseController<SysUser, SysUserVo, Long>
|
|||||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||||
}
|
}
|
||||||
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
|
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
|
||||||
CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser, roleIdListString);
|
CallResult result = sysUserService.verifyRelatedData(
|
||||||
|
sysUser, originalUser, roleIdListString);
|
||||||
if (!result.isSuccess()) {
|
if (!result.isSuccess()) {
|
||||||
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
|
||||||
}
|
}
|
||||||
Set<Long> roleIdSet = (Set<Long>) result.getData().get("roleIdSet");
|
Set<Long> roleIdSet = result.getData().getObject("roleIdSet", new TypeReference<Set<Long>>() {});
|
||||||
if (!sysUserService.update(sysUser, originalUser, roleIdSet)) {
|
if (!sysUserService.update(sysUser, originalUser, roleIdSet)) {
|
||||||
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
|
|||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,55 +22,56 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_menu")
|
@Table(name = "zz_sys_menu")
|
||||||
public class SysMenu extends BaseModel {
|
public class SysMenu extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "menu_id")
|
@Id
|
||||||
|
@Column(name = "menu_id")
|
||||||
private Long menuId;
|
private Long menuId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 父菜单Id,目录菜单的父菜单为null。
|
* 父菜单Id,目录菜单的父菜单为null。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "parent_id")
|
@Column(name = "parent_id")
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单显示名称。
|
* 菜单显示名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "menu_name")
|
@Column(name = "menu_name")
|
||||||
private String menuName;
|
private String menuName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单类型(0: 目录 1: 菜单 2: 按钮 3: UI片段)。
|
* 菜单类型(0: 目录 1: 菜单 2: 按钮 3: UI片段)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "menu_type")
|
@Column(name = "menu_type")
|
||||||
private Integer menuType;
|
private Integer menuType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 前端表单路由名称,仅用于menu_type为1的菜单类型。
|
* 前端表单路由名称,仅用于menu_type为1的菜单类型。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "form_router_name")
|
@Column(name = "form_router_name")
|
||||||
private String formRouterName;
|
private String formRouterName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线表单主键Id,仅用于在线表单绑定的菜单。
|
* 在线表单主键Id,仅用于在线表单绑定的菜单。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "online_form_id")
|
@Column(name = "online_form_id")
|
||||||
private Long onlineFormId;
|
private Long onlineFormId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
|
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "online_menu_perm_type")
|
@Column(name = "online_menu_perm_type")
|
||||||
private Integer onlineMenuPermType;
|
private Integer onlineMenuPermType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单显示顺序 (值越小,排序越靠前)。
|
* 菜单显示顺序 (值越小,排序越靠前)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_order")
|
@Column(name = "show_order")
|
||||||
private Integer showOrder;
|
private Integer showOrder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,15 +82,15 @@ public class SysMenu extends BaseModel {
|
|||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
@RelationManyToMany(
|
@RelationManyToMany(
|
||||||
relationMapperName = "sysMenuPermCodeMapper",
|
relationMapperName = "sysMenuPermCodeMapper",
|
||||||
relationMasterIdField = "menuId",
|
relationMasterIdField = "menuId",
|
||||||
relationModelClass = SysMenuPermCode.class)
|
relationModelClass = SysMenuPermCode.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private List<SysMenuPermCode> sysMenuPermCodeList;
|
private List<SysMenuPermCode> sysMenuPermCodeList;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单与权限字关联实体对象。
|
* 菜单与权限字关联实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,18 +11,20 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_sys_menu_perm_code")
|
@Table(name = "zz_sys_menu_perm_code")
|
||||||
public class SysMenuPermCode {
|
public class SysMenuPermCode {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联菜单Id。
|
* 关联菜单Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "menu_id")
|
@Id
|
||||||
|
@Column(name = "menu_id")
|
||||||
private Long menuId;
|
private Long menuId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关联权限字Id。
|
* 关联权限字Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_code_id")
|
@Id
|
||||||
|
@Column(name = "perm_code_id")
|
||||||
private Long permCodeId;
|
private Long permCodeId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import com.orange.demo.common.core.annotation.RelationDict;
|
import com.orange.demo.common.core.annotation.RelationDict;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,25 +17,26 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_perm")
|
@Table(name = "zz_sys_perm")
|
||||||
public class SysPerm extends BaseModel {
|
public class SysPerm extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限Id。
|
* 权限Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "perm_id")
|
@Id
|
||||||
|
@Column(name = "perm_id")
|
||||||
private Long permId;
|
private Long permId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限所在的权限模块Id。
|
* 权限所在的权限模块Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "module_id")
|
@Column(name = "module_id")
|
||||||
private Long moduleId;
|
private Long moduleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限名称。
|
* 权限名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_name")
|
@Column(name = "perm_name")
|
||||||
private String permName;
|
private String permName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,14 +47,14 @@ public class SysPerm extends BaseModel {
|
|||||||
/**
|
/**
|
||||||
* 权限在当前模块下的顺序,由小到大。
|
* 权限在当前模块下的顺序,由小到大。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_order")
|
@Column(name = "show_order")
|
||||||
private Integer showOrder;
|
private Integer showOrder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
@RelationDict(
|
@RelationDict(
|
||||||
@@ -61,6 +63,6 @@ public class SysPerm extends BaseModel {
|
|||||||
slaveModelClass = SysPermModule.class,
|
slaveModelClass = SysPermModule.class,
|
||||||
slaveIdField = "moduleId",
|
slaveIdField = "moduleId",
|
||||||
slaveNameField = "moduleName")
|
slaveNameField = "moduleName")
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> moduleIdDictMap;
|
private Map<String, Object> moduleIdDictMap;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
|
|||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,57 +22,58 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_perm_code")
|
@Table(name = "zz_sys_perm_code")
|
||||||
public class SysPermCode extends BaseModel {
|
public class SysPermCode extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "perm_code_id")
|
@Id
|
||||||
|
@Column(name = "perm_code_id")
|
||||||
private Long permCodeId;
|
private Long permCodeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上级权限字Id。
|
* 上级权限字Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "parent_id")
|
@Column(name = "parent_id")
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限字标识(一般为有含义的英文字符串)。
|
* 权限字标识(一般为有含义的英文字符串)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_code")
|
@Column(name = "perm_code")
|
||||||
private String permCode;
|
private String permCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限类型(0: 表单 1: UI片段 2: 操作)。
|
* 权限类型(0: 表单 1: UI片段 2: 操作)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_code_type")
|
@Column(name = "perm_code_type")
|
||||||
private Integer permCodeType;
|
private Integer permCodeType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示名称。
|
* 显示名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_name")
|
@Column(name = "show_name")
|
||||||
private String showName;
|
private String showName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示顺序(数值越小,越靠前)。
|
* 显示顺序(数值越小,越靠前)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_order")
|
@Column(name = "show_order")
|
||||||
private Integer showOrder;
|
private Integer showOrder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
@RelationManyToMany(
|
@RelationManyToMany(
|
||||||
relationMapperName = "sysPermCodePermMapper",
|
relationMapperName = "sysPermCodePermMapper",
|
||||||
relationMasterIdField = "permCodeId",
|
relationMasterIdField = "permCodeId",
|
||||||
relationModelClass = SysPermCodePerm.class)
|
relationModelClass = SysPermCodePerm.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private List<SysPermCodePerm> sysPermCodePermList;
|
private List<SysPermCodePerm> sysPermCodePermList;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限字与权限资源关联实体对象。
|
* 权限字与权限资源关联实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,18 +11,20 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_sys_perm_code_perm")
|
@Table(name = "zz_sys_perm_code_perm")
|
||||||
public class SysPermCodePerm {
|
public class SysPermCodePerm {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限字Id。
|
* 权限字Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_code_id")
|
@Id
|
||||||
|
@Column(name = "perm_code_id")
|
||||||
private Long permCodeId;
|
private Long permCodeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限Id。
|
* 权限Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_id")
|
@Id
|
||||||
|
@Column(name = "perm_id")
|
||||||
private Long permId;
|
private Long permId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -15,46 +16,47 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_perm_module")
|
@Table(name = "zz_sys_perm_module")
|
||||||
public class SysPermModule extends BaseModel {
|
public class SysPermModule extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限模块Id。
|
* 权限模块Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "module_id")
|
@Id
|
||||||
|
@Column(name = "module_id")
|
||||||
private Long moduleId;
|
private Long moduleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上级权限模块Id。
|
* 上级权限模块Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "parent_id")
|
@Column(name = "parent_id")
|
||||||
private Long parentId;
|
private Long parentId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限模块名称。
|
* 权限模块名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "module_name")
|
@Column(name = "module_name")
|
||||||
private String moduleName;
|
private String moduleName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限模块类型(0: 普通模块 1: Controller模块)。
|
* 权限模块类型(0: 普通模块 1: Controller模块)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "module_type")
|
@Column(name = "module_type")
|
||||||
private Integer moduleType;
|
private Integer moduleType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限模块在当前层级下的顺序,由小到大。
|
* 权限模块在当前层级下的顺序,由小到大。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_order")
|
@Column(name = "show_order")
|
||||||
private Integer showOrder;
|
private Integer showOrder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private List<SysPerm> sysPermList;
|
private List<SysPerm> sysPermList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 白名单实体对象。
|
* 白名单实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,24 +11,25 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_sys_perm_whitelist")
|
@Table(name = "zz_sys_perm_whitelist")
|
||||||
public class SysPermWhitelist {
|
public class SysPermWhitelist {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限资源的URL。
|
* 权限资源的URL。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "perm_url")
|
@Id
|
||||||
|
@Column(name = "perm_url")
|
||||||
private String permUrl;
|
private String permUrl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限资源所属模块名字(通常是Controller的名字)。
|
* 权限资源所属模块名字(通常是Controller的名字)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "module_name")
|
@Column(name = "module_name")
|
||||||
private String moduleName;
|
private String moduleName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 权限的名称。
|
* 权限的名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "perm_name")
|
@Column(name = "perm_name")
|
||||||
private String permName;
|
private String permName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
|
|||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,33 +22,34 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_role")
|
@Table(name = "zz_sys_role")
|
||||||
public class SysRole extends BaseModel {
|
public class SysRole extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键Id。
|
* 主键Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "role_id")
|
@Id
|
||||||
|
@Column(name = "role_id")
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色名称。
|
* 角色名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "role_name")
|
@Column(name = "role_name")
|
||||||
private String roleName;
|
private String roleName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
@RelationManyToMany(
|
@RelationManyToMany(
|
||||||
relationMapperName = "sysRoleMenuMapper",
|
relationMapperName = "sysRoleMenuMapper",
|
||||||
relationMasterIdField = "roleId",
|
relationMasterIdField = "roleId",
|
||||||
relationModelClass = SysRoleMenu.class)
|
relationModelClass = SysRoleMenu.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private List<SysRoleMenu> sysRoleMenuList;
|
private List<SysRoleMenu> sysRoleMenuList;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色菜单实体对象。
|
* 角色菜单实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,18 +11,20 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_sys_role_menu")
|
@Table(name = "zz_sys_role_menu")
|
||||||
public class SysRoleMenu {
|
public class SysRoleMenu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色Id。
|
* 角色Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "role_id")
|
@Id
|
||||||
|
@Column(name = "role_id")
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单Id。
|
* 菜单Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "menu_id")
|
@Id
|
||||||
|
@Column(name = "menu_id")
|
||||||
private Long menuId;
|
private Long menuId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.upmsapi.vo.SysUserVo;
|
import com.orange.demo.upmsapi.vo.SysUserVo;
|
||||||
import com.orange.demo.upmsapi.constant.SysUserType;
|
import com.orange.demo.upmsapi.constant.SysUserType;
|
||||||
import com.orange.demo.upmsapi.constant.SysUserStatus;
|
import com.orange.demo.upmsapi.constant.SysUserStatus;
|
||||||
@@ -8,10 +7,12 @@ import com.orange.demo.common.core.annotation.RelationConstDict;
|
|||||||
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
import com.orange.demo.common.core.annotation.RelationManyToMany;
|
||||||
import com.orange.demo.common.core.base.model.BaseModel;
|
import com.orange.demo.common.core.base.model.BaseModel;
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
|
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.mapstruct.*;
|
import org.mapstruct.*;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -24,19 +25,20 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "zz_sys_user")
|
@Table(name = "zz_sys_user")
|
||||||
public class SysUser extends BaseModel {
|
public class SysUser extends BaseModel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户Id。
|
* 用户Id。
|
||||||
*/
|
*/
|
||||||
@TableId(value = "user_id")
|
@Id
|
||||||
|
@Column(name = "user_id")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录用户名。
|
* 登录用户名。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "login_name")
|
@Column(name = "login_name")
|
||||||
private String loginName;
|
private String loginName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,44 +49,44 @@ public class SysUser extends BaseModel {
|
|||||||
/**
|
/**
|
||||||
* 用户显示名称。
|
* 用户显示名称。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "show_name")
|
@Column(name = "show_name")
|
||||||
private String showName;
|
private String showName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
|
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "user_type")
|
@Column(name = "user_type")
|
||||||
private Integer userType;
|
private Integer userType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户头像的Url。
|
* 用户头像的Url。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "head_image_url")
|
@Column(name = "head_image_url")
|
||||||
private String headImageUrl;
|
private String headImageUrl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户状态(0: 正常 1: 锁定)。
|
* 用户状态(0: 正常 1: 锁定)。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "user_status")
|
@Column(name = "user_status")
|
||||||
private Integer userStatus;
|
private Integer userStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
|
||||||
*/
|
*/
|
||||||
@TableLogic
|
@DeletedFlagColumn
|
||||||
@TableField(value = "deleted_flag")
|
@Column(name = "deleted_flag")
|
||||||
private Integer deletedFlag;
|
private Integer deletedFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* createTime 范围过滤起始值(>=)。
|
* createTime 范围过滤起始值(>=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String createTimeStart;
|
private String createTimeStart;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* createTime 范围过滤结束值(<=)。
|
* createTime 范围过滤结束值(<=)。
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private String createTimeEnd;
|
private String createTimeEnd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -94,19 +96,19 @@ public class SysUser extends BaseModel {
|
|||||||
relationMapperName = "sysUserRoleMapper",
|
relationMapperName = "sysUserRoleMapper",
|
||||||
relationMasterIdField = "userId",
|
relationMasterIdField = "userId",
|
||||||
relationModelClass = SysUserRole.class)
|
relationModelClass = SysUserRole.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private List<SysUserRole> sysUserRoleList;
|
private List<SysUserRole> sysUserRoleList;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "userType",
|
masterIdField = "userType",
|
||||||
constantDictClass = SysUserType.class)
|
constantDictClass = SysUserType.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> userTypeDictMap;
|
private Map<String, Object> userTypeDictMap;
|
||||||
|
|
||||||
@RelationConstDict(
|
@RelationConstDict(
|
||||||
masterIdField = "userStatus",
|
masterIdField = "userStatus",
|
||||||
constantDictClass = SysUserStatus.class)
|
constantDictClass = SysUserStatus.class)
|
||||||
@TableField(exist = false)
|
@Transient
|
||||||
private Map<String, Object> userStatusDictMap;
|
private Map<String, Object> userStatusDictMap;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.orange.demo.upmsservice.model;
|
package com.orange.demo.upmsservice.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户角色实体对象。
|
* 用户角色实体对象。
|
||||||
*
|
*
|
||||||
@@ -10,18 +11,20 @@ import lombok.Data;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName(value = "zz_sys_user_role")
|
@Table(name = "zz_sys_user_role")
|
||||||
public class SysUserRole {
|
public class SysUserRole {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户Id。
|
* 用户Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "user_id")
|
@Id
|
||||||
|
@Column(name = "user_id")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色Id。
|
* 角色Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "role_id")
|
@Id
|
||||||
|
@Column(name = "role_id")
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,8 +156,8 @@ public interface SysUserService extends IBaseService<SysUser, Long> {
|
|||||||
*
|
*
|
||||||
* @param sysUser 当前操作的对象。
|
* @param sysUser 当前操作的对象。
|
||||||
* @param originalSysUser 原有对象。
|
* @param originalSysUser 原有对象。
|
||||||
* @param roleIdListString 逗号分隔的角色Id列表字符串。
|
* @param roleIds 逗号分隔的角色Id列表字符串。
|
||||||
* @return 验证结果。
|
* @return 验证结果。
|
||||||
*/
|
*/
|
||||||
CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString);
|
CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,6 @@ package com.orange.demo.upmsservice.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.common.core.base.service.BaseService;
|
import com.orange.demo.common.core.base.service.BaseService;
|
||||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||||
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||||
@@ -26,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -76,12 +74,14 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
|||||||
MyModelUtil.fillCommonsForInsert(sysMenu);
|
MyModelUtil.fillCommonsForInsert(sysMenu);
|
||||||
sysMenuMapper.insert(sysMenu);
|
sysMenuMapper.insert(sysMenu);
|
||||||
if (permCodeIdSet != null) {
|
if (permCodeIdSet != null) {
|
||||||
|
List<SysMenuPermCode> sysMenuPermCodeList = new LinkedList<>();
|
||||||
for (Long permCodeId : permCodeIdSet) {
|
for (Long permCodeId : permCodeIdSet) {
|
||||||
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
||||||
menuPermCode.setMenuId(sysMenu.getMenuId());
|
menuPermCode.setMenuId(sysMenu.getMenuId());
|
||||||
menuPermCode.setPermCodeId(permCodeId);
|
menuPermCode.setPermCodeId(permCodeId);
|
||||||
sysMenuPermCodeMapper.insert(menuPermCode);
|
sysMenuPermCodeList.add(menuPermCode);
|
||||||
}
|
}
|
||||||
|
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
|
||||||
}
|
}
|
||||||
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
|
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
|
||||||
if (sysMenu.getOnlineFormId() != null) {
|
if (sysMenu.getOnlineFormId() != null) {
|
||||||
@@ -124,27 +124,30 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
|||||||
public boolean update(SysMenu sysMenu, SysMenu originalSysMenu, Set<Long> permCodeIdSet) {
|
public boolean update(SysMenu sysMenu, SysMenu originalSysMenu, Set<Long> permCodeIdSet) {
|
||||||
MyModelUtil.fillCommonsForUpdate(sysMenu, originalSysMenu);
|
MyModelUtil.fillCommonsForUpdate(sysMenu, originalSysMenu);
|
||||||
sysMenu.setMenuType(originalSysMenu.getMenuType());
|
sysMenu.setMenuType(originalSysMenu.getMenuType());
|
||||||
UpdateWrapper<SysMenu> uw = this.createUpdateQueryForNullValue(sysMenu, sysMenu.getMenuId());
|
sysMenu.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
if (sysMenuMapper.update(sysMenu, uw) != 1) {
|
if (sysMenuMapper.updateByPrimaryKey(sysMenu) != 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysMenuPermCode deletedMenuPermCode = new SysMenuPermCode();
|
SysMenuPermCode deletedMenuPermCode = new SysMenuPermCode();
|
||||||
deletedMenuPermCode.setMenuId(sysMenu.getMenuId());
|
deletedMenuPermCode.setMenuId(sysMenu.getMenuId());
|
||||||
sysMenuPermCodeMapper.delete(new QueryWrapper<>(deletedMenuPermCode));
|
sysMenuPermCodeMapper.delete(deletedMenuPermCode);
|
||||||
if (permCodeIdSet != null) {
|
if (permCodeIdSet != null) {
|
||||||
|
List<SysMenuPermCode> sysMenuPermCodeList = new LinkedList<>();
|
||||||
for (Long permCodeId : permCodeIdSet) {
|
for (Long permCodeId : permCodeIdSet) {
|
||||||
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
||||||
menuPermCode.setMenuId(sysMenu.getMenuId());
|
menuPermCode.setMenuId(sysMenu.getMenuId());
|
||||||
menuPermCode.setPermCodeId(permCodeId);
|
menuPermCode.setPermCodeId(permCodeId);
|
||||||
sysMenuPermCodeMapper.insert(menuPermCode);
|
sysMenuPermCodeList.add(menuPermCode);
|
||||||
}
|
}
|
||||||
|
sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
|
||||||
}
|
}
|
||||||
// 如果当前菜单的在线表单Id变化了,就需要同步更新他的内置子菜单也同步更新。
|
// 如果当前菜单的在线表单Id变化了,就需要同步更新他的内置子菜单也同步更新。
|
||||||
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
|
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
|
||||||
SysMenu onlineSubMenu = new SysMenu();
|
SysMenu onlineSubMenu = new SysMenu();
|
||||||
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
|
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
|
||||||
sysMenuMapper.update(onlineSubMenu,
|
Example e = new Example(SysMenu.class);
|
||||||
new QueryWrapper<SysMenu>().lambda().eq(SysMenu::getParentId, sysMenu.getMenuId()));
|
e.createCriteria().andEqualTo("parentId", sysMenu.getMenuId());
|
||||||
|
sysMenuMapper.updateByExampleSelective(onlineSubMenu, e);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -159,18 +162,23 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
|||||||
@Override
|
@Override
|
||||||
public boolean remove(SysMenu menu) {
|
public boolean remove(SysMenu menu) {
|
||||||
Long menuId = menu.getMenuId();
|
Long menuId = menu.getMenuId();
|
||||||
if (sysMenuMapper.deleteById(menuId) != 1) {
|
if (!this.removeById(menuId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysRoleMenu roleMenu = new SysRoleMenu();
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
||||||
roleMenu.setMenuId(menuId);
|
roleMenu.setMenuId(menuId);
|
||||||
sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
|
sysRoleMenuMapper.delete(roleMenu);
|
||||||
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
||||||
menuPermCode.setMenuId(menuId);
|
menuPermCode.setMenuId(menuId);
|
||||||
sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
|
sysMenuPermCodeMapper.delete(menuPermCode);
|
||||||
// 如果为指向在线表单的菜单,则连同删除子菜单
|
// 如果为指向在线表单的菜单,则连同删除子菜单
|
||||||
if (menu.getOnlineFormId() != null) {
|
if (menu.getOnlineFormId() != null) {
|
||||||
sysMenuMapper.delete(new QueryWrapper<SysMenu>().lambda().eq(SysMenu::getParentId, menuId));
|
Example e = new Example(SysMenu.class);
|
||||||
|
Example.Criteria c = e.createCriteria().andEqualTo("parentId", menuId);
|
||||||
|
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
|
||||||
|
SysMenu deletedSubMenu = new SysMenu();
|
||||||
|
deletedSubMenu.setDeletedFlag(GlobalDeletedFlag.DELETED);
|
||||||
|
sysMenuMapper.updateByExampleSelective(deletedSubMenu, e);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -182,11 +190,12 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Collection<SysMenu> getAllMenuList() {
|
public Collection<SysMenu> getAllMenuList() {
|
||||||
QueryWrapper<SysMenu> queryWrapper = new QueryWrapper<>();
|
Example e = new Example(SysMenu.class);
|
||||||
queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
|
e.orderBy("showOrder");
|
||||||
queryWrapper.in(this.safeMapToColumnName("menuType"),
|
Example.Criteria c = e.createCriteria();
|
||||||
Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
|
c.andIn("menuType", Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
|
||||||
return sysMenuMapper.selectList(queryWrapper);
|
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
|
||||||
|
return sysMenuMapper.selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -285,12 +294,12 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, Long> implements Sy
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysMenu> getAllOnlineMenuList(Integer menuType) {
|
public List<SysMenu> getAllOnlineMenuList(Integer menuType) {
|
||||||
LambdaQueryWrapper<SysMenu> queryWrapper =
|
Example e = new Example(SysMenu.class);
|
||||||
new QueryWrapper<SysMenu>().lambda().isNotNull(SysMenu::getOnlineFormId);
|
Example.Criteria c = e.createCriteria().andIsNotNull("onlineFormId");
|
||||||
if (menuType != null) {
|
if (menuType != null) {
|
||||||
queryWrapper.eq(SysMenu::getMenuType, menuType);
|
c.andEqualTo("menuType", menuType);
|
||||||
}
|
}
|
||||||
return sysMenuMapper.selectList(queryWrapper);
|
return sysMenuMapper.selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.orange.demo.upmsservice.service.impl;
|
package com.orange.demo.upmsservice.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.orange.demo.common.core.base.service.BaseService;
|
import com.orange.demo.common.core.base.service.BaseService;
|
||||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||||
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||||
@@ -95,12 +93,14 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
|
|||||||
MyModelUtil.fillCommonsForInsert(sysPermCode);
|
MyModelUtil.fillCommonsForInsert(sysPermCode);
|
||||||
sysPermCodeMapper.insert(sysPermCode);
|
sysPermCodeMapper.insert(sysPermCode);
|
||||||
if (permIdSet != null) {
|
if (permIdSet != null) {
|
||||||
|
List<SysPermCodePerm> sysPermCodePermList = new LinkedList<>();
|
||||||
for (Long permId : permIdSet) {
|
for (Long permId : permIdSet) {
|
||||||
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
||||||
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
||||||
permCodePerm.setPermId(permId);
|
permCodePerm.setPermId(permId);
|
||||||
sysPermCodePermMapper.insert(permCodePerm);
|
sysPermCodePermList.add(permCodePerm);
|
||||||
}
|
}
|
||||||
|
sysPermCodePermMapper.insertList(sysPermCodePermList);
|
||||||
}
|
}
|
||||||
return sysPermCode;
|
return sysPermCode;
|
||||||
}
|
}
|
||||||
@@ -117,22 +117,23 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
|
|||||||
@Override
|
@Override
|
||||||
public boolean update(SysPermCode sysPermCode, SysPermCode originalSysPermCode, Set<Long> permIdSet) {
|
public boolean update(SysPermCode sysPermCode, SysPermCode originalSysPermCode, Set<Long> permIdSet) {
|
||||||
sysPermCode.setParentId(originalSysPermCode.getParentId());
|
sysPermCode.setParentId(originalSysPermCode.getParentId());
|
||||||
|
sysPermCode.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
MyModelUtil.fillCommonsForUpdate(sysPermCode, originalSysPermCode);
|
MyModelUtil.fillCommonsForUpdate(sysPermCode, originalSysPermCode);
|
||||||
UpdateWrapper<SysPermCode> uw =
|
if (sysPermCodeMapper.updateByPrimaryKey(sysPermCode) != 1) {
|
||||||
this.createUpdateQueryForNullValue(sysPermCode, sysPermCode.getPermCodeId());
|
|
||||||
if (sysPermCodeMapper.update(sysPermCode, uw) != 1) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysPermCodePerm deletedPermCodePerm = new SysPermCodePerm();
|
SysPermCodePerm deletedPermCodePerm = new SysPermCodePerm();
|
||||||
deletedPermCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
deletedPermCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
||||||
sysPermCodePermMapper.delete(new QueryWrapper<>(deletedPermCodePerm));
|
sysPermCodePermMapper.delete(deletedPermCodePerm);
|
||||||
if (permIdSet != null) {
|
if (permIdSet != null) {
|
||||||
|
List<SysPermCodePerm> sysPermCodePermList = new LinkedList<>();
|
||||||
for (Long permId : permIdSet) {
|
for (Long permId : permIdSet) {
|
||||||
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
||||||
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
|
||||||
permCodePerm.setPermId(permId);
|
permCodePerm.setPermId(permId);
|
||||||
sysPermCodePermMapper.insert(permCodePerm);
|
sysPermCodePermList.add(permCodePerm);
|
||||||
}
|
}
|
||||||
|
sysPermCodePermMapper.insertList(sysPermCodePermList);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -146,15 +147,15 @@ public class SysPermCodeServiceImpl extends BaseService<SysPermCode, Long> imple
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long permCodeId) {
|
public boolean remove(Long permCodeId) {
|
||||||
if (sysPermCodeMapper.deleteById(permCodeId) != 1) {
|
if (!this.removeById(permCodeId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
SysMenuPermCode menuPermCode = new SysMenuPermCode();
|
||||||
menuPermCode.setPermCodeId(permCodeId);
|
menuPermCode.setPermCodeId(permCodeId);
|
||||||
sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
|
sysMenuPermCodeMapper.delete(menuPermCode);
|
||||||
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
||||||
permCodePerm.setPermCodeId(permCodeId);
|
permCodePerm.setPermCodeId(permCodeId);
|
||||||
sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
|
sysPermCodePermMapper.delete(permCodePerm);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ public class SysPermModuleServiceImpl extends BaseService<SysPermModule, Long> i
|
|||||||
@Override
|
@Override
|
||||||
public boolean update(SysPermModule sysPermModule, SysPermModule originalSysPermModule) {
|
public boolean update(SysPermModule sysPermModule, SysPermModule originalSysPermModule) {
|
||||||
MyModelUtil.fillCommonsForUpdate(sysPermModule, originalSysPermModule);
|
MyModelUtil.fillCommonsForUpdate(sysPermModule, originalSysPermModule);
|
||||||
return sysPermModuleMapper.updateById(sysPermModule) != 0;
|
sysPermModule.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
|
return sysPermModuleMapper.updateByPrimaryKey(sysPermModule) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,7 +84,7 @@ public class SysPermModuleServiceImpl extends BaseService<SysPermModule, Long> i
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long moduleId) {
|
public boolean remove(Long moduleId) {
|
||||||
return sysPermModuleMapper.deleteById(moduleId) == 1;
|
return this.removeById(moduleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.upmsservice.service.impl;
|
package com.orange.demo.upmsservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.orange.demo.common.core.base.service.BaseService;
|
import com.orange.demo.common.core.base.service.BaseService;
|
||||||
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
|
||||||
@@ -19,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -78,7 +78,8 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
|
|||||||
@Override
|
@Override
|
||||||
public boolean update(SysPerm perm, SysPerm originalPerm) {
|
public boolean update(SysPerm perm, SysPerm originalPerm) {
|
||||||
MyModelUtil.fillCommonsForUpdate(perm, originalPerm);
|
MyModelUtil.fillCommonsForUpdate(perm, originalPerm);
|
||||||
return sysPermMapper.updateById(perm) != 0;
|
perm.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
|
return sysPermMapper.updateByPrimaryKeySelective(perm) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -90,12 +91,12 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long permId) {
|
public boolean remove(Long permId) {
|
||||||
if (sysPermMapper.deleteById(permId) != 1) {
|
if (!this.removeById(permId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
SysPermCodePerm permCodePerm = new SysPermCodePerm();
|
||||||
permCodePerm.setPermId(permId);
|
permCodePerm.setPermId(permId);
|
||||||
sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
|
sysPermCodePermMapper.delete(permCodePerm);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,13 +108,17 @@ public class SysPermServiceImpl extends BaseService<SysPerm, Long> implements Sy
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<SysPerm> getPermListWithRelation(SysPerm sysPermFilter) {
|
public List<SysPerm> getPermListWithRelation(SysPerm sysPermFilter) {
|
||||||
QueryWrapper<SysPerm> queryWrapper = new QueryWrapper<>();
|
Example e = new Example(SysPerm.class);
|
||||||
queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
|
e.orderBy("showOrder");
|
||||||
queryWrapper.eq(ObjectUtil.isNotNull(sysPermFilter.getModuleId()),
|
Example.Criteria c = e.createCriteria();
|
||||||
this.safeMapToColumnName("moduleId"), sysPermFilter.getModuleId());
|
if (ObjectUtil.isNotNull(sysPermFilter.getModuleId())) {
|
||||||
queryWrapper.like(ObjectUtil.isNotNull(sysPermFilter.getUrl()),
|
c.andEqualTo("moduleId", sysPermFilter.getModuleId());
|
||||||
this.safeMapToColumnName("url"), "%" + sysPermFilter.getUrl() + "%");
|
}
|
||||||
List<SysPerm> permList = sysPermMapper.selectList(queryWrapper);
|
if (ObjectUtil.isNotNull(sysPermFilter.getUrl())) {
|
||||||
|
c.andLike("url", "%" + sysPermFilter.getUrl() + "%");
|
||||||
|
}
|
||||||
|
c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
|
||||||
|
List<SysPerm> permList = sysPermMapper.selectByExample(e);
|
||||||
// 这里因为权限只有字典数据,所以仅仅做字典关联。
|
// 这里因为权限只有字典数据,所以仅仅做字典关联。
|
||||||
this.buildRelationForDataList(permList, MyRelationParam.dictOnly());
|
this.buildRelationForDataList(permList, MyRelationParam.dictOnly());
|
||||||
return permList;
|
return permList;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.upmsservice.service.impl;
|
package com.orange.demo.upmsservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.orange.demo.common.core.base.service.BaseService;
|
import com.orange.demo.common.core.base.service.BaseService;
|
||||||
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
|
||||||
@@ -71,12 +70,14 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
|
|||||||
MyModelUtil.fillCommonsForInsert(role);
|
MyModelUtil.fillCommonsForInsert(role);
|
||||||
sysRoleMapper.insert(role);
|
sysRoleMapper.insert(role);
|
||||||
if (menuIdSet != null) {
|
if (menuIdSet != null) {
|
||||||
|
List<SysRoleMenu> roleMenuList = new LinkedList<>();
|
||||||
for (Long menuId : menuIdSet) {
|
for (Long menuId : menuIdSet) {
|
||||||
SysRoleMenu roleMenu = new SysRoleMenu();
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
||||||
roleMenu.setRoleId(role.getRoleId());
|
roleMenu.setRoleId(role.getRoleId());
|
||||||
roleMenu.setMenuId(menuId);
|
roleMenu.setMenuId(menuId);
|
||||||
sysRoleMenuMapper.insert(roleMenu);
|
roleMenuList.add(roleMenu);
|
||||||
}
|
}
|
||||||
|
sysRoleMenuMapper.insertList(roleMenuList);
|
||||||
}
|
}
|
||||||
return role;
|
return role;
|
||||||
}
|
}
|
||||||
@@ -92,20 +93,23 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean update(SysRole role, SysRole originalRole, Set<Long> menuIdSet) {
|
public boolean update(SysRole role, SysRole originalRole, Set<Long> menuIdSet) {
|
||||||
|
role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
MyModelUtil.fillCommonsForUpdate(role, originalRole);
|
MyModelUtil.fillCommonsForUpdate(role, originalRole);
|
||||||
if (sysRoleMapper.updateById(role) != 1) {
|
if (sysRoleMapper.updateByPrimaryKey(role) != 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
|
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
|
||||||
deletedRoleMenu.setRoleId(role.getRoleId());
|
deletedRoleMenu.setRoleId(role.getRoleId());
|
||||||
sysRoleMenuMapper.delete(new QueryWrapper<>(deletedRoleMenu));
|
sysRoleMenuMapper.delete(deletedRoleMenu);
|
||||||
if (menuIdSet != null) {
|
if (menuIdSet != null) {
|
||||||
|
List<SysRoleMenu> roleMenuList = new LinkedList<>();
|
||||||
for (Long menuId : menuIdSet) {
|
for (Long menuId : menuIdSet) {
|
||||||
SysRoleMenu roleMenu = new SysRoleMenu();
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
||||||
roleMenu.setRoleId(role.getRoleId());
|
roleMenu.setRoleId(role.getRoleId());
|
||||||
roleMenu.setMenuId(menuId);
|
roleMenu.setMenuId(menuId);
|
||||||
sysRoleMenuMapper.insert(roleMenu);
|
roleMenuList.add(roleMenu);
|
||||||
}
|
}
|
||||||
|
sysRoleMenuMapper.insertList(roleMenuList);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -119,15 +123,15 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long roleId) {
|
public boolean remove(Long roleId) {
|
||||||
if (sysRoleMapper.deleteById(roleId) != 1) {
|
if (!this.removeById(roleId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysRoleMenu roleMenu = new SysRoleMenu();
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
||||||
roleMenu.setRoleId(roleId);
|
roleMenu.setRoleId(roleId);
|
||||||
sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
|
sysRoleMenuMapper.delete(roleMenu);
|
||||||
SysUserRole userRole = new SysUserRole();
|
SysUserRole userRole = new SysUserRole();
|
||||||
userRole.setRoleId(roleId);
|
userRole.setRoleId(roleId);
|
||||||
sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
|
sysUserRoleMapper.delete(userRole);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,9 +155,7 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public void addUserRoleList(List<SysUserRole> userRoleList) {
|
public void addUserRoleList(List<SysUserRole> userRoleList) {
|
||||||
for (SysUserRole userRole : userRoleList) {
|
sysUserRoleMapper.insertList(userRoleList);
|
||||||
sysUserRoleMapper.insert(userRole);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -169,7 +171,7 @@ public class SysRoleServiceImpl extends BaseService<SysRole, Long> implements Sy
|
|||||||
SysUserRole userRole = new SysUserRole();
|
SysUserRole userRole = new SysUserRole();
|
||||||
userRole.setRoleId(roleId);
|
userRole.setRoleId(roleId);
|
||||||
userRole.setUserId(userId);
|
userRole.setUserId(userId);
|
||||||
return sysUserRoleMapper.delete(new QueryWrapper<>(userRole)) == 1;
|
return sysUserRoleMapper.delete(userRole) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.orange.demo.upmsservice.service.impl;
|
package com.orange.demo.upmsservice.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.orange.demo.upmsservice.service.*;
|
import com.orange.demo.upmsservice.service.*;
|
||||||
import com.orange.demo.upmsservice.dao.*;
|
import com.orange.demo.upmsservice.dao.*;
|
||||||
@@ -21,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -66,7 +65,8 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
public SysUser getSysUserByLoginName(String loginName) {
|
public SysUser getSysUserByLoginName(String loginName) {
|
||||||
SysUser filter = new SysUser();
|
SysUser filter = new SysUser();
|
||||||
filter.setLoginName(loginName);
|
filter.setLoginName(loginName);
|
||||||
return sysUserMapper.selectOne(new QueryWrapper<>(filter));
|
filter.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
|
return sysUserMapper.selectOne(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,12 +86,14 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
MyModelUtil.fillCommonsForInsert(user);
|
MyModelUtil.fillCommonsForInsert(user);
|
||||||
sysUserMapper.insert(user);
|
sysUserMapper.insert(user);
|
||||||
if (CollectionUtils.isNotEmpty(roleIdSet)) {
|
if (CollectionUtils.isNotEmpty(roleIdSet)) {
|
||||||
|
List<SysUserRole> userRoleList = new LinkedList<>();
|
||||||
for (Long roleId : roleIdSet) {
|
for (Long roleId : roleIdSet) {
|
||||||
SysUserRole userRole = new SysUserRole();
|
SysUserRole userRole = new SysUserRole();
|
||||||
userRole.setUserId(user.getUserId());
|
userRole.setUserId(user.getUserId());
|
||||||
userRole.setRoleId(roleId);
|
userRole.setRoleId(roleId);
|
||||||
sysUserRoleMapper.insert(userRole);
|
userRoleList.add(userRole);
|
||||||
}
|
}
|
||||||
|
sysUserRoleMapper.insertList(userRoleList);
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
@@ -110,21 +112,23 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
user.setLoginName(originalUser.getLoginName());
|
user.setLoginName(originalUser.getLoginName());
|
||||||
user.setPassword(originalUser.getPassword());
|
user.setPassword(originalUser.getPassword());
|
||||||
MyModelUtil.fillCommonsForUpdate(user, originalUser);
|
MyModelUtil.fillCommonsForUpdate(user, originalUser);
|
||||||
UpdateWrapper<SysUser> uw = this.createUpdateQueryForNullValue(user, user.getUserId());
|
user.setDeletedFlag(GlobalDeletedFlag.NORMAL);
|
||||||
if (sysUserMapper.update(user, uw) != 1) {
|
if (sysUserMapper.updateByPrimaryKey(user) != 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// 先删除原有的User-Role关联关系,再重新插入新的关联关系
|
// 先删除原有的User-Role关联关系,再重新插入新的关联关系
|
||||||
SysUserRole deletedUserRole = new SysUserRole();
|
SysUserRole deletedUserRole = new SysUserRole();
|
||||||
deletedUserRole.setUserId(user.getUserId());
|
deletedUserRole.setUserId(user.getUserId());
|
||||||
sysUserRoleMapper.delete(new QueryWrapper<>(deletedUserRole));
|
sysUserRoleMapper.delete(deletedUserRole);
|
||||||
if (CollectionUtils.isNotEmpty(roleIdSet)) {
|
if (CollectionUtils.isNotEmpty(roleIdSet)) {
|
||||||
|
List<SysUserRole> userRoleList = new LinkedList<>();
|
||||||
for (Long roleId : roleIdSet) {
|
for (Long roleId : roleIdSet) {
|
||||||
SysUserRole userRole = new SysUserRole();
|
SysUserRole userRole = new SysUserRole();
|
||||||
userRole.setUserId(user.getUserId());
|
userRole.setUserId(user.getUserId());
|
||||||
userRole.setRoleId(roleId);
|
userRole.setRoleId(roleId);
|
||||||
sysUserRoleMapper.insert(userRole);
|
userRoleList.add(userRole);
|
||||||
}
|
}
|
||||||
|
sysUserRoleMapper.insertList(userRoleList);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -138,10 +142,13 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean changePassword(Long userId, String newPass) {
|
public boolean changePassword(Long userId, String newPass) {
|
||||||
|
Example e = new Example(SysUser.class);
|
||||||
|
e.createCriteria()
|
||||||
|
.andEqualTo(super.idFieldName, userId)
|
||||||
|
.andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
SysUser updatedUser = new SysUser();
|
SysUser updatedUser = new SysUser();
|
||||||
updatedUser.setUserId(userId);
|
|
||||||
updatedUser.setPassword(passwordEncoder.encode(newPass));
|
updatedUser.setPassword(passwordEncoder.encode(newPass));
|
||||||
return sysUserMapper.updateById(updatedUser) == 1;
|
return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -153,12 +160,13 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(Long userId) {
|
public boolean remove(Long userId) {
|
||||||
if (sysUserMapper.deleteById(userId) == 0) {
|
// 这里先删除主数据
|
||||||
|
if (!this.removeById(userId)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SysUserRole userRole = new SysUserRole();
|
SysUserRole userRole = new SysUserRole();
|
||||||
userRole.setUserId(userId);
|
userRole.setUserId(userId);
|
||||||
sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
|
sysUserRoleMapper.delete(userRole);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,17 +311,17 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
|
|||||||
*
|
*
|
||||||
* @param sysUser 当前操作的对象。
|
* @param sysUser 当前操作的对象。
|
||||||
* @param originalSysUser 原有对象。
|
* @param originalSysUser 原有对象。
|
||||||
* @param roleIdListString 逗号分隔的角色Id列表字符串。
|
* @param roleIds 逗号分隔的角色Id列表字符串。
|
||||||
* @return 验证结果。
|
* @return 验证结果。
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString) {
|
public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds) {
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
if (StringUtils.isBlank(roleIdListString)) {
|
if (StringUtils.isBlank(roleIds)) {
|
||||||
return CallResult.error("数据验证失败,用户的角色数据不能为空!");
|
return CallResult.error("数据验证失败,用户的角色数据不能为空!");
|
||||||
}
|
}
|
||||||
Set<Long> roleIdSet = Arrays.stream(
|
Set<Long> roleIdSet = Arrays.stream(
|
||||||
roleIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());
|
roleIds.split(",")).map(Long::valueOf).collect(Collectors.toSet());
|
||||||
if (!sysRoleService.existAllPrimaryKeys(roleIdSet)) {
|
if (!sysRoleService.existAllPrimaryKeys(roleIdSet)) {
|
||||||
return CallResult.error("数据验证失败,存在不合法的用户角色,请刷新后重试!");
|
return CallResult.error("数据验证失败,存在不合法的用户角色,请刷新后重试!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,20 +63,23 @@
|
|||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
@@ -99,6 +102,7 @@
|
|||||||
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
|
<orderEntry type="library" name="Maven: io.github.classgraph:classgraph:4.1.7" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.10.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webmvc:2.10.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.orange.demo:common-log:1.0.0" level="project" />
|
||||||
<orderEntry type="module" module-name="common-redis" />
|
<orderEntry type="module" module-name="common-redis" />
|
||||||
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
<orderEntry type="library" name="Maven: org.redisson:redisson:3.15.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
|
||||||
|
|||||||
@@ -77,20 +77,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -97,9 +97,9 @@
|
|||||||
<version>${druid.version}</version>
|
<version>${druid.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.baomidou</groupId>
|
<groupId>tk.mybatis</groupId>
|
||||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
<artifactId>mapper-spring-boot-starter</artifactId>
|
||||||
<version>${mybatisplus.version}</version>
|
<version>${mybatis-mapper.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.pagehelper</groupId>
|
<groupId>com.github.pagehelper</groupId>
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.orange.demo.common.core.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主要用于标记逻辑删除字段。
|
||||||
|
*
|
||||||
|
* @author Jerry
|
||||||
|
* @date 2020-08-08
|
||||||
|
*/
|
||||||
|
@Target({ElementType.FIELD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface DeletedFlagColumn {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -27,7 +27,7 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class DataSourceResolveAspect {
|
public class DataSourceResolveAspect {
|
||||||
|
|
||||||
private Map<Class<? extends DataSourceResolver>, DataSourceResolver> resolverMap = new HashMap<>();
|
private final Map<Class<? extends DataSourceResolver>, DataSourceResolver> resolverMap = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所有配置MyDataSourceResovler注解的Service实现类。
|
* 所有配置MyDataSourceResovler注解的Service实现类。
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ import org.springframework.core.Ordered;
|
|||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典缓存同步的AOP。该AOP的优先级必须比事务切面的优先级高,因此会在事务外执行该切面的代码。
|
* 字典缓存同步的AOP。该AOP的优先级必须比事务切面的优先级高,因此会在事务外执行该切面的代码。
|
||||||
*
|
*
|
||||||
@@ -41,23 +39,23 @@ public class DictCacheSyncAspect {
|
|||||||
Object arg = joinPoint.getArgs()[0];
|
Object arg = joinPoint.getArgs()[0];
|
||||||
if ("saveNew".equals(methodName)) {
|
if ("saveNew".equals(methodName)) {
|
||||||
Object data = joinPoint.proceed();
|
Object data = joinPoint.proceed();
|
||||||
BaseDictService<Object, Serializable> service =
|
BaseDictService<Object, Object> service =
|
||||||
(BaseDictService<Object, Serializable>) joinPoint.getTarget();
|
(BaseDictService<Object, Object>) joinPoint.getTarget();
|
||||||
// 这里参数必须使用saveNew方法的返回对象,因为里面包含实际主键值。
|
// 这里参数必须使用saveNew方法的返回对象,因为里面包含实际主键值。
|
||||||
service.putDictionaryCache(data);
|
service.putDictionaryCache(data);
|
||||||
return data;
|
return data;
|
||||||
} else if ("update".equals(methodName)) {
|
} else if ("update".equals(methodName)) {
|
||||||
Object data = joinPoint.proceed();
|
Object data = joinPoint.proceed();
|
||||||
BaseDictService<Object, Serializable> service =
|
BaseDictService<Object, Object> service =
|
||||||
(BaseDictService<Object, Serializable>) joinPoint.getTarget();
|
(BaseDictService<Object, Object>) joinPoint.getTarget();
|
||||||
// update的方法返回的是boolean,因此这里的参数需要使用第一个参数即可。
|
// update的方法返回的是boolean,因此这里的参数需要使用第一个参数即可。
|
||||||
service.putDictionaryCache(arg);
|
service.putDictionaryCache(arg);
|
||||||
return data;
|
return data;
|
||||||
} else {
|
} else {
|
||||||
// remove
|
// remove
|
||||||
BaseDictService<Object, Serializable> service =
|
BaseDictService<Object, Object> service =
|
||||||
(BaseDictService<Object, Serializable>) joinPoint.getTarget();
|
(BaseDictService<Object, Object>) joinPoint.getTarget();
|
||||||
service.removeDictionaryCache((Serializable) arg);
|
service.removeDictionaryCache(arg);
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.orange.demo.common.core.base.controller;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
|
||||||
import com.orange.demo.common.core.base.service.IBaseService;
|
import com.orange.demo.common.core.base.service.IBaseService;
|
||||||
import com.orange.demo.common.core.constant.AggregationKind;
|
import com.orange.demo.common.core.constant.AggregationKind;
|
||||||
@@ -19,7 +18,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import javax.persistence.Id;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -38,7 +37,7 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public abstract class BaseController<M, V, K extends Serializable> {
|
public abstract class BaseController<M, V, K> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前Service关联的主Model实体对象的Class。
|
* 当前Service关联的主Model实体对象的Class。
|
||||||
@@ -69,7 +68,7 @@ public abstract class BaseController<M, V, K extends Serializable> {
|
|||||||
domainVoClass = (Class<V>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
|
domainVoClass = (Class<V>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
|
||||||
Field[] fields = ReflectUtil.getFields(modelClass);
|
Field[] fields = ReflectUtil.getFields(modelClass);
|
||||||
for (Field field : fields) {
|
for (Field field : fields) {
|
||||||
if (null != field.getAnnotation(TableId.class)) {
|
if (null != field.getAnnotation(Id.class)) {
|
||||||
idFieldName = field.getName();
|
idFieldName = field.getName();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.orange.demo.common.core.base.dao;
|
package com.orange.demo.common.core.base.dao;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import tk.mybatis.mapper.additional.insert.InsertListMapper;
|
||||||
|
import tk.mybatis.mapper.annotation.RegisterMapper;
|
||||||
|
import tk.mybatis.mapper.common.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -14,7 +16,8 @@ import java.util.Map;
|
|||||||
* @author Jerry
|
* @author Jerry
|
||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
public interface BaseDaoMapper<M> extends BaseMapper<M> {
|
@RegisterMapper
|
||||||
|
public interface BaseDaoMapper<M> extends Mapper<M>, InsertListMapper<M> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据指定的表名、显示字段列表、过滤条件字符串和分组字段,返回聚合计算后的查询结果。
|
* 根据指定的表名、显示字段列表、过滤条件字符串和分组字段,返回聚合计算后的查询结果。
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.orange.demo.common.core.base.model;
|
package com.orange.demo.common.core.base.model;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,24 +17,24 @@ public class BaseModel {
|
|||||||
/**
|
/**
|
||||||
* 创建者Id。
|
* 创建者Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_user_id")
|
@Column(name = "create_user_id")
|
||||||
private Long createUserId;
|
private Long createUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建时间。
|
* 创建时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "create_time")
|
@Column(name = "create_time")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新者Id。
|
* 更新者Id。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "update_user_id")
|
@Column(name = "update_user_id")
|
||||||
private Long updateUserId;
|
private Long updateUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新时间。
|
* 更新时间。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "update_time")
|
@Column(name = "update_time")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.orange.demo.common.core.base.service;
|
package com.orange.demo.common.core.base.service;
|
||||||
|
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
|
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
|
||||||
import com.orange.demo.common.core.exception.MyRuntimeException;
|
import com.orange.demo.common.core.exception.MyRuntimeException;
|
||||||
import com.orange.demo.common.core.cache.DictionaryCache;
|
import com.orange.demo.common.core.cache.DictionaryCache;
|
||||||
@@ -9,8 +8,8 @@ import com.orange.demo.common.core.object.TokenData;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -23,7 +22,7 @@ import java.util.*;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public abstract class BaseDictService<M, K extends Serializable> extends BaseService<M, K> implements IBaseDictService<M, K> {
|
public abstract class BaseDictService<M, K> extends BaseService<M, K> implements IBaseDictService<M, K> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存池对象。
|
* 缓存池对象。
|
||||||
@@ -90,7 +89,15 @@ public abstract class BaseDictService<M, K extends Serializable> extends BaseSer
|
|||||||
if (tenantIdField != null) {
|
if (tenantIdField != null) {
|
||||||
ReflectUtil.setFieldValue(data, tenantIdField, TokenData.takeFromRequest().getTenantId());
|
ReflectUtil.setFieldValue(data, tenantIdField, TokenData.takeFromRequest().getTenantId());
|
||||||
}
|
}
|
||||||
return mapper().updateById(data) == 1;
|
if (deletedFlagFieldName != null) {
|
||||||
|
try {
|
||||||
|
setDeletedFlagMethod.invoke(data, GlobalDeletedFlag.NORMAL);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to call reflection [setDeletedFlagMethod] in BaseDictService.update.", e);
|
||||||
|
throw new MyRuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mapper().updateByPrimaryKey(data) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,7 +109,7 @@ public abstract class BaseDictService<M, K extends Serializable> extends BaseSer
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public boolean remove(K id) {
|
public boolean remove(K id) {
|
||||||
return mapper().deleteById(id) == 1;
|
return this.removeById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -111,16 +118,15 @@ public abstract class BaseDictService<M, K extends Serializable> extends BaseSer
|
|||||||
* @param id 主键Id。
|
* @param id 主键Id。
|
||||||
* @return 主键关联的数据,不存在返回null。
|
* @return 主键关联的数据,不存在返回null。
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override
|
@Override
|
||||||
public M getById(Serializable id) {
|
public M getById(K id) {
|
||||||
M data = dictionaryCache.get((K) id);
|
M data = dictionaryCache.get(id);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
data = super.getById(id);
|
data = super.getById(id);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
this.dictionaryCache.put((K) id, data);
|
this.dictionaryCache.put(id, data);
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@@ -214,10 +220,8 @@ public abstract class BaseDictService<M, K extends Serializable> extends BaseSer
|
|||||||
List<M> dataList = this.getInList((Set<K>) inFilterValues);
|
List<M> dataList = this.getInList((Set<K>) inFilterValues);
|
||||||
return dataList.size() == inFilterValues.size();
|
return dataList.size() == inFilterValues.size();
|
||||||
}
|
}
|
||||||
String columnName = this.safeMapToColumnName(inFilterField);
|
Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, null);
|
||||||
QueryWrapper<M> queryWrapper = new QueryWrapper<>();
|
return mapper().selectCountByExample(e) == inFilterValues.size();
|
||||||
queryWrapper.in(columnName, inFilterValues);
|
|
||||||
return mapper().selectCount(queryWrapper) == inFilterValues.size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
package com.orange.demo.common.core.base.service;
|
package com.orange.demo.common.core.base.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.orange.demo.common.core.annotation.*;
|
import com.orange.demo.common.core.annotation.*;
|
||||||
@@ -13,7 +8,6 @@ import com.orange.demo.common.core.base.client.BaseClient;
|
|||||||
import com.orange.demo.common.core.constant.AggregationKind;
|
import com.orange.demo.common.core.constant.AggregationKind;
|
||||||
import com.orange.demo.common.core.constant.AggregationType;
|
import com.orange.demo.common.core.constant.AggregationType;
|
||||||
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
|
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
|
||||||
import com.orange.demo.common.core.exception.InvalidDataFieldException;
|
|
||||||
import com.orange.demo.common.core.exception.MyRuntimeException;
|
import com.orange.demo.common.core.exception.MyRuntimeException;
|
||||||
import com.orange.demo.common.core.exception.RemoteDataBuildException;
|
import com.orange.demo.common.core.exception.RemoteDataBuildException;
|
||||||
import com.orange.demo.common.core.object.*;
|
import com.orange.demo.common.core.object.*;
|
||||||
@@ -27,14 +21,20 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Transient;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import static java.util.stream.Collectors.*;
|
import static java.util.stream.Collectors.*;
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ import static java.util.stream.Collectors.*;
|
|||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public abstract class BaseService<M, K extends Serializable> extends ServiceImpl<BaseDaoMapper<M>, M> implements IBaseService<M, K> {
|
public abstract class BaseService<M, K> implements IBaseService<M, K> {
|
||||||
/**
|
/**
|
||||||
* 当前Service关联的主Model实体对象的Class。
|
* 当前Service关联的主Model实体对象的Class。
|
||||||
*/
|
*/
|
||||||
@@ -156,11 +156,6 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
|
|
||||||
private static final String AND_OP = " AND ";
|
private static final String AND_OP = " AND ";
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaseDaoMapper<M> getBaseMapper() {
|
|
||||||
return mapper();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造函数,在实例化的时候,一次性完成所有有关主Model对象信息的加载。
|
* 构造函数,在实例化的时候,一次性完成所有有关主Model对象信息的加载。
|
||||||
*/
|
*/
|
||||||
@@ -168,7 +163,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
public BaseService() {
|
public BaseService() {
|
||||||
modelClass = (Class<M>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
modelClass = (Class<M>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
|
||||||
idFieldClass = (Class<K>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
|
idFieldClass = (Class<K>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
|
||||||
this.tableName = modelClass.getAnnotation(TableName.class).value();
|
this.tableName = modelClass.getAnnotation(Table.class).name();
|
||||||
Field[] fields = ReflectUtil.getFields(modelClass);
|
Field[] fields = ReflectUtil.getFields(modelClass);
|
||||||
for (Field field : fields) {
|
for (Field field : fields) {
|
||||||
initializeField(field);
|
initializeField(field);
|
||||||
@@ -176,10 +171,10 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initializeField(Field field) {
|
private void initializeField(Field field) {
|
||||||
if (idFieldName == null && null != field.getAnnotation(TableId.class)) {
|
if (idFieldName == null && null != field.getAnnotation(Id.class)) {
|
||||||
idFieldName = field.getName();
|
idFieldName = field.getName();
|
||||||
TableId c = field.getAnnotation(TableId.class);
|
Column c = field.getAnnotation(Column.class);
|
||||||
idColumnName = c == null ? idFieldName : c.value();
|
idColumnName = c == null ? idFieldName : c.name();
|
||||||
setIdFieldMethod = ReflectUtil.getMethod(
|
setIdFieldMethod = ReflectUtil.getMethod(
|
||||||
modelClass, "set" + StringUtils.capitalize(idFieldName), idFieldClass);
|
modelClass, "set" + StringUtils.capitalize(idFieldName), idFieldClass);
|
||||||
getIdFieldMethod = ReflectUtil.getMethod(
|
getIdFieldMethod = ReflectUtil.getMethod(
|
||||||
@@ -187,18 +182,21 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
if (updateTimeFieldName == null && null != field.getAnnotation(JobUpdateTimeColumn.class)) {
|
if (updateTimeFieldName == null && null != field.getAnnotation(JobUpdateTimeColumn.class)) {
|
||||||
updateTimeFieldName = field.getName();
|
updateTimeFieldName = field.getName();
|
||||||
updateTimeColumnName = this.safeMapToColumnName(updateTimeFieldName);
|
Column c = field.getAnnotation(Column.class);
|
||||||
|
updateTimeColumnName = c == null ? updateTimeFieldName : c.name();
|
||||||
}
|
}
|
||||||
if (deletedFlagFieldName == null && null != field.getAnnotation(TableLogic.class)) {
|
if (deletedFlagFieldName == null && null != field.getAnnotation(DeletedFlagColumn.class)) {
|
||||||
deletedFlagFieldName = field.getName();
|
deletedFlagFieldName = field.getName();
|
||||||
deletedFlagColumnName = this.safeMapToColumnName(deletedFlagFieldName);
|
Column c = field.getAnnotation(Column.class);
|
||||||
|
deletedFlagColumnName = c == null ? deletedFlagFieldName : c.name();
|
||||||
setDeletedFlagMethod = ReflectUtil.getMethod(
|
setDeletedFlagMethod = ReflectUtil.getMethod(
|
||||||
modelClass, "set" + StringUtils.capitalize(deletedFlagFieldName), Integer.class);
|
modelClass, "set" + StringUtils.capitalize(deletedFlagFieldName), Integer.class);
|
||||||
}
|
}
|
||||||
if (tenantIdFieldName == null && null != field.getAnnotation(TenantFilterColumn.class)) {
|
if (tenantIdFieldName == null && null != field.getAnnotation(TenantFilterColumn.class)) {
|
||||||
tenantIdField = field;
|
tenantIdField = field;
|
||||||
tenantIdFieldName = field.getName();
|
tenantIdFieldName = field.getName();
|
||||||
tenantIdColumnName = this.safeMapToColumnName(tenantIdFieldName);
|
Column c = field.getAnnotation(Column.class);
|
||||||
|
tenantIdColumnName = c == null ? tenantIdFieldName : c.name();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,6 +219,31 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基于主键Id删除数据。如果包含逻辑删除字段,则进行逻辑删除。
|
||||||
|
*
|
||||||
|
* @param id 主键Id值。
|
||||||
|
* @return true删除成功,false数据不存在。
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public boolean removeById(K id) {
|
||||||
|
if (this.deletedFlagFieldName == null) {
|
||||||
|
return mapper().deleteByPrimaryKey(id) == 1;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Example e = new Example(modelClass);
|
||||||
|
Example.Criteria c = e.createCriteria().andEqualTo(idFieldName, id);
|
||||||
|
c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
M data = modelClass.newInstance();
|
||||||
|
setDeletedFlagMethod.invoke(data, GlobalDeletedFlag.DELETED);
|
||||||
|
return mapper().updateByExampleSelective(data, e) == 1;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("Failed to call reflection method in BaseService.removeById.", ex);
|
||||||
|
throw new MyRuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据过滤条件删除数据。
|
* 根据过滤条件删除数据。
|
||||||
*
|
*
|
||||||
@@ -230,7 +253,25 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public Integer removeBy(M filter) {
|
public Integer removeBy(M filter) {
|
||||||
return mapper().delete(new QueryWrapper<>(filter));
|
if (deletedFlagFieldName == null) {
|
||||||
|
return mapper().delete(filter);
|
||||||
|
}
|
||||||
|
Example e = new Example(modelClass);
|
||||||
|
Example.Criteria c = e.createCriteria();
|
||||||
|
Field[] fields = ReflectUtil.getFields(modelClass);
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (field.getAnnotation(Transient.class) == null) {
|
||||||
|
this.assembleCriteriaByFilter(filter, field, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
M deletedObject = modelClass.newInstance();
|
||||||
|
this.setDeletedFlagMethod.invoke(deletedObject, GlobalDeletedFlag.DELETED);
|
||||||
|
return mapper().updateByExampleSelective(deletedObject, e);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("Failed to call reflection method in BaseService.removeBy.", ex);
|
||||||
|
throw new MyRuntimeException(ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -258,8 +299,27 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (fieldName.equals(this.idFieldName)) {
|
if (fieldName.equals(this.idFieldName)) {
|
||||||
return this.existId((K) fieldValue);
|
return this.existId((K) fieldValue);
|
||||||
}
|
}
|
||||||
String columnName = MyModelUtil.mapToColumnName(fieldName, modelClass);
|
Example e = new Example(modelClass);
|
||||||
return mapper().selectCount(new QueryWrapper<M>().eq(columnName, fieldValue)) == 1;
|
e.createCriteria().andEqualTo(fieldName, fieldValue);
|
||||||
|
return mapper().selectCountByExample(e) == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取主键Id关联的数据。
|
||||||
|
*
|
||||||
|
* @param id 主键Id
|
||||||
|
* @return 主键关联的数据,不存在返回null。
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public M getById(K id) {
|
||||||
|
if (deletedFlagFieldName == null) {
|
||||||
|
return mapper().selectByPrimaryKey(id);
|
||||||
|
}
|
||||||
|
Example e = new Example(modelClass);
|
||||||
|
e.createCriteria()
|
||||||
|
.andEqualTo(idFieldName, id)
|
||||||
|
.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
return mapper().selectOneByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -275,9 +335,12 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (filterField.equals(idFieldName)) {
|
if (filterField.equals(idFieldName)) {
|
||||||
return this.getById((K) filterValue);
|
return this.getById((K) filterValue);
|
||||||
}
|
}
|
||||||
String columnName = this.safeMapToColumnName(filterField);
|
Example e = new Example(modelClass);
|
||||||
QueryWrapper<M> queryWrapper = new QueryWrapper<M>().eq(columnName, filterValue);
|
Example.Criteria c = e.createCriteria().andEqualTo(filterField, filterValue);
|
||||||
return mapper().selectOne(queryWrapper);
|
if (deletedFlagFieldName != null) {
|
||||||
|
c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
}
|
||||||
|
return mapper().selectOneByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -302,7 +365,12 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<M> getAllList() {
|
public List<M> getAllList() {
|
||||||
return mapper().selectList(Wrappers.emptyWrapper());
|
if (deletedFlagFieldName == null) {
|
||||||
|
return mapper().selectAll();
|
||||||
|
}
|
||||||
|
Example e = new Example(modelClass);
|
||||||
|
e.createCriteria().andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
return mapper().selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -313,11 +381,14 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<M> getAllListByOrder(String... orderByProperties) {
|
public List<M> getAllListByOrder(String... orderByProperties) {
|
||||||
String[] columns = new String[orderByProperties.length];
|
Example e = new Example(modelClass);
|
||||||
for (int i = 0; i < orderByProperties.length; i++) {
|
for (String orderByProperty : orderByProperties) {
|
||||||
columns[i] = this.safeMapToColumnName(orderByProperties[i]);
|
e.orderBy(orderByProperty);
|
||||||
}
|
}
|
||||||
return mapper().selectList(new QueryWrapper<M>().orderByAsc(columns));
|
if (deletedFlagFieldName != null) {
|
||||||
|
e.and().andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
}
|
||||||
|
return mapper().selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -346,8 +417,8 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (CollectionUtils.isEmpty(inFilterValues)) {
|
if (CollectionUtils.isEmpty(inFilterValues)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
String column = this.safeMapToColumnName(inFilterField);
|
Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, null);
|
||||||
return mapper().selectCount(new QueryWrapper<M>().in(column, inFilterValues)) == inFilterValues.size();
|
return mapper().selectCountByExample(e) == inFilterValues.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -386,12 +457,8 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (CollectionUtils.isEmpty(inFilterValues)) {
|
if (CollectionUtils.isEmpty(inFilterValues)) {
|
||||||
return new LinkedList<>();
|
return new LinkedList<>();
|
||||||
}
|
}
|
||||||
String column = this.safeMapToColumnName(inFilterField);
|
Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, orderBy);
|
||||||
QueryWrapper<M> queryWrapper = new QueryWrapper<M>().in(column, inFilterValues);
|
return mapper().selectByExample(e);
|
||||||
if (StringUtils.isNotBlank(orderBy)) {
|
|
||||||
queryWrapper.last(orderBy);
|
|
||||||
}
|
|
||||||
return mapper().selectList(queryWrapper);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -402,7 +469,16 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int getCountByFilter(M filter) {
|
public int getCountByFilter(M filter) {
|
||||||
return mapper().selectCount(new QueryWrapper<>(filter));
|
if (deletedFlagFieldName == null) {
|
||||||
|
return mapper().selectCount(filter);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
setDeletedFlagMethod.invoke(filter, GlobalDeletedFlag.NORMAL);
|
||||||
|
return mapper().selectCount(filter);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Failed to call reflection [setDeletedFlagMethod] in BaseService.getCountByFilter.", e);
|
||||||
|
throw new MyRuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -424,7 +500,42 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<M> getListByFilter(M filter) {
|
public List<M> getListByFilter(M filter) {
|
||||||
return mapper().selectList(new QueryWrapper<>(filter));
|
if (filter == null) {
|
||||||
|
return this.getAllList();
|
||||||
|
}
|
||||||
|
if (deletedFlagFieldName == null) {
|
||||||
|
return mapper().select(filter);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
setDeletedFlagMethod.invoke(filter, GlobalDeletedFlag.NORMAL);
|
||||||
|
return mapper().select(filter);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("Failed to call reflection code of BaseService.getListByFilter.", ex);
|
||||||
|
throw new MyRuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assembleCriteriaByFilter(M filter, Field field, Example.Criteria c) {
|
||||||
|
int modifiers = field.getModifiers();
|
||||||
|
// transient类型的字段不能作为查询条件
|
||||||
|
int transientMask = 128;
|
||||||
|
if ((modifiers & transientMask) != 0 || Modifier.isStatic(modifiers)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (field.getName().equals(deletedFlagFieldName)) {
|
||||||
|
c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
} else {
|
||||||
|
ReflectUtil.setAccessible(field);
|
||||||
|
try {
|
||||||
|
Object o = field.get(filter);
|
||||||
|
if (o != null) {
|
||||||
|
c.andEqualTo(field.getName(), field.get(filter));
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException ex) {
|
||||||
|
log.error("Failed to call reflection code of BaseService.getListByFilter.", ex);
|
||||||
|
throw new MyRuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -436,14 +547,17 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<M> getListByParentId(String parentIdFieldName, K parentId) {
|
public List<M> getListByParentId(String parentIdFieldName, K parentId) {
|
||||||
QueryWrapper<M> queryWrapper = new QueryWrapper<>();
|
Example e = new Example(modelClass);
|
||||||
String parentIdColumn = this.safeMapToColumnName(parentIdFieldName);
|
Example.Criteria c = e.createCriteria();
|
||||||
if (parentId != null) {
|
if (parentId != null) {
|
||||||
queryWrapper.eq(parentIdColumn, parentId);
|
c.andEqualTo(parentIdFieldName, parentId);
|
||||||
} else {
|
} else {
|
||||||
queryWrapper.isNull(parentIdColumn);
|
c.andIsNull(parentIdFieldName);
|
||||||
}
|
}
|
||||||
return mapper().selectList(queryWrapper);
|
if (deletedFlagFieldName != null) {
|
||||||
|
c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
|
}
|
||||||
|
return mapper().selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -473,21 +587,32 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<M> getListByCondition(List<String> selectList, M filter, String whereClause, String orderBy) {
|
public List<M> getListByCondition(List<String> selectList, M filter, String whereClause, String orderBy) {
|
||||||
QueryWrapper<M> queryWrapper = new QueryWrapper<>(filter);
|
Example e = new Example(modelClass);
|
||||||
|
Example.Criteria c = null;
|
||||||
if (CollectionUtils.isNotEmpty(selectList)) {
|
if (CollectionUtils.isNotEmpty(selectList)) {
|
||||||
String[] columns = new String[selectList.size()];
|
String[] selectFields = new String[selectList.size()];
|
||||||
for (int i = 0; i < selectList.size(); i++) {
|
selectList.toArray(selectFields);
|
||||||
columns[i] = this.safeMapToColumnName(selectList.get(i));
|
e.selectProperties(selectFields);
|
||||||
}
|
|
||||||
queryWrapper.select(columns);
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(whereClause)) {
|
|
||||||
queryWrapper.apply(whereClause);
|
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(orderBy)) {
|
if (StringUtils.isNotBlank(orderBy)) {
|
||||||
queryWrapper.last(" ORDER BY " + orderBy);
|
e.setOrderByClause(orderBy);
|
||||||
}
|
}
|
||||||
return mapper().selectList(queryWrapper);
|
if (filter != null) {
|
||||||
|
c = e.createCriteria();
|
||||||
|
Field[] fields = ReflectUtil.getFields(modelClass);
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (field.getAnnotation(Transient.class) == null) {
|
||||||
|
this.assembleCriteriaByFilter(filter, field, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(whereClause)) {
|
||||||
|
if (c == null) {
|
||||||
|
c = e.createCriteria();
|
||||||
|
}
|
||||||
|
c.andCondition(whereClause);
|
||||||
|
}
|
||||||
|
return mapper().selectByExample(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -592,7 +717,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*
|
*
|
||||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||||
* @param relationParam 实体对象数据组装的参数构建器。
|
* @param relationParam 实体对象数据组装的参数构建器。
|
||||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
* @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize) {
|
public void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize) {
|
||||||
@@ -613,7 +738,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
*
|
*
|
||||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||||
* @param relationParam 实体对象数据组装的参数构建器。
|
* @param relationParam 实体对象数据组装的参数构建器。
|
||||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
* @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
|
||||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -786,10 +911,9 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||||
String masterIdColumn = this.safeMapToColumnName(relationStruct.masterIdField.getName());
|
Example e = new Example(relationStruct.relationManyToMany.relationModelClass());
|
||||||
Map<String, Object> filterMap = new HashMap<>(1);
|
e.createCriteria().andEqualTo(relationStruct.masterIdField.getName(), masterIdValue);
|
||||||
filterMap.put(masterIdColumn, masterIdValue);
|
List<?> manyToManyList = relationStruct.manyToManyMapper.selectByExample(e);
|
||||||
List<?> manyToManyList = relationStruct.manyToManyMapper.selectByMap(filterMap);
|
|
||||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, manyToManyList);
|
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, manyToManyList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1180,7 +1304,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (CollectionUtils.isEmpty(masterIdSet)) {
|
if (CollectionUtils.isEmpty(masterIdSet)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
BaseService<Object, Serializable> relationService = relationStruct.localService;
|
BaseService<Object, Object> relationService = relationStruct.localService;
|
||||||
List<Object> relationList =
|
List<Object> relationList =
|
||||||
relationService.getInList(relationStruct.relationOneToOne.slaveIdField(), masterIdSet);
|
relationService.getInList(relationStruct.relationOneToOne.slaveIdField(), masterIdSet);
|
||||||
MyModelUtil.makeOneToOneRelation(
|
MyModelUtil.makeOneToOneRelation(
|
||||||
@@ -1189,8 +1313,8 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
if (withDict && relationStruct.relationOneToOne.loadSlaveDict()
|
if (withDict && relationStruct.relationOneToOne.loadSlaveDict()
|
||||||
&& CollectionUtils.isNotEmpty(relationList)) {
|
&& CollectionUtils.isNotEmpty(relationList)) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
BaseService<Object, Serializable> proxyTarget =
|
BaseService<Object, Object> proxyTarget =
|
||||||
(BaseService<Object, Serializable>) AopTargetUtil.getTarget(relationService);
|
(BaseService<Object, Object>) AopTargetUtil.getTarget(relationService);
|
||||||
// 关联常量字典
|
// 关联常量字典
|
||||||
proxyTarget.buildConstDictForDataList(relationList, ignoreFields);
|
proxyTarget.buildConstDictForDataList(relationList, ignoreFields);
|
||||||
// 关联本地字典。
|
// 关联本地字典。
|
||||||
@@ -1219,14 +1343,14 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
BaseService<Object, Serializable> relationService = relationStruct.localService;
|
BaseService<Object, Object> relationService = relationStruct.localService;
|
||||||
Object relationObject = relationService.getOne(relationStruct.relationOneToOne.slaveIdField(), id);
|
Object relationObject = relationService.getOne(relationStruct.relationOneToOne.slaveIdField(), id);
|
||||||
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, relationObject);
|
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, relationObject);
|
||||||
// 仅仅当需要加载从表字典关联时,才去加载。
|
// 仅仅当需要加载从表字典关联时,才去加载。
|
||||||
if (withDict && relationStruct.relationOneToOne.loadSlaveDict() && relationObject != null) {
|
if (withDict && relationStruct.relationOneToOne.loadSlaveDict() && relationObject != null) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
BaseService<Object, Serializable> proxyTarget =
|
BaseService<Object, Object> proxyTarget =
|
||||||
(BaseService<Object, Serializable>) AopTargetUtil.getTarget(relationService);
|
(BaseService<Object, Object>) AopTargetUtil.getTarget(relationService);
|
||||||
// 关联常量字典
|
// 关联常量字典
|
||||||
proxyTarget.buildConstDictForData(relationObject, ignoreFields);
|
proxyTarget.buildConstDictForData(relationObject, ignoreFields);
|
||||||
// 关联本地字典。
|
// 关联本地字典。
|
||||||
@@ -1258,7 +1382,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
.collect(toSet());
|
.collect(toSet());
|
||||||
// 从主表集合中,抽取主表关联字段的集合,再以in list形式去从表中查询。
|
// 从主表集合中,抽取主表关联字段的集合,再以in list形式去从表中查询。
|
||||||
if (CollectionUtils.isNotEmpty(masterIdSet)) {
|
if (CollectionUtils.isNotEmpty(masterIdSet)) {
|
||||||
BaseService<Object, Serializable> relationService = relationStruct.localService;
|
BaseService<Object, Object> relationService = relationStruct.localService;
|
||||||
List<Object> relationList =
|
List<Object> relationList =
|
||||||
relationService.getInList(relationStruct.relationOneToMany.slaveIdField(), masterIdSet);
|
relationService.getInList(relationStruct.relationOneToMany.slaveIdField(), masterIdSet);
|
||||||
MyModelUtil.makeOneToManyRelation(
|
MyModelUtil.makeOneToManyRelation(
|
||||||
@@ -1283,7 +1407,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
BaseService<Object, Serializable> relationService = relationStruct.localService;
|
BaseService<Object, Object> relationService = relationStruct.localService;
|
||||||
Set<Object> masterIdSet = new HashSet<>(1);
|
Set<Object> masterIdSet = new HashSet<>(1);
|
||||||
masterIdSet.add(id);
|
masterIdSet.add(id);
|
||||||
List<Object> relationObject = relationService.getInList(
|
List<Object> relationObject = relationService.getInList(
|
||||||
@@ -1611,6 +1735,23 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void saveInternal(List<M> dataList, Supplier<K> idGenerator, Consumer<List<M>> batchInserter) {
|
||||||
|
if (CollectionUtils.isEmpty(dataList)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dataList.stream().filter(c -> ReflectUtil.getFieldValue(c, idFieldName) == null)
|
||||||
|
.forEach(o -> ReflectUtil.setFieldValue(o, idFieldName, idGenerator.get()));
|
||||||
|
if (batchInserter != null) {
|
||||||
|
batchInserter.accept(dataList);
|
||||||
|
} else {
|
||||||
|
for (M data : dataList) {
|
||||||
|
mapper().insert(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 缺省实现返回null,在进行一对多和多对多聚合计算时,没有额外的自定义过滤条件。如有需要,需子类自行实现。
|
* 缺省实现返回null,在进行一对多和多对多聚合计算时,没有额外的自定义过滤条件。如有需要,需子类自行实现。
|
||||||
*
|
*
|
||||||
@@ -1658,97 +1799,32 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 因为Mybatis Plus中QueryWrapper的条件方法都要求传入数据表字段名,因此提供该函数将
|
* 通过(In-list)条件和orderBy条件,构建Example对象,以供后续的查询操作使用。
|
||||||
* Java实体对象的字段名转换为数据表字段名,如果不存在会抛出异常。
|
|
||||||
* 另外在MyModelUtil.mapToColumnName有一级缓存,对于查询过的对象字段都会放到缓存中,
|
|
||||||
* 下次映射转换的时候,会直接从缓存获取。
|
|
||||||
*
|
*
|
||||||
* @param fieldName Java实体对象的字段名。
|
* @param inFilterField 参与(In-list)过滤的Java字段。
|
||||||
* @return 对应的数据表字段名。
|
* @param inFilterValues 参与(In-list)过滤的字段值集合。
|
||||||
|
* @param orderBy 排序字段。
|
||||||
|
* @param <T> in 属性字段的类型。
|
||||||
|
* @return 构建后的Example对象。
|
||||||
*/
|
*/
|
||||||
protected String safeMapToColumnName(String fieldName) {
|
protected <T> Example makeDefaultInListExample(String inFilterField, Collection<T> inFilterValues, String orderBy) {
|
||||||
String columnName = MyModelUtil.mapToColumnName(fieldName, modelClass);
|
Set<T> inFilterValueSet;
|
||||||
if (columnName == null) {
|
Example e = new Example(modelClass);
|
||||||
throw new InvalidDataFieldException(modelClass.getSimpleName(), fieldName);
|
if (StringUtils.isNotBlank(orderBy)) {
|
||||||
|
e.setOrderByClause(orderBy);
|
||||||
}
|
}
|
||||||
return columnName;
|
if (inFilterValues instanceof Set) {
|
||||||
|
inFilterValueSet = (Set<T>) inFilterValues;
|
||||||
|
} else {
|
||||||
|
inFilterValueSet = new HashSet<>(inFilterValues.size());
|
||||||
|
inFilterValueSet.addAll(inFilterValues);
|
||||||
}
|
}
|
||||||
|
Example.Criteria c = e.createCriteria();
|
||||||
/**
|
c.andIn(inFilterField, inFilterValueSet);
|
||||||
* 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
|
if (deletedFlagFieldName != null) {
|
||||||
* 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
|
c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
|
||||||
* 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
|
|
||||||
* 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
|
|
||||||
* 相比于其他重载方法,该方法会将参数中的主键id,设置到UpdateWrapper的过滤条件中。
|
|
||||||
*
|
|
||||||
* @param o 实体对象。
|
|
||||||
* @param id 实体对象的主键值。
|
|
||||||
* @return 创建后的UpdateWrapper。
|
|
||||||
*/
|
|
||||||
protected UpdateWrapper<M> createUpdateQueryForNullValue(M o, K id) {
|
|
||||||
UpdateWrapper<M> uw = createUpdateQueryForNullValue(o, modelClass);
|
|
||||||
try {
|
|
||||||
M filter = modelClass.newInstance();
|
|
||||||
this.setIdFieldMethod.invoke(filter, id);
|
|
||||||
uw.setEntity(filter);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("Failed to call reflection code of BaseService.createUpdateQueryForNullValue.", e);
|
|
||||||
throw new MyRuntimeException(e);
|
|
||||||
}
|
}
|
||||||
return uw;
|
return e;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
|
|
||||||
* 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
|
|
||||||
* 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
|
|
||||||
* 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
|
|
||||||
*
|
|
||||||
* @param o 实体对象。
|
|
||||||
* @return 创建后的UpdateWrapper。
|
|
||||||
*/
|
|
||||||
protected UpdateWrapper<M> createUpdateQueryForNullValue(M o) {
|
|
||||||
return createUpdateQueryForNullValue(o, modelClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
|
|
||||||
* 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
|
|
||||||
* 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
|
|
||||||
* 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
|
|
||||||
*
|
|
||||||
* @param o 实体对象。
|
|
||||||
* @param clazz 实体对象的class。
|
|
||||||
* @return 创建后的UpdateWrapper。
|
|
||||||
*/
|
|
||||||
public static <T> UpdateWrapper<T> createUpdateQueryForNullValue(T o, Class<T> clazz) {
|
|
||||||
UpdateWrapper<T> uw = new UpdateWrapper<>();
|
|
||||||
Field[] fields = ReflectUtil.getFields(clazz);
|
|
||||||
List<String> nullColumnList = new LinkedList<>();
|
|
||||||
for (Field field : fields) {
|
|
||||||
TableField tableField = field.getAnnotation(TableField.class);
|
|
||||||
if (tableField == null || tableField.exist()) {
|
|
||||||
int modifiers = field.getModifiers();
|
|
||||||
// transient类型的字段不能作为查询条件,静态字段和逻辑删除都不考虑。
|
|
||||||
int transientMask = 128;
|
|
||||||
if ((modifiers & transientMask) == 1
|
|
||||||
|| Modifier.isStatic(modifiers)
|
|
||||||
|| field.getAnnotation(TableLogic.class) != null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// 仅当实体对象参数中,当前字段值为null的时候,才会赋值给UpdateWrapper。
|
|
||||||
// 以便在后续的更新中,可以将这些null字段的值设置到数据库表对应的字段中。
|
|
||||||
if (ReflectUtil.getFieldValue(o, field) == null) {
|
|
||||||
nullColumnList.add(MyModelUtil.safeMapToColumnName(field.getName(), clazz));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CollectionUtils.isNotEmpty(nullColumnList)) {
|
|
||||||
for (String nullColumn : nullColumnList) {
|
|
||||||
uw.set(nullColumn, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return uw;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -1838,7 +1914,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
relationStruct.localService = ApplicationContextHolder.getBean(
|
relationStruct.localService = ApplicationContextHolder.getBean(
|
||||||
StringUtils.uncapitalize(relationOneToOne.slaveServiceName()));
|
StringUtils.uncapitalize(relationOneToOne.slaveServiceName()));
|
||||||
} else {
|
} else {
|
||||||
relationStruct.localService = (BaseService<Object, Serializable>)
|
relationStruct.localService = (BaseService<Object, Object>)
|
||||||
ApplicationContextHolder.getBean(relationOneToOne.slaveServiceClass());
|
ApplicationContextHolder.getBean(relationOneToOne.slaveServiceClass());
|
||||||
}
|
}
|
||||||
localRelationOneToOneStructList.add(relationStruct);
|
localRelationOneToOneStructList.add(relationStruct);
|
||||||
@@ -1854,7 +1930,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
relationStruct.localService = ApplicationContextHolder.getBean(
|
relationStruct.localService = ApplicationContextHolder.getBean(
|
||||||
StringUtils.uncapitalize(relationOneToMany.slaveServiceName()));
|
StringUtils.uncapitalize(relationOneToMany.slaveServiceName()));
|
||||||
} else {
|
} else {
|
||||||
relationStruct.localService = (BaseService<Object, Serializable>)
|
relationStruct.localService = (BaseService<Object, Object>)
|
||||||
ApplicationContextHolder.getBean(relationOneToMany.slaveServiceClass());
|
ApplicationContextHolder.getBean(relationOneToMany.slaveServiceClass());
|
||||||
}
|
}
|
||||||
localRelationOneToManyStructList.add(relationStruct);
|
localRelationOneToManyStructList.add(relationStruct);
|
||||||
@@ -1901,7 +1977,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
relationStruct.localService =
|
relationStruct.localService =
|
||||||
ApplicationContextHolder.getBean(StringUtils.uncapitalize(relationDict.slaveServiceName()));
|
ApplicationContextHolder.getBean(StringUtils.uncapitalize(relationDict.slaveServiceName()));
|
||||||
} else {
|
} else {
|
||||||
relationStruct.localService = (BaseService<Object, Serializable>)
|
relationStruct.localService = (BaseService<Object, Object>)
|
||||||
ApplicationContextHolder.getBean(relationDict.slaveServiceClass());
|
ApplicationContextHolder.getBean(relationDict.slaveServiceClass());
|
||||||
}
|
}
|
||||||
localRelationDictStructList.add(relationStruct);
|
localRelationDictStructList.add(relationStruct);
|
||||||
@@ -1923,7 +1999,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
relationStruct.localService = ApplicationContextHolder.getBean(
|
relationStruct.localService = ApplicationContextHolder.getBean(
|
||||||
StringUtils.uncapitalize(relationOneToManyAggregation.slaveServiceName()));
|
StringUtils.uncapitalize(relationOneToManyAggregation.slaveServiceName()));
|
||||||
} else {
|
} else {
|
||||||
relationStruct.localService = (BaseService<Object, Serializable>)
|
relationStruct.localService = (BaseService<Object, Object>)
|
||||||
ApplicationContextHolder.getBean(relationOneToManyAggregation.slaveServiceClass());
|
ApplicationContextHolder.getBean(relationOneToManyAggregation.slaveServiceClass());
|
||||||
}
|
}
|
||||||
localRelationOneToManyAggrStructList.add(relationStruct);
|
localRelationOneToManyAggrStructList.add(relationStruct);
|
||||||
@@ -1942,7 +2018,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
relationStruct.localService = ApplicationContextHolder.getBean(
|
relationStruct.localService = ApplicationContextHolder.getBean(
|
||||||
StringUtils.uncapitalize(relationManyToManyAggregation.slaveServiceName()));
|
StringUtils.uncapitalize(relationManyToManyAggregation.slaveServiceName()));
|
||||||
} else {
|
} else {
|
||||||
relationStruct.localService = (BaseService<Object, Serializable>)
|
relationStruct.localService = (BaseService<Object, Object>)
|
||||||
ApplicationContextHolder.getBean(relationManyToManyAggregation.slaveServiceClass());
|
ApplicationContextHolder.getBean(relationManyToManyAggregation.slaveServiceClass());
|
||||||
}
|
}
|
||||||
localRelationManyToManyAggrStructList.add(relationStruct);
|
localRelationManyToManyAggrStructList.add(relationStruct);
|
||||||
@@ -2335,7 +2411,7 @@ public abstract class BaseService<M, K extends Serializable> extends ServiceImpl
|
|||||||
|
|
||||||
static class LocalRelationStruct extends RelationStruct {
|
static class LocalRelationStruct extends RelationStruct {
|
||||||
private Field equalOneToOneRelationField;
|
private Field equalOneToOneRelationField;
|
||||||
private BaseService<Object, Serializable> localService;
|
private BaseService<Object, Object> localService;
|
||||||
private BaseDaoMapper<Object> manyToManyMapper;
|
private BaseDaoMapper<Object> manyToManyMapper;
|
||||||
private Map<Object, String> dictMap;
|
private Map<Object, String> dictMap;
|
||||||
private RelationDict relationDict;
|
private RelationDict relationDict;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.orange.demo.common.core.base.service;
|
package com.orange.demo.common.core.base.service;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,7 +10,7 @@ import java.util.List;
|
|||||||
* @author Jerry
|
* @author Jerry
|
||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
public interface IBaseDictService<M, K extends Serializable> extends IBaseService<M, K> {
|
public interface IBaseDictService<M, K> extends IBaseService<M, K> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重新加载数据库中所有当前表数据到系统内存。
|
* 重新加载数据库中所有当前表数据到系统内存。
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.orange.demo.common.core.base.service;
|
package com.orange.demo.common.core.base.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import com.orange.demo.common.core.object.MyRelationParam;
|
import com.orange.demo.common.core.object.MyRelationParam;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 所有Service的接口。
|
* 所有Service的接口。
|
||||||
@@ -14,7 +14,15 @@ import java.util.*;
|
|||||||
* @author Jerry
|
* @author Jerry
|
||||||
* @date 2020-08-08
|
* @date 2020-08-08
|
||||||
*/
|
*/
|
||||||
public interface IBaseService<M, K extends Serializable> extends IService<M>{
|
public interface IBaseService<M, K> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基于主键Id删除数据。如果包含逻辑删除字段,则进行逻辑删除。
|
||||||
|
*
|
||||||
|
* @param id 主键Id值。
|
||||||
|
* @return true删除成功,false数据不存在。
|
||||||
|
*/
|
||||||
|
boolean removeById(K id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据过滤条件删除数据。
|
* 根据过滤条件删除数据。
|
||||||
@@ -42,6 +50,14 @@ public interface IBaseService<M, K extends Serializable> extends IService<M>{
|
|||||||
*/
|
*/
|
||||||
boolean existId(K id);
|
boolean existId(K id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取主键Id关联的数据。
|
||||||
|
*
|
||||||
|
* @param id 主键Id。
|
||||||
|
* @return 主键关联的数据,不存在返回null。
|
||||||
|
*/
|
||||||
|
M getById(K id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 返回符合 filterField = filterValue 条件的一条数据。
|
* 返回符合 filterField = filterValue 条件的一条数据。
|
||||||
*
|
*
|
||||||
@@ -218,7 +234,7 @@ public interface IBaseService<M, K extends Serializable> extends IService<M>{
|
|||||||
*
|
*
|
||||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||||
* @param relationParam 实体对象数据组装的参数构建器。
|
* @param relationParam 实体对象数据组装的参数构建器。
|
||||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
* @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
|
||||||
*/
|
*/
|
||||||
void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize);
|
void buildRelationForDataList(List<M> resultList, MyRelationParam relationParam, int batchSize);
|
||||||
|
|
||||||
@@ -236,7 +252,7 @@ public interface IBaseService<M, K extends Serializable> extends IService<M>{
|
|||||||
*
|
*
|
||||||
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
|
||||||
* @param relationParam 实体对象数据组装的参数构建器。
|
* @param relationParam 实体对象数据组装的参数构建器。
|
||||||
* @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
|
* @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
|
||||||
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
|
||||||
*/
|
*/
|
||||||
void buildRelationForDataList(
|
void buildRelationForDataList(
|
||||||
@@ -274,4 +290,16 @@ public interface IBaseService<M, K extends Serializable> extends IService<M>{
|
|||||||
* 仅仅在spring boot 启动后的监听器事件中调用,缓存所有service的关联关系,加速后续的数据绑定效率。
|
* 仅仅在spring boot 启动后的监听器事件中调用,缓存所有service的关联关系,加速后续的数据绑定效率。
|
||||||
*/
|
*/
|
||||||
void loadLocalRelationStruct();
|
void loadLocalRelationStruct();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内部使用的批量保存方法。在使用前要确保清楚该方法的实现功能。
|
||||||
|
* 该方法通常用于从表数据的批量更新,为了保证已有数据的主键不变,我们通常会在执行该方法前,根据主表的关联数据,
|
||||||
|
* 删除从表中的数据。之后在迭代参数dataList,并将没有主键值的对象视为新对象,该方法将为这些新对象生成主键值。
|
||||||
|
* 其他包含主键值的对象,为已有对象,不做任何修改。填充主键后,将dataList集合中的数据批量插入到数据表。
|
||||||
|
*
|
||||||
|
* @param dataList 待操作的数据列表。
|
||||||
|
* @param idGenerator 主键值生成器方法。
|
||||||
|
* @param batchInserter 批量插入方法。
|
||||||
|
*/
|
||||||
|
void saveInternal(List<M> dataList, Supplier<K> idGenerator, Consumer<List<M>> batchInserter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ public class FeignConfig implements RequestInterceptor {
|
|||||||
requestTemplate.header(TokenData.REQUEST_ATTRIBUTE_NAME, tokenData);
|
requestTemplate.header(TokenData.REQUEST_ATTRIBUTE_NAME, tokenData);
|
||||||
}
|
}
|
||||||
String traceId = ContextUtil.getHttpRequest().getHeader(ApplicationConstant.HTTP_HEADER_TRACE_ID);
|
String traceId = ContextUtil.getHttpRequest().getHeader(ApplicationConstant.HTTP_HEADER_TRACE_ID);
|
||||||
|
if (StringUtils.isBlank(traceId)) {
|
||||||
|
traceId = (String) ContextUtil.getHttpRequest().getAttribute(ApplicationConstant.HTTP_HEADER_TRACE_ID);
|
||||||
|
}
|
||||||
if (StringUtils.isNotBlank(traceId)) {
|
if (StringUtils.isNotBlank(traceId)) {
|
||||||
requestTemplate.header(ApplicationConstant.HTTP_HEADER_TRACE_ID, traceId);
|
requestTemplate.header(ApplicationConstant.HTTP_HEADER_TRACE_ID, traceId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.orange.demo.common.core.constant;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App 登录的设备类型。
|
||||||
|
*
|
||||||
|
* @author Jerry
|
||||||
|
* @date 2020-08-08
|
||||||
|
*/
|
||||||
|
public final class AppDeviceType {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移动端 (如果不考虑区分android或ios的,可以使用该值)
|
||||||
|
*/
|
||||||
|
public static final int MOBILE = 0;
|
||||||
|
/**
|
||||||
|
* android
|
||||||
|
*/
|
||||||
|
public static final int ANDROID = 1;
|
||||||
|
/**
|
||||||
|
* iOS
|
||||||
|
*/
|
||||||
|
public static final int IOS = 2;
|
||||||
|
/**
|
||||||
|
* 微信公众号和小程序
|
||||||
|
*/
|
||||||
|
public static final int WEIXIN = 3;
|
||||||
|
/**
|
||||||
|
* PC WEB
|
||||||
|
*/
|
||||||
|
public static final int WEB = 4;
|
||||||
|
|
||||||
|
private static final Map<Object, String> DICT_MAP = new HashMap<>(5);
|
||||||
|
static {
|
||||||
|
DICT_MAP.put(MOBILE, "移动端");
|
||||||
|
DICT_MAP.put(ANDROID, "Android");
|
||||||
|
DICT_MAP.put(IOS, "iOS");
|
||||||
|
DICT_MAP.put(WEIXIN, "微信");
|
||||||
|
DICT_MAP.put(WEB, "PC WEB");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断参数是否为当前常量字典的合法值。
|
||||||
|
*
|
||||||
|
* @param value 待验证的参数值。
|
||||||
|
* @return 合法返回true,否则false。
|
||||||
|
*/
|
||||||
|
public static boolean isValid(Integer value) {
|
||||||
|
return value != null && DICT_MAP.containsKey(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 私有构造函数,明确标识该常量类的作用。
|
||||||
|
*/
|
||||||
|
private AppDeviceType() {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -55,4 +55,8 @@ public class LoginUserInfo {
|
|||||||
* 登录时间。
|
* 登录时间。
|
||||||
*/
|
*/
|
||||||
private Date loginTime;
|
private Date loginTime;
|
||||||
|
/**
|
||||||
|
* 登录设备类型。
|
||||||
|
*/
|
||||||
|
private Integer deviceType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public class ResponseResult<T> {
|
|||||||
* @return 返回创建的ResponseResult实例对象
|
* @return 返回创建的ResponseResult实例对象
|
||||||
*/
|
*/
|
||||||
public static <T> ResponseResult<T> error(String errorCode, String errorMessage) {
|
public static <T> ResponseResult<T> error(String errorCode, String errorMessage) {
|
||||||
return new ResponseResult<>(false, errorCode, errorMessage);
|
return new ResponseResult<>(errorCode, errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -213,8 +213,8 @@ public class ResponseResult<T> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ResponseResult(boolean success, String errorCode, String errorMessage) {
|
private ResponseResult(String errorCode, String errorMessage) {
|
||||||
this.success = success;
|
this.success = false;
|
||||||
this.errorCode = errorCode;
|
this.errorCode = errorCode;
|
||||||
this.errorMessage = errorMessage;
|
this.errorMessage = errorMessage;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,10 @@ public class TokenData {
|
|||||||
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
|
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
|
||||||
*/
|
*/
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
/**
|
||||||
|
* 用户的部门岗位Id。多个岗位之间逗号分隔。仅当系统支持岗位时有值。
|
||||||
|
*/
|
||||||
|
private String deptPostIds;
|
||||||
/**
|
/**
|
||||||
* 租户Id。
|
* 租户Id。
|
||||||
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
|
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
|
||||||
@@ -54,6 +58,10 @@ public class TokenData {
|
|||||||
* 用户显示名称。
|
* 用户显示名称。
|
||||||
*/
|
*/
|
||||||
private String showName;
|
private String showName;
|
||||||
|
/**
|
||||||
|
* 设备类型。参考 AppDeviceType。
|
||||||
|
*/
|
||||||
|
private Integer deviceType;
|
||||||
/**
|
/**
|
||||||
* 标识不同登录的会话Id。
|
* 标识不同登录的会话Id。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.crypto.digest.DigestUtil;
|
import cn.hutool.crypto.digest.DigestUtil;
|
||||||
|
import com.orange.demo.common.core.constant.AppDeviceType;
|
||||||
|
|
||||||
import javax.validation.ConstraintViolation;
|
import javax.validation.ConstraintViolation;
|
||||||
import javax.validation.Validation;
|
import javax.validation.Validation;
|
||||||
@@ -168,6 +169,24 @@ public class MyCommonUtil {
|
|||||||
return new String[]{};
|
return new String[]{};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取请求头中的设备信息。
|
||||||
|
*
|
||||||
|
* @return 设备类型,具体值可参考AppDeviceType常量类。
|
||||||
|
*/
|
||||||
|
public static int getDeviceType() {
|
||||||
|
// 缺省都按照Web登录方式设置,如果前端header中的值为不合法值,这里也不会报错,而是使用Web缺省方式。
|
||||||
|
int deviceType = AppDeviceType.WEB;
|
||||||
|
String deviceTypeString = ContextUtil.getHttpRequest().getHeader("deviceType");
|
||||||
|
if (StrUtil.isNotBlank(deviceTypeString)) {
|
||||||
|
Integer type = Integer.valueOf(deviceTypeString);
|
||||||
|
if (AppDeviceType.isValid(type)) {
|
||||||
|
deviceType = type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return deviceType;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 私有构造函数,明确标识该常量类的作用。
|
* 私有构造函数,明确标识该常量类的作用。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -2,19 +2,22 @@ package com.orange.demo.common.core.util;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import com.orange.demo.common.core.exception.InvalidDataFieldException;
|
import com.orange.demo.common.core.exception.InvalidDataFieldException;
|
||||||
import com.orange.demo.common.core.annotation.*;
|
import com.orange.demo.common.core.annotation.*;
|
||||||
import com.orange.demo.common.core.exception.MyRuntimeException;
|
import com.orange.demo.common.core.exception.MyRuntimeException;
|
||||||
import com.orange.demo.common.core.object.TokenData;
|
import com.orange.demo.common.core.object.TokenData;
|
||||||
import com.orange.demo.common.core.object.Tuple2;
|
import com.orange.demo.common.core.object.Tuple2;
|
||||||
import com.orange.demo.common.core.upload.UploadStoreInfo;
|
import com.orange.demo.common.core.upload.UploadStoreInfo;
|
||||||
import com.google.common.base.CaseFormat;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import tk.mybatis.mapper.entity.Example;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Transient;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -204,20 +207,8 @@ public class MyModelUtil {
|
|||||||
if (field == null) {
|
if (field == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
TableField c = field.getAnnotation(TableField.class);
|
Column c = field.getAnnotation(Column.class);
|
||||||
String columnName = null;
|
String columnName = c == null ? fieldName : c.name();
|
||||||
if (c == null) {
|
|
||||||
TableId id = field.getAnnotation(TableId.class);
|
|
||||||
if (id != null) {
|
|
||||||
columnName = id.value();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (columnName == null) {
|
|
||||||
columnName = c == null ? CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName) : c.value();
|
|
||||||
if (StringUtils.isBlank(columnName)) {
|
|
||||||
columnName = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 这里缺省情况下都是按照整型去处理,因为他覆盖太多的类型了。
|
// 这里缺省情况下都是按照整型去处理,因为他覆盖太多的类型了。
|
||||||
// 如Integer/Long/Double/BigDecimal,可根据实际情况完善和扩充。
|
// 如Integer/Long/Double/BigDecimal,可根据实际情况完善和扩充。
|
||||||
String typeName = field.getType().getSimpleName();
|
String typeName = field.getType().getSimpleName();
|
||||||
@@ -240,8 +231,8 @@ public class MyModelUtil {
|
|||||||
* @return Model对象对应的数据表名称。
|
* @return Model对象对应的数据表名称。
|
||||||
*/
|
*/
|
||||||
public static String mapToTableName(Class<?> modelClazz) {
|
public static String mapToTableName(Class<?> modelClazz) {
|
||||||
TableName t = modelClazz.getAnnotation(TableName.class);
|
Table t = modelClazz.getAnnotation(Table.class);
|
||||||
return t == null ? null : t.value();
|
return t == null ? null : t.name();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -614,6 +605,43 @@ public class MyModelUtil {
|
|||||||
return isMap ? BeanUtil.beanToMap(model) : model;
|
return isMap ? BeanUtil.beanToMap(model) : model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换过滤对象到与其等效的Example对象。
|
||||||
|
*
|
||||||
|
* @param filterModel 过滤对象。
|
||||||
|
* @param modelClass 过滤对象的Class对象。
|
||||||
|
* @param <T> 过滤对象类型。
|
||||||
|
* @return 转换后的Example对象。
|
||||||
|
*/
|
||||||
|
public static <T> Example convertFilterModelToExample(T filterModel, Class<T> modelClass) {
|
||||||
|
if (filterModel == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Example e = new Example(modelClass);
|
||||||
|
Example.Criteria c = e.createCriteria();
|
||||||
|
Field[] fields = ReflectUtil.getFields(modelClass);
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (field.getAnnotation(Transient.class) == null) {
|
||||||
|
int modifiers = field.getModifiers();
|
||||||
|
// transient类型的字段不能作为查询条件
|
||||||
|
if ((modifiers & 128) != 0 || Modifier.isStatic(modifiers)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ReflectUtil.setAccessible(field);
|
||||||
|
try {
|
||||||
|
Object o = field.get(filterModel);
|
||||||
|
if (o != null) {
|
||||||
|
c.andEqualTo(field.getName(), field.get(filterModel));
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException ex) {
|
||||||
|
log.error("Failed to call reflection code.", ex);
|
||||||
|
throw new MyRuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取上传字段的存储信息。
|
* 获取上传字段的存储信息。
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -27,6 +27,17 @@ public class RedisKeyUtil {
|
|||||||
return "SESSIONID__" + loginName + "_";
|
return "SESSIONID__" + loginName + "_";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定用户Id和登录设备类型的session缓存的键前缀。
|
||||||
|
*
|
||||||
|
* @param loginName 指定的用户登录名。
|
||||||
|
* @param deviceType 设备类型。
|
||||||
|
* @return session缓存的键前缀。
|
||||||
|
*/
|
||||||
|
public static String getSessionIdPrefix(String loginName, int deviceType) {
|
||||||
|
return "SESSIONID__" + loginName + "_" + deviceType + "_";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算SessionId返回存储于Redis中的键。
|
* 计算SessionId返回存储于Redis中的键。
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -64,20 +64,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -65,20 +65,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -82,20 +82,23 @@
|
|||||||
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
|
<orderEntry type="library" name="Maven: tk.mybatis:mapper-spring-boot-starter:2.1.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.10.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.14.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.14.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.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
|
||||||
|
|||||||
@@ -40,7 +40,8 @@
|
|||||||
|
|
||||||
<!-- 数据库工具版本 -->
|
<!-- 数据库工具版本 -->
|
||||||
<druid.version>1.2.6</druid.version>
|
<druid.version>1.2.6</druid.version>
|
||||||
<mybatisplus.version>3.4.2</mybatisplus.version>
|
<mybatis-mapper.version>2.1.5</mybatis-mapper.version>
|
||||||
|
<mybatis-generator.version>1.3.7</mybatis-generator.version>
|
||||||
<pagehelper.version>1.3.0</pagehelper.version>
|
<pagehelper.version>1.3.0</pagehelper.version>
|
||||||
<redisson.version>3.15.4</redisson.version>
|
<redisson.version>3.15.4</redisson.version>
|
||||||
<qdox.version>2.0.0</qdox.version>
|
<qdox.version>2.0.0</qdox.version>
|
||||||
|
|||||||
@@ -25,13 +25,15 @@ sequence:
|
|||||||
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
||||||
zkPath: com/orange/demo
|
zkPath: com/orange/demo
|
||||||
|
|
||||||
mybatis-plus:
|
# mybatis的基本配置
|
||||||
mapper-locations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml
|
mybatis:
|
||||||
type-aliases-package: com.orange.demo.*.model
|
mapperLocations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml
|
||||||
global-config:
|
typeAliasesPackage: com.orange.demo.*.model
|
||||||
db-config:
|
|
||||||
logic-delete-value: -1
|
mapper:
|
||||||
logic-not-delete-value: 1
|
mappers: tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.additional.insert.InsertListMapper
|
||||||
|
not-empty: false
|
||||||
|
identity: MYSQL
|
||||||
|
|
||||||
pagehelper:
|
pagehelper:
|
||||||
helperDialect: mysql
|
helperDialect: mysql
|
||||||
|
|||||||
@@ -25,13 +25,15 @@ sequence:
|
|||||||
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
||||||
zkPath: com/orange/demo
|
zkPath: com/orange/demo
|
||||||
|
|
||||||
mybatis-plus:
|
# mybatis的基本配置
|
||||||
mapper-locations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml
|
mybatis:
|
||||||
type-aliases-package: com.orange.demo.*.model
|
mapperLocations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml
|
||||||
global-config:
|
typeAliasesPackage: com.orange.demo.*.model
|
||||||
db-config:
|
|
||||||
logic-delete-value: -1
|
mapper:
|
||||||
logic-not-delete-value: 1
|
mappers: tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.additional.insert.InsertListMapper
|
||||||
|
not-empty: false
|
||||||
|
identity: MYSQL
|
||||||
|
|
||||||
pagehelper:
|
pagehelper:
|
||||||
helperDialect: mysql
|
helperDialect: mysql
|
||||||
|
|||||||
@@ -27,13 +27,14 @@ sequence:
|
|||||||
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
# zk中生成WorkNode的路径。不同的业务可以使用不同的路径,以免冲突。
|
||||||
zkPath: com/orange/demo
|
zkPath: com/orange/demo
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis:
|
||||||
mapper-locations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml,com/orange/demo/common/datasync/dao/mapper/*Mapper.xml,com/orange/demo/common/log/dao/mapper/*Mapper.xml
|
mapperLocations: classpath:com/orange/demo/*/dao/mapper/*Mapper.xml,com/orange/demo/common/datasync/dao/mapper/*Mapper.xml,com/orange/demo/common/log/dao/mapper/*Mapper.xml
|
||||||
type-aliases-package: com.orange.demo.*.model,com.orange.demo.common.datasync.model,com.orange.demo.common.log.model
|
typeAliasesPackage: com.orange.demo.*.model,com.orange.demo.common.datasync.model,com.orange.demo.common.log.model
|
||||||
global-config:
|
|
||||||
db-config:
|
mapper:
|
||||||
logic-delete-value: -1
|
mappers: tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.additional.insert.InsertListMapper
|
||||||
logic-not-delete-value: 1
|
not-empty: false
|
||||||
|
identity: MYSQL
|
||||||
|
|
||||||
pagehelper:
|
pagehelper:
|
||||||
helperDialect: mysql
|
helperDialect: mysql
|
||||||
|
|||||||
@@ -0,0 +1,110 @@
|
|||||||
|
PINPOINT_VERSION=2.0.1
|
||||||
|
SPRING_PROFILES=release
|
||||||
|
|
||||||
|
### Pinpoint-Hbase
|
||||||
|
|
||||||
|
PINPOINT_HBASE_NAME=pinpoint-hbase
|
||||||
|
#config for hbase in external docker
|
||||||
|
EXTERNAL_HBASE_PORT=2180
|
||||||
|
|
||||||
|
### Pinpoint-mysql
|
||||||
|
MYSQL_ROOT_PASSWORD=root123
|
||||||
|
MYSQL_USER=admin
|
||||||
|
MYSQL_PASSWORD=admin
|
||||||
|
MYSQL_DATABASE=pinpoint
|
||||||
|
|
||||||
|
### Pinpoint-Web
|
||||||
|
|
||||||
|
PINPOINT_WEB_NAME=pinpoint-web
|
||||||
|
|
||||||
|
WEB_PAGE_PORT=8079
|
||||||
|
|
||||||
|
CLUSTER_ENABLE=true
|
||||||
|
#CLUSTER_WEB_TCP_PORT=9997
|
||||||
|
CLUSTER_ZOOKEEPER_ADDRESS=zoo1
|
||||||
|
|
||||||
|
ADMIN_PASSWORD=admin
|
||||||
|
|
||||||
|
ANALYTICS=true
|
||||||
|
|
||||||
|
HBASE_HOST=pinpoint-hbase
|
||||||
|
HBASE_PORT=2181
|
||||||
|
|
||||||
|
WEB_DEBUG_LEVEL=INFO
|
||||||
|
|
||||||
|
BATCH_ENABLE=false
|
||||||
|
BATCH_SERVER_IP=127.0.0.127
|
||||||
|
BATCH_FLINK_SERVER=pinpoint-flink-jobmanager
|
||||||
|
|
||||||
|
CONFIG_SHOW_APPLICATIONSTAT=true
|
||||||
|
|
||||||
|
JDBC_DRIVER=com.mysql.jdbc.Driver
|
||||||
|
JDBC_URL=jdbc:mysql://pinpoint-mysql:3306/pinpoint?characterEncoding=UTF-8
|
||||||
|
JDBC_USERNAME=admin
|
||||||
|
JDBC_PASSWORD=admin
|
||||||
|
MAIL_HOST=stmp.test.com
|
||||||
|
MAIL_PORT=123
|
||||||
|
MAIL_USERNAME=user
|
||||||
|
MAIL_PASSWORD=pass
|
||||||
|
MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL=smtp
|
||||||
|
MAIL_PROPERTIES_MAIL_SMTP_AUTH=true
|
||||||
|
MAIL_PROPERTIES_MAIL_SMTP_PORT=587
|
||||||
|
MAIL_PROPERTIES_MAIL_SMTP_FROM=test@example.com
|
||||||
|
MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE=true
|
||||||
|
MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED=true
|
||||||
|
MAIL_PROPERTIES_MAIL_DEBUG=false
|
||||||
|
|
||||||
|
|
||||||
|
### Pinpoint-Collector
|
||||||
|
|
||||||
|
PINPOINT_COLLECTOR_NAME=pinpoint-collector
|
||||||
|
|
||||||
|
COLLECTOR_RECEIVER_AGENT_PORT=9991
|
||||||
|
COLLECTOR_RECEIVER_METADATA_PORT=9991
|
||||||
|
COLLECTOR_RECEIVER_STAT_PORT=9992
|
||||||
|
COLLECTOR_RECEIVER_SPAN_PORT=9993
|
||||||
|
COLLECTOR_RECEIVER_BASE_PORT=9994
|
||||||
|
COLLECTOR_RECEIVER_STAT_UDP_PORT=9995
|
||||||
|
COLLECTOR_RECEIVER_SPAN_UDP_PORT=9996
|
||||||
|
|
||||||
|
FLINK_CLUSTER_ENABLE=true
|
||||||
|
FLINK_CLUSTER_ZOOKEEPER_ADDRESS=zoo1
|
||||||
|
|
||||||
|
COLLECTOR_DEBUG_LEVEL=INFO
|
||||||
|
|
||||||
|
|
||||||
|
### Pinpoint-Agent
|
||||||
|
|
||||||
|
PINPOINT_AGENT_NAME=pinpoint-agent
|
||||||
|
|
||||||
|
#network module(GRPC,THRIFT)
|
||||||
|
PROFILER_TRANSPORT_MODULE=GRPC
|
||||||
|
|
||||||
|
#collector information required
|
||||||
|
COLLECTOR_IP=pinpoint-collector
|
||||||
|
PROFILER_TRANSPORT_AGENT_COLLECTOR_PORT=9991
|
||||||
|
PROFILER_TRANSPORT_METADATA_COLLECTOR_PORT=9991
|
||||||
|
PROFILER_TRANSPORT_STAT_COLLECTOR_PORT=9992
|
||||||
|
PROFILER_TRANSPORT_SPAN_COLLECTOR_PORT=9993
|
||||||
|
COLLECTOR_TCP_PORT=9994
|
||||||
|
COLLECTOR_STAT_PORT=9995
|
||||||
|
COLLECTOR_SPAN_PORT=9996
|
||||||
|
|
||||||
|
# Set sampling rate. If you set it to N, 1 out of N transaction will be sampled.
|
||||||
|
PROFILER_SAMPLING_RATE=1
|
||||||
|
|
||||||
|
AGENT_ID=app-in-docker
|
||||||
|
APP_NAME=quickapp
|
||||||
|
|
||||||
|
AGENT_DEBUG_LEVEL=INFO
|
||||||
|
|
||||||
|
|
||||||
|
### Pinpoint-flink
|
||||||
|
|
||||||
|
PINPOINT_FLINK_NAME=pinpoint-flink
|
||||||
|
FLINK_WEB_PORT=8099
|
||||||
|
|
||||||
|
|
||||||
|
### Pinpoint-quickstart
|
||||||
|
|
||||||
|
APP_PORT=8000
|
||||||
1
orange-demo-multi-service/zz-resource/pinpoint-docker-master/.gitignore
vendored
Normal file
1
orange-demo-multi-service/zz-resource/pinpoint-docker-master/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.idea/
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user