From 818e8d1810bcdcbeae5a948ecd115ff0ce5a1f54 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 26 七月 2023 17:56:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java                       |   18 
 cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java                                          |   31 
 cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java                                         |   39 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java           |   17 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java                      |   15 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java             |    4 
 .idea/encodings.xml                                                                                           |   11 
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java                    |   17 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java                   |   25 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java              |   22 
 cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java                    |    4 
 cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java                             |   70 +
 cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java                               |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                      |   69 
 cloud-server-account/src/main/resources/mapper/CityMapper.xml                                                 |    6 
 cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html                                       |   22 
 .idea/workspace.xml                                                                                           |  656 ++++-----
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java           |   16 
 cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java                             |   15 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java           |  235 +++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html                              |   81 +
 cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js                    |  101 
 cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java                                    |  150 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/index.html                                               |    2 
 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java                      |    2 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java        |   15 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java                   |   17 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java                          |   23 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java        |  139 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html                                         |    8 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                  |   10 
 cloud-server-competition/src/main/java/com/dsh/page/Order.java                                                |   26 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java           |   73 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java                            |   20 
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java              |    9 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html                |  432 +----
 cloud-server-management/src/main/resources/mapper/MenuMapper.xml                                              |    2 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java             |   18 
 cloud-server-management/src/main/webapp/WEB-INF/view/login.html                                               |   21 
 .idea/compiler.xml                                                                                            |    9 
 cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java                                   |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java                           |   10 
 cloud-server-competition/mb-cloud-competition.iml                                                             |  163 ++
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java                      |   13 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java           |   15 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java              |   15 
 cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java                                |    3 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html                             |  401 +++++
 cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java                            |    3 
 cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java                                   |   22 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java              |   22 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java      |   14 
 cloud-server-course/mb-cloud-course.iml                                                                       |  216 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html                    |   21 
 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java                     |    7 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java                |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/404.html                                                 |    2 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java             |    3 
 cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java                                              |  202 ++
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java             |   16 
 cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java                                     |   17 
 cloud-server-competition/src/main/java/com/dsh/page/WafKit.java                                               |  118 +
 cloud-server-management/src/main/resources/mapper/CityMapper.xml                                              |    8 
 /dev/null                                                                                                     |   11 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java |   89 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html                                  |   52 
 cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html                                       |   22 
 cloud-server-account/src/main/java/com/dsh/account/service/CityService.java                                   |   17 
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java              |  101 +
 cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java                                    |   13 
 70 files changed, 3,131 insertions(+), 922 deletions(-)

diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index f49f824..4aac1ca 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -2,17 +2,18 @@
 <project version="4">
   <component name="CompilerConfiguration">
     <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
       <profile name="Maven default annotation processors profile" enabled="true">
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
         <module name="mb-cloud-account" />
-        <module name="mb-cloud-activity" />
-        <module name="mb-cloud-auth" />
-        <module name="mb-cloud-competition" />
-        <module name="mb-cloud-competition (1)" />
         <module name="mb-cloud-course" />
         <module name="mb-cloud-management" />
+        <module name="mb-cloud-competition (1)" />
+        <module name="mb-cloud-activity" />
+        <module name="mb-cloud-competition" />
+        <module name="mb-cloud-auth" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 3af5a5a..4da5718 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,11 +2,22 @@
 <project version="4">
   <component name="Encoding">
     <file url="file://$PROJECT_DIR$/cloud-server-account" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-activity" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-auth" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-competition" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-course" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-management" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/cloud-server-management/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/cloud-server-parent" charset="UTF-8" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c292150..fb546d1 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,135 +1,56 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="BranchesTreeState">
+    <expand>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+    </expand>
+    <select />
+  </component>
   <component name="ChangeListManager">
-    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-parent/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-parent/pom.xml" afterDir="false" />
+    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="后台代码删除">
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" afterDir="false" />
     </list>
-    <ignored path="$PROJECT_DIR$/cloud-server-account/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-management/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-parent/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-auth/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-activity/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-competition/target/" />
-    <ignored path="$PROJECT_DIR$/cloud-server-course/target/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
-  <component name="FUSProjectUsageTrigger">
-    <session id="1283956588">
-      <usages-collector id="statistics.lifecycle.project">
-        <counts>
-          <entry key="project.closed" value="1" />
-          <entry key="project.open.time.1" value="1" />
-          <entry key="project.opened" value="1" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.extensions.open">
-        <counts>
-          <entry key="java" value="12" />
-          <entry key="properties" value="3" />
-          <entry key="xml" value="13" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.types.open">
-        <counts>
-          <entry key="JAVA" value="12" />
-          <entry key="Properties" value="3" />
-          <entry key="XML" value="13" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.extensions.edit">
-        <counts>
-          <entry key="java" value="56" />
-          <entry key="properties" value="8" />
-          <entry key="xml" value="25" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.types.edit">
-        <counts>
-          <entry key="JAVA" value="56" />
-          <entry key="Properties" value="8" />
-          <entry key="XML" value="25" />
-        </counts>
-      </usages-collector>
-    </session>
-  </component>
-  <component name="FileEditorManager">
-    <leaf>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/cloud-server-course/pom.xml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="425">
-              <caret line="17" column="20" lean-forward="true" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/cloud-server-parent/pom.xml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="500">
-              <caret line="20" column="75" selection-start-line="20" selection-start-column="75" selection-end-line="20" selection-end-column="75" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="FindInProjectRecents">
-    <findStrings>
-      <find>app</find>
-      <find>GMT+</find>
-      <find>GMT+7</find>
-    </findStrings>
-    <replaceStrings>
-      <replace>GMT+8</replace>
-    </replaceStrings>
-    <dirStrings>
-      <dir>E:\IDEA Workspaces\PlayPai\cloud-server-account\src\main\java</dir>
-      <dir>E:\IDEA Workspaces\PlayPai</dir>
-    </dirStrings>
-  </component>
-  <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/cloud-server-parent" />
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
       <list>
-        <option value="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/UserApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-account/src/main/resources/bootstrap.properties" />
-        <option value="$PROJECT_DIR$/cloud-server-account/src/main/resources/redis.properties" />
-        <option value="$PROJECT_DIR$/cloud-server-parent/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-activity/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/AccountApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/ActivityApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/ActivityApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/CompetitionApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-competition/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-account/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-auth/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-management/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CompetitionApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CourseApplication.java" />
-        <option value="$PROJECT_DIR$/cloud-server-course/pom.xml" />
-        <option value="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/AccountApplication.java" />
+        <option value="Interface" />
+        <option value="Class" />
       </list>
     </option>
   </component>
-  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+  </component>
   <component name="JsFlowSettings">
     <service-enabled>true</service-enabled>
     <exe-path />
     <other-services-enabled>true</other-services-enabled>
     <auto-save>true</auto-save>
-  </component>
-  <component name="JsGulpfileManager">
-    <detection-done>true</detection-done>
-    <sorting>DEFINITION_ORDER</sorting>
   </component>
   <component name="MavenImportPreferences">
     <option name="generalSettings">
@@ -139,92 +60,48 @@
       </MavenGeneralSettings>
     </option>
   </component>
-  <component name="MavenProjectNavigator">
-    <treeState>
-      <expand />
-      <select />
-    </treeState>
-  </component>
-  <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-7" />
-    <option name="width" value="1934" />
-    <option name="height" value="1047" />
-  </component>
+  <component name="ProjectId" id="2T0poWYlZShlnPso29uxjn4gQQo" />
   <component name="ProjectLevelVcsManager" settingsEditedManually="true">
     <ConfirmationsSetting value="1" id="Add" />
   </component>
-  <component name="ProjectView">
-    <navigator proportions="" version="1">
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="Scope" />
-      <pane id="ProjectPane">
-        <subPane>
-          <expand>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-account" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-activity" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-auth" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-competition" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-course" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-management" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" />
-              <item name="PlayPai" type="462c0819:PsiDirectoryNode" />
-              <item name="cloud-server-parent" type="462c0819:PsiDirectoryNode" />
-            </path>
-          </expand>
-          <select />
-        </subPane>
-      </pane>
-      <pane id="PackagesPane" />
-      <pane id="AndroidView" />
-    </panes>
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
   </component>
   <component name="PropertiesComponent">
+    <property name="ExpandSpringBootJavaOptionsPanel" value="true" />
+    <property name="RequestMappingsPanelOrder0" value="0" />
+    <property name="RequestMappingsPanelOrder1" value="1" />
+    <property name="RequestMappingsPanelWidth0" value="75" />
+    <property name="RequestMappingsPanelWidth1" value="75" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="aspect.path.notification.shown" value="true" />
     <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1686656087610" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-course/pom.xml" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
     <property name="project.structure.last.edited" value="Global Libraries" />
     <property name="project.structure.proportion" value="0.0" />
     <property name="project.structure.side.proportion" value="0.2" />
-    <property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
+    <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
+  </component>
+  <component name="ReactorSettings">
+    <option name="notificationShown" value="true" />
   </component>
   <component name="RecentsManager">
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="com.dsh.course.feignClient.account.model" />
+      <recent name="com.dsh.account.mapper" />
+      <recent name="com.dsh.account.service.impl" />
+      <recent name="com.dsh.account.service" />
+      <recent name="com.dsh.account.controller" />
+    </key>
     <key name="CopyFile.RECENT_KEYS">
-      <recent name="E:\IDEA Workspaces" />
-      <recent name="E:\IDEA Workspaces\PlayPai" />
+      <recent name="F:\code\PlayPai\cloud-server-account\src\main\resources\mapper" />
+      <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system" />
+      <recent name="F:\code\PlayPai\cloud-server-competition\src\main\java\com\dsh" />
+      <recent name="F:\code\PlayPai\cloud-server-management\src\main\resources\mapper" />
+      <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\static\modular\system" />
     </key>
   </component>
   <component name="RunDashboard">
@@ -233,22 +110,13 @@
         <option value="SpringBootApplicationConfigurationType" />
       </set>
     </option>
-    <option name="ruleStates">
-      <list>
-        <RuleState>
-          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
-        </RuleState>
-        <RuleState>
-          <option name="name" value="StatusDashboardGroupingRule" />
-        </RuleState>
-      </list>
-    </option>
   </component>
   <component name="RunManager" selected="Spring Boot.AccountApplication">
     <configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
       <module name="mb-cloud-account" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" />
       <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -278,6 +146,8 @@
     <configuration name="CompetitionApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
       <module name="mb-cloud-competition" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CompetitionApplication" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -292,6 +162,9 @@
     <configuration name="ManagementApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
       <module name="mb-cloud-management" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ManagementApplication" />
+      <option name="ENABLE_JMX_AGENT" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -324,185 +197,234 @@
       <option name="presentableId" value="Default" />
       <updated>1686653431962</updated>
       <workItem from="1686653433491" duration="2267000" />
+      <workItem from="1690190039038" duration="16883000" />
+      <workItem from="1690333209172" duration="23458000" />
     </task>
+    <task id="LOCAL-00001" summary="后台代码删除">
+      <created>1690249807612</created>
+      <option name="number" value="00001" />
+      <option name="presentableId" value="LOCAL-00001" />
+      <option name="project" value="LOCAL" />
+      <updated>1690249807612</updated>
+    </task>
+    <task id="LOCAL-00002" summary="后台代码删除">
+      <created>1690254629455</created>
+      <option name="number" value="00002" />
+      <option name="presentableId" value="LOCAL-00002" />
+      <option name="project" value="LOCAL" />
+      <updated>1690254629455</updated>
+    </task>
+    <task id="LOCAL-00003" summary="后台代码删除">
+      <created>1690254749862</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1690254749862</updated>
+    </task>
+    <task id="LOCAL-00004" summary="后台代码">
+      <created>1690334274202</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1690334274203</updated>
+    </task>
+    <task id="LOCAL-00005" summary="后台代码">
+      <created>1690335913450</created>
+      <option name="number" value="00005" />
+      <option name="presentableId" value="LOCAL-00005" />
+      <option name="project" value="LOCAL" />
+      <updated>1690335913450</updated>
+    </task>
+    <task id="LOCAL-00006" summary="后台代码">
+      <created>1690338179876</created>
+      <option name="number" value="00006" />
+      <option name="presentableId" value="LOCAL-00006" />
+      <option name="project" value="LOCAL" />
+      <updated>1690338179876</updated>
+    </task>
+    <task id="LOCAL-00007" summary="后台代码">
+      <created>1690338325966</created>
+      <option name="number" value="00007" />
+      <option name="presentableId" value="LOCAL-00007" />
+      <option name="project" value="LOCAL" />
+      <updated>1690338325966</updated>
+    </task>
+    <task id="LOCAL-00008" summary="后台代码">
+      <created>1690341067099</created>
+      <option name="number" value="00008" />
+      <option name="presentableId" value="LOCAL-00008" />
+      <option name="project" value="LOCAL" />
+      <updated>1690341067099</updated>
+    </task>
+    <task id="LOCAL-00009" summary="后台代码">
+      <created>1690355617215</created>
+      <option name="number" value="00009" />
+      <option name="presentableId" value="LOCAL-00009" />
+      <option name="project" value="LOCAL" />
+      <updated>1690355617215</updated>
+    </task>
+    <task id="LOCAL-00010" summary="后台代码删除">
+      <created>1690362658673</created>
+      <option name="number" value="00010" />
+      <option name="presentableId" value="LOCAL-00010" />
+      <option name="project" value="LOCAL" />
+      <updated>1690362658673</updated>
+    </task>
+    <option name="localTasksCounter" value="11" />
     <servers />
   </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="2267000" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
-    <editor active="true" />
-    <layout>
-      <window_info id="Designer" />
-      <window_info id="Image Layers" />
-      <window_info id="UI Designer" />
-      <window_info id="Favorites" side_tool="true" />
-      <window_info id="Capture Tool" />
-      <window_info id="Web" side_tool="true" />
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info anchor="bottom" id="Run Dashboard" weight="0.16938111" />
-      <window_info anchor="bottom" id="Spring" />
-      <window_info anchor="bottom" id="Terminal" />
-      <window_info anchor="bottom" id="Event Log" side_tool="true" />
-      <window_info anchor="bottom" id="Statistic" />
-      <window_info anchor="bottom" id="Java Enterprise" />
-      <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" />
-      <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.32899022" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="right" id="Palette" />
-      <window_info anchor="right" id="Capture Analysis" />
-      <window_info anchor="right" id="Maven Projects" visible="true" weight="0.21801706" />
-      <window_info anchor="right" id="Database" />
-      <window_info anchor="right" id="Palette&#9;" />
-      <window_info anchor="right" id="Theme Preview" />
-      <window_info anchor="right" id="Bean Validation" />
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-    </layout>
-  </component>
   <component name="TypeScriptGeneratedFilesManager">
-    <option name="version" value="1" />
+    <option name="version" value="2" />
   </component>
-  <component name="VcsContentAnnotationSettings">
-    <option name="myLimit" value="2678400000" />
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
+    <option name="oldMeFiltersMigrated" value="true" />
   </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/ImgController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-174">
-          <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/course/advice/ControllerException.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-285">
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/constant/AuthConstants.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="200">
-          <caret line="8" column="17" selection-start-line="8" selection-start-column="17" selection-end-line="8" selection-end-column="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/bootstrap.properties">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="675">
-          <caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/logback-spring.xml">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/redis.properties">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="300">
-          <caret line="12" column="29" selection-start-line="12" selection-start-column="29" selection-end-line="12" selection-end-column="29" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/config/RedisConfig.java">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/config/RedisConfig.java">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/CompetitionApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="215">
-          <caret line="25" column="32" selection-start-line="25" selection-start-column="21" selection-end-line="25" selection-end-column="32" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-competition/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="250">
-          <caret line="10" column="36" selection-start-line="10" selection-start-column="36" selection-end-line="10" selection-end-column="36" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="325">
-          <caret line="13" column="19" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-activity/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="350">
-          <caret line="14" column="19" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-auth/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="325">
-          <caret line="13" column="14" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="14" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-management/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="325">
-          <caret line="13" column="14" selection-start-line="13" selection-start-column="14" selection-end-line="13" selection-end-column="14" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/config/RedisConfig.java">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CourseApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="239">
-          <caret line="25" column="27" selection-start-line="25" selection-start-column="21" selection-end-line="25" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/AccountApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="68">
-          <caret line="7" selection-start-line="7" selection-end-line="7" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/ActivityApplication.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="650">
-          <caret line="26" column="13" selection-start-line="26" selection-start-column="13" selection-end-line="26" selection-end-column="13" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-course/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="425">
-          <caret line="17" column="20" lean-forward="true" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cloud-server-parent/pom.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="500">
-          <caret line="20" column="75" selection-start-line="20" selection-start-column="75" selection-end-line="20" selection-end-column="75" />
-        </state>
-      </provider>
-    </entry>
+  <component name="VcsManagerConfiguration">
+    <MESSAGE value="后台代码" />
+    <MESSAGE value="后台代码删除" />
+    <option name="LAST_COMMIT_MESSAGE" value="后台代码删除" />
+  </component>
+  <component name="WindowStateProjectService">
+    <state x="590" y="80" key="#&lt;template&gt;_of_Spring_Boot" timestamp="1690338437444">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="590" y="80" key="#&lt;template&gt;_of_Spring_Boot/0.0.1920.1032@0.0.1920.1032" timestamp="1690338437444" />
+    <state x="590" y="0" width="753" height="1032" key="#AccountApplication" timestamp="1690363440283">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="590" y="0" width="753" height="1032" key="#AccountApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690363440283" />
+    <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication" timestamp="1690342021698">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690342021698" />
+    <state x="590" y="109" width="753" height="813" key="#ManagementApplication" timestamp="1690338483958">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="590" y="109" width="753" height="813" key="#ManagementApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690338483958" />
+    <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser" timestamp="1690351593596">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1690351593596" />
+    <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1690338381045">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690338381045" />
+    <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1690337455729">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690337455729" />
+    <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1690338847091">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes/0.0.1920.1032@0.0.1920.1032" timestamp="1690338847091" />
+    <state x="519" y="82" key="CommitChangelistDialog2" timestamp="1690362656327">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="519" y="82" key="CommitChangelistDialog2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362656327" />
+    <state width="464" height="466" key="DebuggerActiveHint" timestamp="1690354723383">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="464" height="466" key="DebuggerActiveHint/0.0.1920.1032@0.0.1920.1032" timestamp="1690354723383" />
+    <state x="740" y="270" key="FileChooserDialogImpl" timestamp="1690249419357">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="740" y="270" key="FileChooserDialogImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1690249419357" />
+    <state width="1293" height="440" key="GridCell.Tab.0.bottom" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.0.center" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.0.left" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.0.right" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.1.bottom" timestamp="1690363241405">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.1.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241405" />
+    <state width="1293" height="440" key="GridCell.Tab.1.center" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.1.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.1.left" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.1.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="440" key="GridCell.Tab.1.right" timestamp="1690363241404">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="440" key="GridCell.Tab.1.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" />
+    <state width="1293" height="473" key="GridCell.Tab.2.bottom" timestamp="1690354799499">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="473" key="GridCell.Tab.2.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" />
+    <state width="1293" height="473" key="GridCell.Tab.2.center" timestamp="1690354799499">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="473" key="GridCell.Tab.2.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" />
+    <state width="1293" height="473" key="GridCell.Tab.2.left" timestamp="1690354799499">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="473" key="GridCell.Tab.2.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" />
+    <state width="1293" height="473" key="GridCell.Tab.2.right" timestamp="1690354799499">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state width="1293" height="473" key="GridCell.Tab.2.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" />
+    <state x="461" y="160" key="SettingsEditor" timestamp="1690191509088">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="461" y="160" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1690191509088" />
+    <state x="552" y="248" key="Vcs.Push.Dialog.v2" timestamp="1690362671126">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="552" y="248" key="Vcs.Push.Dialog.v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362671126" />
+    <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1690340014123">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" />
+    <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1690340014123">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" />
+    <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1690362660961">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362660961" />
+    <state x="661" y="224" width="646" height="584" key="find.popup" timestamp="1690358747900">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="661" y="224" width="646" height="584" key="find.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690358747900" />
+    <state x="623" y="223" width="672" height="678" key="search.everywhere.popup" timestamp="1690338774328">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="623" y="223" width="672" height="678" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690338774328" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java</url>
+          <line>145</line>
+          <option name="timeStamp" value="1" />
+        </line-breakpoint>
+      </breakpoints>
+    </breakpoint-manager>
   </component>
   <component name="masterDetails">
     <states>
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java
new file mode 100644
index 0000000..0208ed9
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java
@@ -0,0 +1,70 @@
+package com.dsh.account.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.account.entity.TAppUser;
+import com.dsh.account.entity.TCityManager;
+import com.dsh.account.feignclient.model.CityListQuery;
+import com.dsh.account.model.AddAppUserVo;
+import com.dsh.account.model.JoinPlayPaiVo;
+import com.dsh.account.model.LoginSMSCodeVo;
+import com.dsh.account.model.LoginWeChatVo;
+import com.dsh.account.service.CityService;
+import com.dsh.account.service.IVipPaymentService;
+import com.dsh.account.service.TAppUserService;
+import com.dsh.account.util.PayMoneyUtil;
+import com.dsh.account.util.ResultUtil;
+import com.dsh.account.util.TokenUtil;
+import com.dsh.account.util.ToolUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/6/14 15:30
+ */
+@RestController
+@RequestMapping("")
+public class CityController {
+
+    @Autowired
+    private CityService cityService;
+
+
+    @PostMapping("/base/city/list")
+    public Page<TCityManager> list(@RequestBody CityListQuery listQuery){
+        try {
+            Page<TCityManager> page = new Page<>(listQuery.getOffset(), listQuery.getLimit());
+            LambdaQueryWrapper<TCityManager> tCityManagerLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            tCityManagerLambdaQueryWrapper.ne(TCityManager::getState,3);
+            if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){
+                tCityManagerLambdaQueryWrapper.eq(TCityManager::getProvinceCode,listQuery.getProvinceCode());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getCityCode())){
+                tCityManagerLambdaQueryWrapper.eq(TCityManager::getCityCode,listQuery.getCityCode());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getName())){
+                tCityManagerLambdaQueryWrapper.like(TCityManager::getName,listQuery.getName());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getPhone())){
+                tCityManagerLambdaQueryWrapper.like(TCityManager::getPhone,listQuery.getPhone());
+            }
+            Page<TCityManager> page1 = cityService.page(page, tCityManagerLambdaQueryWrapper);
+            return page1;
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index 345666f..12bc776 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -409,14 +409,17 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "预约状态 0=全部 1=待上课 2=已完成 3=已取消", name = "appointStatus", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "时间类型 0=全部 1=近一周 2=近一个月 3=近一年", name = "appointStatus", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "课程名称", name = "appointStatus", required = false, dataType = "string"),
     })
-    public ResultUtil<AppointmentRecordVo> cgeClassAppointmentRecordList(Integer stuId){
+    public ResultUtil<AppointmentRecordVo> cgeClassAppointmentRecordList(Integer stuId,Integer appointStatus,Integer timeType,String search){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
                 return ResultUtil.tokenErr();
             }
-            return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId));
+            return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search));
         }catch (Exception e){
             return ResultUtil.runErr();
         }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
index 8f7f0df..16f1915 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -383,7 +383,7 @@
             @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"),
             @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = true, dataType = "int"),
     })
-    public ResultUtil<IntegralDetailsResponse> pointDetails(String yearMonth, Integer recordId){
+    public ResultUtil<List<IntegralsData>> pointDetails(String yearMonth, Integer recordId){
         try {
             Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
             if(null == userIdFormRedis){
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java
new file mode 100644
index 0000000..3c3cd79
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java
@@ -0,0 +1,22 @@
+package com.dsh.account.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("t_city_manager")
+public class TCityManager {
+    private Integer id;
+    private String name;
+    private String phone;
+    private String password;
+    private String province;
+    @TableField("provinceCode")
+    private String provinceCode;
+    private String city;
+    @TableField("cityCode")
+    private String cityCode;
+    private Integer state;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java
index c788428..a0b66ac 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java
@@ -17,6 +17,6 @@
      * @param id
      * @return
      */
-    @PostMapping("/coursePackage/queryCoursePackageById")
+    @PostMapping("/base/coursePackage/queryCoursePackageById")
     CoursePackage queryCoursePackageById(Integer id);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java
new file mode 100644
index 0000000..3d658c0
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java
@@ -0,0 +1,18 @@
+package com.dsh.account.feignclient.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CityListQuery {
+    private long limit;
+    private long offset;
+    private String provinceCode;
+    private String cityCode;
+    private String name;
+    private String phone;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java
new file mode 100644
index 0000000..0a43318
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java
@@ -0,0 +1,17 @@
+package com.dsh.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.account.entity.Coach;
+import com.dsh.account.entity.TCityManager;
+
+/**
+ * <p>
+ * 教练 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+public interface CityMapper extends BaseMapper<TCityManager> {
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java
index 296e9e7..d253b80 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java
@@ -16,6 +16,9 @@
     @ApiModelProperty(value = "当前学员姓名")
     private String stuName;
 
+    @ApiModelProperty(value = "预约状态 0=全部 1=待上课 2=已完成 3=已取消")
+    private Integer appointStatus;
+
     @ApiModelProperty(value = "记录列表")
     private List<RecordAppoint> appointList;
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java
deleted file mode 100644
index 32a6fed..0000000
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.dsh.account.model.vo.userBenefitDetail;
-
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class IntegralDetailsResponse {
-
-    @ApiModelProperty(value = "可用积分")
-    private Integer wpGold;
-
-    @ApiModelProperty(value = "记录列表")
-    private List<IntegralsData> detailList;
-
-    @Data
-    public static class IntegralsData{
-
-        @ApiModelProperty(value = "名称")
-        private String consumeName;
-
-        @ApiModelProperty(value = "时间")
-        private String consumeTime;
-
-        @ApiModelProperty(value = "金额 例如 -90 ")
-        private String consumeAmount;
-
-        @ApiModelProperty(value = "1扣减 2增加")
-        private Integer detailsType;
-
-    }
-
-}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java
new file mode 100644
index 0000000..0c4b2b2
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java
@@ -0,0 +1,22 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class IntegralsData {
+
+    @ApiModelProperty(value = "名称")
+    private String consumeName;
+
+    @ApiModelProperty(value = "时间")
+    private String consumeTime;
+
+    @ApiModelProperty(value = "金额 例如 -90 ")
+    private String consumeAmount;
+
+    @ApiModelProperty(value = "1扣减 2增加")
+    private Integer detailsType;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
index 237c23d..d644a90 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -42,4 +43,19 @@
     @ApiModelProperty(value = "兑换说明")
     private String contents;
 
+    @ApiModelProperty(value = "课包课时数")
+    private Integer classHours;
+
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+    @ApiModelProperty(value = "现金")
+    private BigDecimal cash;
+
+    @ApiModelProperty(value = "商品类型  1实物 2课包 3门票 4优惠券")
+    private Integer goodType;
+
+    @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金)")
+    private Integer exchangeType;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java b/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java
new file mode 100644
index 0000000..d2ea2e4
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java
@@ -0,0 +1,17 @@
+package com.dsh.account.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.account.entity.Coach;
+import com.dsh.account.entity.TCityManager;
+
+/**
+ * <p>
+ * 教练 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+public interface CityService extends IService<TCityManager> {
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index 96f2359..508dd60 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -83,7 +83,7 @@
      * @param appUserId
      * @return
      */
-    AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId);
+    AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search);
 
     ResultUtil cancelReservationOfCourse( Integer courseStuRecordId);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
index b45c68a..c753574 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
@@ -4,7 +4,7 @@
 import com.dsh.account.entity.UserIntegralChanges;
 import com.dsh.account.model.SaveUserIntegralChangesVo;
 import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
-import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
 import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
 
 import java.util.List;
@@ -19,7 +19,7 @@
  */
 public interface UserIntegralChangesService extends IService<UserIntegralChanges> {
 
-    IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis);
+    List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis);
 
 
     /**
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java
new file mode 100644
index 0000000..6b7fa74
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java
@@ -0,0 +1,23 @@
+package com.dsh.account.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.account.entity.Coach;
+import com.dsh.account.entity.TCityManager;
+import com.dsh.account.mapper.CityMapper;
+import com.dsh.account.mapper.CoachMapper;
+import com.dsh.account.service.CityService;
+import com.dsh.account.service.CoachService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 教练 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+@Service
+public class CityServiceImpl extends ServiceImpl<CityMapper, TCityManager> implements CityService {
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index c9e98a6..9a11a95 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -563,7 +563,7 @@
     }
 
     @Override
-    public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId) {
+    public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search) {
         AppointmentRecordVo recordVo = new AppointmentRecordVo();
         TStudent tStudent = this.baseMapper.selectOne(new QueryWrapper<TStudent>()
                 .eq("id",stuId )
@@ -571,7 +571,72 @@
         if (ToolUtil.isNotEmpty(tStudent)){
             recordVo.setStuId(tStudent.getId());
             recordVo.setStuName(tStudent.getName());
-            recordVo.setAppointList(couPayClient.obtainStudentClassDetailsData(stuId));
+            List<RecordAppoint> recordAppoints = couPayClient.obtainStudentClassDetailsData(stuId);
+            if (ToolUtil.isEmpty(appointStatus)){
+                recordVo.setAppointStatus(0);
+            }else {
+                recordVo.setAppointStatus(appointStatus);
+                recordAppoints = recordAppoints.stream()
+                        .filter(record -> record.getStatus().equals(appointStatus))
+                        .collect(Collectors.toList());
+            }
+            if (ToolUtil.isNotEmpty(search)){
+                recordVo.setAppointStatus(appointStatus);
+                recordAppoints = recordAppoints.stream()
+                        .filter(record -> record.getCoursePackageName().contains(search))
+                        .collect(Collectors.toList());
+            }
+            if (ToolUtil.isNotEmpty(timeType)){
+                Date lastOfDate = DateUtil.getLastOfDate();
+                switch (timeType){
+                    case 1:
+                        Date lastWeekStartDate = DateUtil.getLastWeekStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastWeekStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    case 2:
+                        Date lastMonthStartDate = DateUtil.getLastMonthStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastMonthStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    case 3:
+                        Date lastYearStartDate = DateUtil.getLastYearStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastYearStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    default:
+                        break;
+
+                }
+            }
+            recordVo.setAppointList(recordAppoints);
         }
         return recordVo;
     }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index e04b185..68321ea 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -9,7 +9,7 @@
 import com.dsh.account.mapper.UserIntegralChangesMapper;
 import com.dsh.account.model.SaveUserIntegralChangesVo;
 import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
-import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
 import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
 import com.dsh.account.service.UserIntegralChangesService;
 import com.dsh.account.util.DateTimeHelper;
@@ -43,9 +43,8 @@
     private MerChandiseClient mcClient;
 
     @Override
-    public IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
-        IntegralDetailsResponse vo = new IntegralDetailsResponse();
-        List<IntegralDetailsResponse.IntegralsData> details = new ArrayList<>();
+    public List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) {
+        List<IntegralsData> details = new ArrayList<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
 
         Date monthStart = null;
@@ -63,7 +62,7 @@
                 .orderByDesc("insertTime"));
         if (userIntegralChanges.size() > 0 ){
             for (UserIntegralChanges userIntegralChange : userIntegralChanges) {
-                IntegralDetailsResponse.IntegralsData detail= new IntegralDetailsResponse.IntegralsData();
+                IntegralsData detail= new IntegralsData();
                 switch (userIntegralChange.getType()){
                     case 1:
                         detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
@@ -94,15 +93,12 @@
             }
             if (null != recordId){
                 details = details.stream()
-                        .filter(obj -> obj instanceof IntegralDetailsResponse.IntegralsData)
+                        .filter(obj -> obj instanceof IntegralsData)
                         .filter(obj -> Objects.equals(obj.getDetailsType(), recordId))
                         .collect(Collectors.toList());
             }
-            TAppUser tAppUser = tauMapper.selectById(userIdFormRedis);
-            vo.setWpGold(tAppUser.getIntegral());
-            vo.setDetailList(details);
         }
-        return vo;
+        return details;
     }
 
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
index a546553..9c752b6 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
@@ -368,4 +368,43 @@
         return age;
     }
 
+
+    // 获取近一周的开始时间
+    public static Date getLastWeekStartDate() {
+        Calendar calendar = Calendar.getInstance();
+        // 设置为当前日期的前一周
+        calendar.add(Calendar.DAY_OF_YEAR, -7);
+        // 获取近一周的开始时间
+        return calendar.getTime();
+    }
+
+
+    // 获取近一个月的开始时间
+    public static Date getLastMonthStartDate() {
+        Calendar calendar = Calendar.getInstance();
+        // 设置为当前日期的前一个月
+        calendar.add(Calendar.MONTH, -1);
+        // 获取近一个月的开始时间
+        return calendar.getTime();
+    }
+
+    // 获取近一年的开始时间
+    public static Date getLastYearStartDate() {
+        Calendar calendar = Calendar.getInstance();
+        // 设置为当前日期的前一年
+        calendar.add(Calendar.YEAR, -1);
+        // 获取近一年的开始时间
+        return calendar.getTime();
+    }
+
+
+    // 获取昨天的时间
+    public static Date getLastOfDate() {
+        Calendar calendar = Calendar.getInstance();
+        // 设置为当前日期的前一个月
+        calendar.add(Calendar.DAY_OF_YEAR, -1);
+        // 获取近一个月的开始时间
+        return calendar.getTime();
+    }
+
 }
diff --git a/cloud-server-account/src/main/resources/mapper/CityMapper.xml b/cloud-server-account/src/main/resources/mapper/CityMapper.xml
new file mode 100644
index 0000000..5c834d9
--- /dev/null
+++ b/cloud-server-account/src/main/resources/mapper/CityMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.account.mapper.CityMapper">
+
+
+</mapper>
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index caa6f0b..caaf629 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -327,6 +327,14 @@
         UserPointsMerchandise byId = upmseService.getById(speMercharsId);
         if (ToolUtil.isNotEmpty(byId)){
             PointsMerchandise pmdsServiceById = pmdsService.getById(byId.getPointsMerchandiseId());
+            detailsVo.setExchangeType(pmdsServiceById.getRedemptionMethod());
+            detailsVo.setGoodType(pmdsServiceById.getType());
+            if (pmdsServiceById.getRedemptionMethod() == 1){
+                detailsVo.setIntegral(pmdsServiceById.getIntegral());
+            }else {
+                detailsVo.setCash(pmdsServiceById.getCash());
+                detailsVo.setIntegral(pmdsServiceById.getIntegral());
+            }
             detailsVo.setDetailsId(byId.getId());
             switch (pmdsServiceById.getType()){
                 case 1:
@@ -349,6 +357,8 @@
                     List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","));
                     list1.add(coursePackage.getCoverDrawing());
                     detailsVo.setPics(list1);
+                    CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId());
+                    detailsVo.setClassHours(coursePackagePaymentConfig.getClassHours());
                     Collections.sort(detailsVo.getPics(), (s1, s2) -> {
                         if (s1.equals(coursePackage.getCoverDrawing())) {
                             return -1; // s1排在前面
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java
index 9b1333e..698ac42 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java
@@ -1,8 +1,10 @@
 package com.dsh.activity.feignclient.course;
 
 import com.dsh.activity.feignclient.course.model.CoursePackage;
+import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @author zhibing.pu
@@ -17,6 +19,9 @@
      * @param id
      * @return
      */
-    @PostMapping("/coursePackage/queryCoursePackageById")
-    CoursePackage queryCoursePackageById(Integer id);
+    @PostMapping("/base/coursePackage/queryCoursePackageById")
+    CoursePackage queryCoursePackageById(@RequestBody Integer id);
+
+    @PostMapping("/base/coursePackage/queryConfigCoursePackData")
+    CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java
index 8bf0fac..9949082 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -42,4 +43,20 @@
     @ApiModelProperty(value = "兑换说明")
     private String contents;
 
+
+    @ApiModelProperty(value = "课包课时数")
+    private Integer classHours;
+
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+    @ApiModelProperty(value = "现金")
+    private BigDecimal cash;
+
+    @ApiModelProperty(value = "商品类型  1实物 2课包 3门票 4优惠券")
+    private Integer goodType;
+
+    @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金)")
+    private Integer exchangeType;
+
 }
diff --git a/cloud-server-competition/mb-cloud-competition.iml b/cloud-server-competition/mb-cloud-competition.iml
index 9c5ecce..1e7f40c 100644
--- a/cloud-server-competition/mb-cloud-competition.iml
+++ b/cloud-server-competition/mb-cloud-competition.iml
@@ -133,6 +133,9 @@
     <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
     <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
@@ -147,17 +150,153 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" />
+    <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
+    <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.8.10.ALL" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.50" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
     <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
     <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
@@ -170,7 +309,6 @@
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" />
@@ -186,8 +324,6 @@
     <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
@@ -207,7 +343,6 @@
     <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
     <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" />
@@ -222,10 +357,10 @@
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
@@ -237,7 +372,7 @@
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index a20ec4b..a83c0f5 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -1,21 +1,28 @@
 package com.dsh.competition.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.competition.entity.Competition;
+import com.dsh.competition.entity.Participant;
 import com.dsh.competition.entity.PaymentCompetition;
 import com.dsh.competition.entity.UserCompetition;
+import com.dsh.competition.feignclient.model.GetPeopleQuery;
 import com.dsh.competition.feignclient.model.GetStuSourseList;
+import com.dsh.competition.feignclient.model.ListQuery;
 import com.dsh.competition.feignclient.model.PurchaseRecordVo;
 import com.dsh.competition.model.CompetitionInfo;
 import com.dsh.competition.model.CompetitionListVo;
 import com.dsh.competition.model.PaymentCompetitionVo;
 import com.dsh.competition.service.CompetitionService;
+import com.dsh.competition.service.IParticipantService;
 import com.dsh.competition.service.IPaymentCompetitionService;
 import com.dsh.competition.service.UserCompetitionService;
 import com.dsh.competition.util.PayMoneyUtil;
 import com.dsh.competition.util.ResultUtil;
 import com.dsh.competition.util.TokenUtil;
+import com.dsh.competition.util.ToolUtil;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -61,6 +68,9 @@
 
     @Autowired
     private IPaymentCompetitionService paymentCompetitionService;
+
+    @Autowired
+    private IParticipantService participantService;
 
 
     @PostMapping("/base/competition/getPayedCompetitions")
@@ -368,5 +378,96 @@
             e.printStackTrace();
         }
     }
+
+
+    @PostMapping("/base/competition/queryById")
+    public  Competition queryById(Integer id){
+        try {
+            return cttService.getById(id);
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+    @PostMapping("/base/competition/list")
+    public Page<Competition> list(@RequestBody ListQuery listQuery){
+        try {
+            Page<Competition> competitionPage = new Page<>(listQuery.getOffset(),listQuery.getLimit());
+            LambdaQueryWrapper<Competition> wrapper = new LambdaQueryWrapper<>();
+            if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){
+                wrapper.eq(Competition::getProvinceCode,listQuery.getProvinceCode());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getCityCode())){
+                wrapper.eq(Competition::getProvinceCode,listQuery.getCityCode());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getEventName())){
+                wrapper.like(Competition::getName,listQuery.getEventName());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getTime())){
+                wrapper.gt(Competition::getStartTime,listQuery.getTime().split(" - ")[0]+" 00:00:00");
+                wrapper.lt(Competition::getEndTime,listQuery.getTime().split(" - ")[1]+" 23:59:59");
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getState())){
+                wrapper.eq(Competition::getState,listQuery.getState());
+            }
+            if(ToolUtil.isNotEmpty(listQuery.getRegisterCondition())){
+                wrapper.eq(Competition::getRegisterCondition,listQuery.getRegisterCondition());
+            }
+            wrapper.in(Competition::getStoreId,listQuery.getIds());
+            Page<Competition> page = cttService.page(competitionPage, wrapper);
+            return page;
+        }catch (Exception e){
+            e.printStackTrace();
+            return new Page<Competition>();
+        }
+    }
+
+
+    @PostMapping("/base/competition/add")
+    public void add(@RequestBody Competition competition){
+        try {
+            cttService.save(competition);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    @PostMapping("/base/competition/update")
+    public void update(@RequestBody Competition competition){
+        try {
+            cttService.updateById(competition);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    @PostMapping("/base/competition/cancel")
+    public void cancel(@RequestBody Integer id){
+        try {
+            Competition byId = cttService.getById(id);
+            byId.setStatus(4);
+            cttService.updateById(byId);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+//    @PostMapping("/base/competition/getPeopleFromId")
+//    public  Page<Participant> getPeopleFromId(@RequestBody GetPeopleQuery getPeopleQuery){
+//        try {
+//            Page<Participant> participantPage = new Page<>();
+//            LambdaQueryWrapper<Participant> participantLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//            if(getPeopleQuery.getState()!=null){
+//                participantLambdaQueryWrapper.eq(Participant::getState)
+//            }
+//            participantService.page()
+//        }catch (Exception e){
+//            return null;
+//        }
+//    }
+
 }
 
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
index b2b5548..8fe36d4 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -68,11 +69,13 @@
      * 开始时间
      */
     @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date startTime;
     /**
      * 结束时间
      */
     @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endTime;
     /**
      * 报名结束时间
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java
new file mode 100644
index 0000000..1e77a9c
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java
@@ -0,0 +1,15 @@
+package com.dsh.competition.feignclient.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GetPeopleQuery {
+    private long limit;
+    private long offset;
+    private Integer id;
+    private Integer state;
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java
new file mode 100644
index 0000000..68bb178
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java
@@ -0,0 +1,25 @@
+package com.dsh.competition.feignclient.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ListQuery {
+    private long limit;
+
+    private long offset;
+
+    private String provinceCode;
+    private String cityCode;
+    private String eventName;
+    private String time;
+    private Integer state;
+    private Integer registerCondition;
+    private List<Integer> ids;
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java b/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java
new file mode 100644
index 0000000..da1fd33
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2015-2016, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.dsh.page;
+
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class HttpKit {
+
+    public static String getIp(){
+       return HttpKit.getRequest().getRemoteHost();
+    }
+
+    /**
+     * 获取所有请求的值
+     */
+    public static Map<String, String> getRequestParameters() {
+        HashMap<String, String> values = new HashMap<>();
+        HttpServletRequest request = HttpKit.getRequest();
+        Enumeration enums = request.getParameterNames();
+        while ( enums.hasMoreElements()){
+            String paramName = (String) enums.nextElement();
+            String paramValue = request.getParameter(paramName);
+            values.put(paramName, paramValue);
+        }
+        return values;
+    }
+
+    /**
+     * 获取 HttpServletRequest
+     */
+    public static HttpServletResponse getResponse() {
+        HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
+        return response;
+    }
+
+    /**
+     * 获取 包装防Xss Sql注入的 HttpServletRequest
+     * @return request
+     */
+    public static HttpServletRequest getRequest() {
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        return new WafRequestWrapper(request);
+    }
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param url 发送请求的URL
+     * @param param 请求参数
+     * @return URL 所代表远程资源的响应结果
+     */
+    public static String sendGet(String url, Map<String, String> param) {
+        String result = "";
+        BufferedReader in = null;
+        try {
+            StringBuffer query = new StringBuffer();
+
+            for (Map.Entry<String, String> kv : param.entrySet()) {
+                query.append(URLEncoder.encode(kv.getKey(), "UTF-8") + "=");
+                query.append(URLEncoder.encode(kv.getValue(), "UTF-8") + "&");
+            }
+            if (query.lastIndexOf("&") > 0) {
+                query.deleteCharAt(query.length() - 1);
+            }
+
+            String urlNameString = url + "?" + query.toString();
+            URL realUrl = new URL(urlNameString);
+            // 打开和URL之间的连接
+            //Establish the connection between the open URL and other relevant components.
+            URLConnection connection = realUrl.openConnection();
+            // 设置通用的请求属性
+            //Set universal request properties.
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            // 建立实际的连接
+            //Establishing a tangible connection
+            connection.connect();
+            // 获取所有响应头字段
+            //Retrieve all response header fields.
+            Map<String, List<String>> map = connection.getHeaderFields();
+            // 遍历所有的响应头字段
+            //Traverse all response header fields.
+            for (String key : map.keySet()) {
+                System.out.println(key + "--->" + map.get(key));
+            }
+            // 定义 BufferedReader输入流来读取URL的响应
+            //Define a BufferedReader input stream to read the response of the URL.
+            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送GET请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输入流
+        //Use a 'finally' block to close the input stream.
+        finally {
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 向指定 URL 发送POST方法的请求
+     *
+     * @param url 发送请求的 URL
+     * @param param  请求参数
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendPost(String url, Map<String, String> param) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String result = "";
+        try {
+            String para = "";
+            for (String key : param.keySet()) {
+                para += (key + "=" + param.get(key) + "&");
+            }
+            if (para.lastIndexOf("&") > 0) {
+                para = para.substring(0, para.length() - 1);
+            }
+            String urlNameString = url + "?" + para;
+            URL realUrl = new URL(urlNameString);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            // 发送POST请求必须设置如下两行
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(conn.getOutputStream());
+            // 发送请求参数
+            out.print(param);
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送 POST 请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/page/Order.java b/cloud-server-competition/src/main/java/com/dsh/page/Order.java
new file mode 100644
index 0000000..105a4a5
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/page/Order.java
@@ -0,0 +1,26 @@
+package com.dsh.page;
+
+/**
+ * 数据库排序
+ *
+ * @author fengshuonan
+ * @Date 2017年5月31日20:48:41
+ */
+public enum Order {
+
+    ASC("asc"), DESC("desc");
+
+    private String des;
+
+    Order(String des) {
+        this.des = des;
+    }
+
+    public String getDes() {
+        return des;
+    }
+
+    public void setDes(String des) {
+        this.des = des;
+    }
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java b/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java
new file mode 100644
index 0000000..4035a85
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java
@@ -0,0 +1,31 @@
+package com.dsh.page;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.util.StringUtils;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * BootStrap Table默认的分页参数创建
+ *
+ * @author fengshuonan
+ * @date 2017-04-05 22:25
+ */
+public class PageFactory<T> {
+
+    public Page<T> defaultPage(Integer limit ,Integer offset) {
+        HttpServletRequest request = HttpKit.getRequest();
+        String sort = request.getParameter("sort");         //排序字段名称
+        String order = request.getParameter("order");       //asc或desc(升序或降序)
+        if (StringUtils.isEmpty(sort)) {
+            Page<T> page = new Page<>((offset / limit + 1), limit);
+            return page;
+        } else {
+            Page<T> page = new Page<T>((offset / limit + 1), limit);
+            if (Order.ASC.getDes().equals(order)) {
+            } else {
+            }
+            return page;
+        }
+    }
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java b/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java
new file mode 100644
index 0000000..337d021
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2011-2014, hubin (jobob@qq.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.dsh.page;
+
+import java.util.regex.Pattern;
+
+/**
+ * Web防火墙工具类
+ Web firewall tool category
+ * <p>
+ * @author   hubin
+ * @Date	 2014-5-8 	 
+ */
+public class WafKit {
+
+	/**
+	 * @Description 过滤XSS脚本内容
+	 Filtering XSS scripts content.
+	 * @param value
+	 * 				待处理内容
+	 * @return
+	 */
+	public static String stripXSS(String value) {
+		String rlt = null;
+
+		if (null != value) {
+			// NOTE: It's highly recommended to use the ESAPI library and uncomment the following line to
+			// avoid encoded attacks.
+			// value = ESAPI.encoder().canonicalize(value);
+
+			// Avoid null characters
+			rlt = value.replaceAll("", "");
+
+			// Avoid anything between script tags
+			Pattern scriptPattern = Pattern.compile("<script>(.*?)</script>", Pattern.CASE_INSENSITIVE);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid anything in a src='...' type of expression
+			/*scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\'(.*?)\\\'", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\"(.*?)\\\"", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");*/
+
+			// Remove any lonesome </script> tag
+			scriptPattern = Pattern.compile("</script>", Pattern.CASE_INSENSITIVE);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Remove any lonesome <script ...> tag
+			scriptPattern = Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid eval(...) expressions
+			scriptPattern = Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid expression(...) expressions
+			scriptPattern = Pattern.compile("expression\\((.*?)\\)", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid javascript:... expressions
+			scriptPattern = Pattern.compile("javascript:", Pattern.CASE_INSENSITIVE);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid vbscript:... expressions
+			scriptPattern = Pattern.compile("vbscript:", Pattern.CASE_INSENSITIVE);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+
+			// Avoid onload= expressions
+			scriptPattern = Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE
+					| Pattern.MULTILINE | Pattern.DOTALL);
+			rlt = scriptPattern.matcher(rlt).replaceAll("");
+		}
+		
+		return rlt;
+	}
+
+	/**
+	 * @Description 过滤SQL注入内容
+	 Filter SQL injection content.
+	 * @param value
+	 * 				待处理内容
+	 * @return
+	 */
+	public static String stripSqlInjection(String value) {
+		return (null == value) ? null : value.replaceAll("('.+--)|(--)|(%7C)", ""); //value.replaceAll("('.+--)|(--)|(\\|)|(%7C)", "");
+	}
+
+	/**
+	 * @Description 过滤SQL/XSS注入内容
+	 Filter SQL/XSS injection content.
+	 * @param value
+	 * 				待处理内容
+	 * @return
+	 */
+	public static String stripSqlXSS(String value) {
+		return stripXSS(stripSqlInjection(value));
+	}
+
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java b/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java
new file mode 100644
index 0000000..942f035
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2011-2014, hubin (jobob@qq.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.dsh.page;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Request请求过滤包装
+ Request for packaging filtration.
+ * <p>
+ * @author   hubin
+ * @Date	 2014-5-8 	 
+ */
+public class WafRequestWrapper extends HttpServletRequestWrapper {
+
+	private boolean filterXSS = true;
+
+	private boolean filterSQL = true;
+
+
+	public WafRequestWrapper(HttpServletRequest request, boolean filterXSS, boolean filterSQL) {
+		super(request);
+		this.filterXSS = filterXSS;
+		this.filterSQL = filterSQL;
+	}
+
+
+	public WafRequestWrapper(HttpServletRequest request) {
+		this(request, true, true);
+	}
+
+
+	/**
+	 * @Description 数组参数过滤
+	 * @param parameter
+	 * 				过滤参数
+	 * @return
+	 */
+	@Override
+	public String[] getParameterValues(String parameter) {
+		String[] values = super.getParameterValues(parameter);
+		if ( values == null ) {
+			return null;
+		}
+
+		int count = values.length;
+		String[] encodedValues = new String[count];
+		for ( int i = 0 ; i < count ; i++ ) {
+			encodedValues[i] = filterParamString(values[i]);
+		}
+
+		return encodedValues;
+	}
+
+	@Override
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public Map getParameterMap() {
+		Map<String, String[]> primary = super.getParameterMap();
+		Map<String, String[]> result = new HashMap<String, String[]>(primary.size());
+		for ( Map.Entry<String, String[]> entry : primary.entrySet() ) {
+			result.put(entry.getKey(), filterEntryString(entry.getValue()));
+		}
+		return result;
+
+	}
+	
+	protected String[] filterEntryString(String[] rawValue) {
+		for ( int i = 0 ; i < rawValue.length ; i++ ) {
+			rawValue[i] = filterParamString(rawValue[i]);
+		}
+		return rawValue;
+	}
+
+	/**
+	 * @Description 参数过滤
+	 * @param parameter
+	 * 				过滤参数
+	 * @return
+	 */
+	@Override
+	public String getParameter(String parameter) {
+		return filterParamString(super.getParameter(parameter));
+	}
+
+
+	/**
+	 * @Description 请求头过滤 
+	 * @param name
+	 * 				过滤内容
+	 * @return
+	 */
+	@Override
+	public String getHeader(String name) {
+		return filterParamString(super.getHeader(name));
+	}
+
+
+	/**
+	 * @Description Cookie内容过滤
+	 * @return
+	 */
+	@Override
+	public Cookie[] getCookies() {
+		Cookie[] existingCookies = super.getCookies();
+		if (existingCookies != null) {
+			for (int i = 0 ; i < existingCookies.length ; ++i) {
+				Cookie cookie = existingCookies[i];
+				cookie.setValue(filterParamString(cookie.getValue()));
+			}
+		}
+		return existingCookies;
+	}
+
+	/**
+	 * @Description 过滤字符串内容
+	 * @param rawValue
+	 * 				待处理内容
+	 * @return
+	 */
+	protected String filterParamString(String rawValue) {
+		if (null == rawValue) {
+			return null;
+		}
+		String tmpStr = rawValue;
+		if (this.filterXSS) {
+			tmpStr = WafKit.stripXSS(rawValue);
+		}
+		if (this.filterSQL) {
+			tmpStr = WafKit.stripSqlInjection(tmpStr);
+		}
+		return tmpStr;
+	}
+}
diff --git a/cloud-server-course/mb-cloud-course.iml b/cloud-server-course/mb-cloud-course.iml
index 9c5ecce..ae755d5 100644
--- a/cloud-server-course/mb-cloud-course.iml
+++ b/cloud-server-course/mb-cloud-course.iml
@@ -9,6 +9,16 @@
         <webroots />
       </configuration>
     </facet>
+    <facet type="jpa" name="JPA">
+      <configuration>
+        <setting name="validation-enabled" value="true" />
+        <setting name="provider-name" value="Hibernate" />
+        <datasource-mapping>
+          <factory-entry name="entityManagerFactory" />
+        </datasource-mapping>
+        <naming-strategy-map />
+      </configuration>
+    </facet>
   </component>
   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
     <output url="file://$MODULE_DIR$/target/classes" />
@@ -28,7 +38,6 @@
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
     <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-data:1.1.3" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.6.RELEASE" level="project" />
@@ -37,7 +46,6 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: io.undertow:undertow-core:2.1.4.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
     <orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.8.0.Final" level="project" />
     <orderEntry type="library" name="Maven: org.wildfly.common:wildfly-common:1.5.2.Final" level="project" />
     <orderEntry type="library" name="Maven: org.wildfly.client:wildfly-client-config:1.0.1.Final" level="project" />
@@ -55,7 +63,6 @@
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.3.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.3.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.3.5.RELEASE" level="project" />
@@ -69,7 +76,6 @@
     <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.3" level="project" />
     <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.3" level="project" />
     <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.3" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
     <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.3" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.6.RELEASE" level="project" />
@@ -90,12 +96,10 @@
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.6.RELEASE" 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.11.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-api:1.1.3" level="project" />
     <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-feign:1.1.3" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.6.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
     <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
     <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
@@ -110,7 +114,6 @@
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-annotation-aspectj:1.7.1" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.7.1" level="project" />
     <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.6" level="project" />
-    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-circuitbreaker-sentinel:2.2.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-reactor-adapter:1.7.1" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webflux-adapter:1.7.1" level="project" />
@@ -132,7 +135,38 @@
     <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
     <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
     <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.23.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.24.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.18" level="project" />
+    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss:jandex:2.1.3.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.2.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
@@ -142,22 +176,155 @@
     <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
     <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.11.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
-    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" />
+    <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
+    <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.8.10.ALL" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.50" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
     <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
     <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
     <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
@@ -170,7 +337,6 @@
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" />
@@ -186,8 +352,6 @@
     <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
@@ -207,7 +371,6 @@
     <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
     <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" />
@@ -222,12 +385,12 @@
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.3" level="project" />
@@ -237,11 +400,10 @@
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
-    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.18" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.18" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index f8fe08d..9f060b1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -60,7 +60,7 @@
      * @return
      */
     @ResponseBody
-    @PostMapping("/coursePackage/queryCoursePackageById")
+    @PostMapping("/base/coursePackage/queryCoursePackageById")
     public TCoursePackage queryCoursePackageById(@RequestBody Integer id){
         try {
             TCoursePackage coursePackage = coursePackageService.getById(id);
@@ -152,4 +152,15 @@
         return courseVoList;
     }
 
+    /**
+     * 根据id获取课包
+     * @param coursePackConfigId
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/coursePackage/queryConfigCoursePackData")
+    public CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId){
+        return icppconfigService.getById(coursePackConfigId);
+    }
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java
new file mode 100644
index 0000000..07e6d3f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java
@@ -0,0 +1,15 @@
+package com.dsh.course.feignClient.account;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.account.model.CityListQuery;
+import com.dsh.course.feignClient.account.model.TCityManager;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient("mb-cloud-account")
+public interface CityClient {
+
+    @PostMapping("/base/city/list")
+    Page<TCityManager> list(CityListQuery listQuery);
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java
new file mode 100644
index 0000000..0bb4599
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java
@@ -0,0 +1,18 @@
+package com.dsh.course.feignClient.account.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CityListQuery {
+    private long limit;
+    private long offset;
+    private String provinceCode;
+    private String cityCode;
+    private String name;
+    private String phone;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java
new file mode 100644
index 0000000..9c8ab92
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java
@@ -0,0 +1,22 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("t_city_manager")
+public class TCityManager {
+    private Integer id;
+    private String name;
+    private String phone;
+    private String password;
+    private String province;
+    @TableField("provinceCode")
+    private String provinceCode;
+    private String city;
+    @TableField("cityCode")
+    private String cityCode;
+    private Integer state;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
index ac09c0d..365ef77 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java
@@ -1,7 +1,10 @@
 package com.dsh.course.feignClient.competition;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.feignClient.competition.model.Competition;
+import com.dsh.course.feignClient.competition.model.GetPeopleQuery;
 import com.dsh.course.feignClient.competition.model.ListQuery;
+import com.dsh.course.feignClient.competition.model.Participant;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -15,7 +18,19 @@
     Competition queryById(Integer id);
 
     @PostMapping("/base/competition/list")
-    List<Competition> list(ListQuery listQuery);
+    Page<Competition> list(ListQuery listQuery);
+
+    @PostMapping("/base/competition/add")
+    void add(Competition competition);
+
+    @PostMapping("/base/competition/update")
+    void update(Competition competition);
+
+    @PostMapping("/base/competition/cancel")
+    void cancel(Integer id);
+    @PostMapping("/base/competition/getPeopleFromId")
+    Page<Participant> getPeopleFromId(GetPeopleQuery getPeopleQuery);
+
 }
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
index 0a6fa17..4414b6b 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
@@ -1,7 +1,240 @@
 package com.dsh.course.feignClient.competition.model;
 
-public class Competition {
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_competition")
+public class Competition extends Model<Competition> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 省
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 门店id
+     */
+    @TableField("storeId")
+    private Integer storeId;
+    /**
+     * 赛事名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 开始时间
+     */
+    @TableField("startTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @TableField("endTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+    /**
+     * 报名结束时间
+     */
+    @TableField("registerEndTime")
+    private Date registerEndTime;
+    /**
+     * 报名条件(1=全部用户,2=仅限年度会员参与,3=仅限学员参与)
+     */
+    @TableField("registerCondition")
+    private Integer registerCondition;
+    /**
+     * 报名开始年龄
+     */
+    @TableField("startAge")
+    private Integer startAge;
+    /**
+     * 报名结束年龄
+     */
+    @TableField("endAge")
+    private Integer endAge;
+    /**
+     * 现金支付价格
+     */
+    @TableField("cashPrice")
+    private Double cashPrice;
+    /**
+     * 玩湃币支付价格
+     */
+    @TableField("playPaiCoin")
+    private Integer playPaiCoin;
+    /**
+     * 课时支付价格
+     */
+    @TableField("classPrice")
+    private Integer classPrice;
+    /**
+     * 参加地址
+     */
+    @TableField("address")
+    private String address;
+    /**
+     * 经度
+     */
+    @TableField("longitude")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @TableField("latitude")
+    private String latitude;
+    /**
+     * 报名人数
+     */
+    @TableField("applicantsNumber")
+    private Integer applicantsNumber;
+    /**
+     * 基础人数
+     */
+    @TableField("baseNumber")
+    private Integer baseNumber;
+    /**
+     * 是否需要实名(0=否,1=是)
+     */
+    @TableField("realName")
+    private Integer realName;
+    /**
+     * 赛事封面图
+     */
+    @TableField("coverDrawing")
+    private String coverDrawing;
+    /**
+     * 赛事简介
+     */
+    @TableField("introduction")
+    private String introduction;
+    /**
+     * 赛事图片
+     */
+    @TableField("imgs")
+    private String imgs;
+    /**
+     * 报名须知
+     */
+    @TableField("registrationNotes")
+    private String registrationNotes;
+    /**
+     * 参赛省
+     */
+    @TableField("entryProvince")
+    private String entryProvince;
+    /**
+     * 参赛省编号
+     */
+    @TableField("entryProvinceCode")
+    private String entryProvinceCode;
+    /**
+     * 参赛市
+     */
+    @TableField("entryCity")
+    private String entryCity;
+    /**
+     * 参赛市编号
+     */
+    @TableField("entryCityCode")
+    private String entryCityCode;
+    /**
+     * 参赛地址
+     */
+    @TableField("entryAddress")
+    private String entryAddress;
+    /**
+     * 参赛经度
+     */
+    @TableField("entryLon")
+    private String entryLon;
+    /**
+     * 参赛纬度
+     */
+    @TableField("entryLat")
+    private String entryLat;
+    /**
+     * 审核状态(1=待审核,2=已通过,3=已拒绝)
+     */
+    @TableField("auditStatus")
+    private Integer auditStatus;
+    /**
+     * 审核人id
+     */
+    @TableField("auditUserId")
+    private Integer auditUserId;
+    /**
+     * 审核备注
+     */
+    @TableField("auditRemark")
+    private String auditRemark;
+    /**
+     * 状态(1=未开始,2=已开始,3=已结束,4=已取消)
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    @TableField(exist = false)
+    private String storeName;
 
 
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java
new file mode 100644
index 0000000..a4c0807
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java
@@ -0,0 +1,15 @@
+package com.dsh.course.feignClient.competition.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GetPeopleQuery {
+    private long limit;
+    private long offset;
+    private Integer id;
+    private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java
index 4b380af..e9bfbdd 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java
@@ -11,6 +11,10 @@
 @NoArgsConstructor
 public class ListQuery {
 
+    private long limit;
+
+    private long offset;
+
     private String provinceCode;
     private String cityCode;
     private String eventName;
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java
new file mode 100644
index 0000000..797e501
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java
@@ -0,0 +1,73 @@
+package com.dsh.course.feignClient.competition.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/6 16:46
+ */
+@Data
+@TableName("t_participant")
+public class Participant {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 生日
+     */
+    @TableField("birthday")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    @TableField("gender")
+    private Integer gender;
+    /**
+     * 身高(CM)
+     */
+    @TableField("height")
+    private Integer height;
+    /**
+     * 体重(KG)
+     */
+    @TableField("weight")
+    private Double weight;
+    /**
+     * 联系电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 身份证号码
+     */
+    @TableField("idcard")
+    private String idcard;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java
index 0bd44d9..44c909d 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java
@@ -2,8 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.course.entity.City;
+import com.dsh.guns.modular.system.model.TCity;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
-public interface CityMapper extends BaseMapper<City> {
+public interface CityMapper extends BaseMapper<TCity> {
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java b/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java
index dd8e9d5..a1ec94e 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.course.entity.City;
+import com.dsh.guns.modular.system.model.TCity;
 
-public interface ICityService extends IService<City> {
+public interface ICityService extends IService<TCity> {
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java
deleted file mode 100644
index 370d0f6..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.dsh.course.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.dsh.course.entity.City;
-import com.dsh.course.mapper.CityMapper;
-import com.dsh.course.service.ICityService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class CityServiceImpl extends ServiceImpl<CityMapper, City> implements ICityService {
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java
index f4ce03f..7723950 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java
@@ -1,20 +1,33 @@
 package com.dsh.guns.core.base.tips;
 
+import com.dsh.course.feignClient.competition.model.Competition;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import org.apache.poi.ss.formula.functions.T;
+
+import java.util.List;
+
 /**
  * 返回给前台的成功提示
  *
  * @author fengshuonan
  * @date 2016年11月12日 下午5:05:22
  */
-public class SuccessTip extends Tip {
+public class SuccessTip<T> extends Tip {
 	
 	public SuccessTip(){
 		super.code = 200;
 		super.message = "操作成功";
+	}
+	public SuccessTip(T data){
+		super.code = 200;
+		super.message = "操作成功";
+		super.data=data;
 	}
 
 	public SuccessTip(Integer code,String message){
 		super.code = code;
 		super.message = message;
 	}
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java
index 719907d..4fdf333 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java
@@ -1,15 +1,26 @@
 package com.dsh.guns.core.base.tips;
 
+import org.apache.poi.ss.formula.functions.T;
+
 /**
  * 返回给前台的提示(最终转化为json形式)
  *
  * @author fengshuonan
  * @Date 2017年1月11日 下午11:58:00
  */
-public abstract class Tip {
+public abstract class Tip<T> {
 
     protected int code;
     protected String message;
+    protected T data;
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
 
     public int getCode() {
         return code;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
new file mode 100644
index 0000000..bd85872
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
@@ -0,0 +1,139 @@
+package com.dsh.guns.modular.system.controller.code;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.entity.City;
+import com.dsh.course.feignClient.account.CityClient;
+import com.dsh.course.feignClient.account.model.CityListQuery;
+import com.dsh.course.feignClient.account.model.TCityManager;
+import com.dsh.course.feignClient.competition.CompetitionClient;
+import com.dsh.course.feignClient.competition.model.Competition;
+import com.dsh.course.feignClient.competition.model.GetPeopleQuery;
+import com.dsh.course.feignClient.competition.model.ListQuery;
+import com.dsh.course.feignClient.competition.model.Participant;
+import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.common.constant.factory.PageFactory;
+import com.dsh.guns.core.util.ToolUtil;
+import com.dsh.guns.modular.system.model.TCity;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.service.IStoreService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 车辆管理控制器
+ *
+ * @author fengshuonan
+ * @Date 2020-06-05 17:25:12
+ */
+@Controller
+@RequestMapping("/tCity")
+public class TCityController extends BaseController {
+
+    private String PREFIX = "/system/tCity/";
+
+    @Autowired
+    private CompetitionClient competitionClient;
+
+    @Autowired
+    private CityClient cityClient;
+
+    @Autowired
+    private IStoreService storeService;
+
+
+    /**
+     * 跳转到车辆管理首页
+     */
+    @RequestMapping("")
+    public String index(Model model) {
+        return PREFIX + "TCity.html";
+    }
+
+    /**
+     * 跳转到添加车辆管理
+     */
+    @RequestMapping("/tCompetition_add")
+    public String tCompetitionAdd(Model model) {
+        return PREFIX + "TCompetition_add.html";
+    }
+
+
+    /**
+     * 跳转到修改车辆管理
+     */
+    @RequestMapping("/tCompetition_update/{id}")
+    public String tCarUpdate(@PathVariable Integer id, Model model) {
+        Competition competition = competitionClient.queryById(id);
+        model.addAttribute("item",competition);
+        return PREFIX + "tCompetition_edit.html";
+    }
+
+
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(String provinceCode, String cityCode , String name, String phone) {
+        Page<Competition> page = new PageFactory<Competition>().defaultPage();
+        CityListQuery listQuery = new CityListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,name,phone);
+        Page<TCityManager> competitions = cityClient.list(listQuery);
+        return  super.packForBT(competitions);
+    }
+
+
+    @RequestMapping(value = "/add")
+    public Object list(Competition competition) {
+        try {
+            competitionClient.add(competition);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+    @RequestMapping(value = "/update")
+    public Object update(Competition competition) {
+        try {
+            competitionClient.update(competition);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+
+    @RequestMapping(value = "/cancel")
+    public Object cancel(Integer id) {
+        try {
+            competitionClient.cancel(id);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+    @RequestMapping(value = "/getPeopleFromId")
+    public Object getPeopleFromId(Integer id,Integer state) {
+        try {
+            Page<Object> page = new PageFactory<>().defaultPage();
+            Page<Participant> data =   competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state));
+            return  super.packForBT(data);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index bc7bd58..2bc4b7c 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -4,29 +4,22 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.feignClient.competition.CompetitionClient;
 import com.dsh.course.feignClient.competition.model.Competition;
+import com.dsh.course.feignClient.competition.model.GetPeopleQuery;
 import com.dsh.course.feignClient.competition.model.ListQuery;
-import com.dsh.course.feignClient.course.CourseClient;
-import com.dsh.guns.config.UserExt;
+import com.dsh.course.feignClient.competition.model.Participant;
 import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.base.tips.SuccessTip;
 import com.dsh.guns.core.common.constant.factory.PageFactory;
-import com.dsh.guns.core.util.SinataUtil;
+import com.dsh.guns.core.support.HttpKit;
 import com.dsh.guns.core.util.ToolUtil;
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.util.DateUtil;
-import com.dsh.guns.modular.system.util.ExcelExportUtil;
-import com.dsh.guns.modular.system.util.ResultUtil;
-import com.dsh.guns.modular.system.warpper.RoleWarpper;
-import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -37,10 +30,10 @@
  * @Date 2020-06-05 17:25:12
  */
 @Controller
-@RequestMapping("/TCompetition")
+@RequestMapping("/tCompetition")
 public class TCompetitionController extends BaseController {
 
-    private String PREFIX = "/system/TCompetition/";
+    private String PREFIX = "/system/tCompetition/";
 
     @Autowired
     private CompetitionClient competitionClient;
@@ -62,7 +55,7 @@
      */
     @RequestMapping("/tCompetition_add")
     public String tCompetitionAdd(Model model) {
-        return PREFIX + "tCompetition_add.html";
+        return PREFIX + "TCompetition_add.html";
     }
 
 
@@ -79,22 +72,80 @@
 
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(String provinceCode,String cityCode,String shopName,String eventName,String time,Integer state,Integer registerCondition) {
+    public Object list(String provinceCode, String cityCode, String shopName, String eventName, String time, Integer state, Integer registerCondition) {
         List<Integer> ids = new ArrayList<>();
+        List<TStore> list = null;
         // 获取门店id
         if(ToolUtil.isNotEmpty(shopName)){
-            List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().like(TStore::getName, shopName));
+             list = storeService.list(new LambdaQueryWrapper<TStore>().like(TStore::getName, shopName));
             ids = list.stream().map(TStore::getId).collect(Collectors.toList());
         }else {
+            list = storeService.list();
             ids = storeService.list().stream().map(TStore::getId).collect(Collectors.toList());
         }
         if(ids.size()==0){
             ids.add(-1);
         }
-        ListQuery listQuery = new ListQuery(provinceCode,cityCode,eventName,time,state,registerCondition,ids);
-        List<Competition> competitions = competitionClient.list(listQuery);
-        return super.warpObject(null);
+        Page<Competition> page = new PageFactory<Competition>().defaultPage();
+        ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids);
+        Page<Competition> competitions = competitionClient.list(listQuery);
+        for (Competition competition : competitions.getRecords()) {
+            for (TStore tStore : list) {
+                if(competition.getStoreId().equals(tStore.getId())){
+                    competition.setStoreName(tStore.getName());
+                }
+            }
+        }
+        return  super.packForBT(competitions);
     }
 
 
+    @RequestMapping(value = "/add")
+    public Object list(Competition competition) {
+        try {
+            competitionClient.add(competition);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+    @RequestMapping(value = "/update")
+    public Object update(Competition competition) {
+        try {
+            competitionClient.update(competition);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+
+    @RequestMapping(value = "/cancel")
+    public Object cancel(Integer id) {
+        try {
+            competitionClient.cancel(id);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+    @RequestMapping(value = "/getPeopleFromId")
+    public Object getPeopleFromId(Integer id,Integer state) {
+        try {
+            Page<Object> page = new PageFactory<>().defaultPage();
+            Page<Participant> data =   competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state));
+            return  super.packForBT(data);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ERROR;
+        }
+    }
+
+
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
index 789be56..88f8762 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -91,12 +91,6 @@
 
         if (SinataUtil.isEmpty(user)){
             String a ="请重新登录";
-            if(language==2){
-                a="Please log in again";
-            }else if(language==3){
-                a="Silakan log masuk lagi";
-            }
-
             model.addAttribute("tips", a);
             return "/login.html";
         }
@@ -108,12 +102,6 @@
         Role role = roleService.getBaseMapper().selectById(roleList.get(0));
 
         User byId = userService.getById(user.getId());
-        String a = "您的密码已经90天未更换了,请及时更换密码!!!";
-        if(language==2){
-            a="Your password has not been changed for 90 days, please change your password in time!!";
-        }else if(language==3){
-            a="Kata sandi Anda belum diubah selama 90 hari, silakan merubah kata sandi Anda pada waktu!!";
-        }
         //获取用户头像 Obtain user profile
         String avatar = byId.getAvatar();
         model.addAttribute("roleNames", role.getName());
@@ -205,7 +193,7 @@
         password = AESUtils.decrypt(password);
         String s = MD5.md5(password);
         if(!user.getPassword().equals(s)){
-            model.addAttribute("tips", "Account password error");
+            model.addAttribute("tips", "账号密码错误");
             return "/login.html";
         }
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java
new file mode 100644
index 0000000..89425dd
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java
@@ -0,0 +1,20 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@TableName("t_region")
+@Data
+public class TCity {
+    private Integer id;
+    private String name;
+    private String code;
+    private String citycode;
+    @TableField("parent_id")
+    private Integer parentId;
+    private String english;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
index 4b57097..74a4f1d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
@@ -1,5 +1,6 @@
 package com.dsh.guns.modular.system.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -10,21 +11,30 @@
 public class TStore {
     private Integer id;
     private String name;
+    @TableField("storeStaffId")
     private Integer storeStaffId;
+    @TableField("cityManagerId")
     private Integer cityManagerId;
     private String province;
+    @TableField("provinceCode")
     private String provinceCode;
     private String city;
+    @TableField("cityCode")
     private String cityCode;
     private String phone;
     private String address;
     private String lat;
     private String lon;
+    @TableField("startTime")
     private String startTime;
+    @TableField("endTime")
     private String endTime;
+    @TableField("coverDrawing")
     private String coverDrawing;
+    @TableField("realPicture")
     private String realPicture;
     private String introduce;
+    @TableField("welfarePicture")
     private String welfarePicture;
     private BigDecimal score;
     private Integer state;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java
new file mode 100644
index 0000000..289a178
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java
@@ -0,0 +1,17 @@
+package com.dsh.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.guns.modular.system.model.TCity;
+import com.dsh.guns.modular.system.model.TStore;
+
+
+/**
+ * 字典服务
+ *
+ * @author fengshuonan
+ * @date 2017-04-27 17:00
+ */
+public interface ICityService extends IService<TCity> {
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java
new file mode 100644
index 0000000..79d21d5
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java
@@ -0,0 +1,15 @@
+package com.dsh.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.mapper.CityMapper;
+import com.dsh.course.mapper.StoreMapper;
+import com.dsh.guns.modular.system.model.TCity;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.service.ICityService;
+import com.dsh.guns.modular.system.service.IStoreService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CityServiceImpl extends ServiceImpl<CityMapper, TCity> implements ICityService {
+
+}
diff --git a/cloud-server-management/src/main/resources/mapper/CityMapper.xml b/cloud-server-management/src/main/resources/mapper/CityMapper.xml
index e679ee9..f54cf34 100644
--- a/cloud-server-management/src/main/resources/mapper/CityMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/CityMapper.xml
@@ -2,12 +2,4 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dsh.course.mapper.CityMapper">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dsh.course.entity.City">
-        <id column="id" property="id"/>
-        <result column="chineseName" property="chineseName"/>
-        <result column="englishName" property="englishName"/>
-        <result column="indonesianName" property="indonesianName"/>
-        <result column="pid" property="pid"/>
-    </resultMap>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/resources/mapper/MenuMapper.xml b/cloud-server-management/src/main/resources/mapper/MenuMapper.xml
index 2c72b60..9a884ed 100644
--- a/cloud-server-management/src/main/resources/mapper/MenuMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/MenuMapper.xml
@@ -21,7 +21,7 @@
 
     <sql id="Base_Column_List">
         id, code, pcode, name, icon, url, num, levels,pcodes,
-        tips, status,isopen,ismenu,ename,bname
+        tips, status,isopen,ismenu
     </sql>
 
     <select id="selectMenus" resultType="map">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/404.html b/cloud-server-management/src/main/webapp/WEB-INF/view/404.html
index ebd6e25..d4dd79e 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/404.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/404.html
@@ -7,7 +7,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
 
-    <title>evmoto摩托 - 404 页面</title>
+    <title>玩湃生活 - 404 页面</title>
     <link rel="shortcut icon" href="${ctxPath}/log.ico"> <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
     <link href="${ctxPath}/css/font-awesome.css?v=4.4.0" rel="stylesheet">
     <link href="${ctxPath}/css/style.css?v=4.1.0" rel="stylesheet">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
index fe16e86..c715826 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
@@ -4,15 +4,14 @@
             <div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a>
                 <form role="search" class="navbar-form-custom" method="post" action="search_results.html">
                     <div class="form-group">
-                        <input type="text" placeholder="evmoto management system …" class="form-control" name="top-search" id="top-search" value="evmoto management system" disabled>
+                        <input type="text" placeholder="请输入您需要查找的内容..." class="form-control" name="top-search" id="top-search" value="请输入您需要查找的内容..." disabled>
                     </div>
                 </form>
-                <h3 style="float: right;line-height: 50px;color: red;">${passwordHint}</h3>
             </div>
             <ul class="nav navbar-top-links navbar-right">
                 <li class="dropdown hidden-xs">
                     <a class="right-sidebar-toggle" aria-expanded="false">
-                        <i class="fa fa-tasks"></i> theme
+                        <i class="fa fa-tasks"></i> 主题
                     </a>
                 </li>
             </ul>
@@ -23,7 +22,7 @@
         </button>
         <nav class="page-tabs J_menuTabs">
             <div class="page-tabs-content">
-                <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">Home page</a>
+                <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">首页</a>
             </div>
         </nav>
         <!--<nav class="page-tabs J_menuTabs">
@@ -34,17 +33,26 @@
         <button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i>
         </button>
         <div class="btn-group roll-nav roll-right">
-            <button class="dropdown J_tabClose" data-toggle="dropdown">Close<span class="caret"></span>
+            <button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span>
 
             </button>
+            <ul role="menu" class="dropdown-menu dropdown-menu-right">
+                <li class="J_tabShowActive"><a>定位当前选项卡</a>
+                </li>
+                <li class="divider"></li>
+                <li class="J_tabCloseAll"><a>关闭全部选项卡</a>
+                </li>
+                <li class="J_tabCloseOther"><a>关闭其他选项卡</a>
+                </li>
+            </ul>
         </div>
-        <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> Exit</a>
+        <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
     </div>
     <div class="row J_mainContent" id="content-main">
         <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard?type=${type}" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe>
     </div>
     <div class="footer">
-        <div class="pull-right">&copy; 2019-2021 <a href="#" onclick="return false" target="_blank">evmoto</a>
+        <div class="pull-right">&copy; 2019-2023 <a href="#" onclick="return false" target="_blank">玩湃</a>
         </div>
     </div>
 </div>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html
index fd3bc07..b529b6a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html
@@ -19,14 +19,14 @@
                         </span>
                     </a>
                     <ul class="dropdown-menu m-t-xs">
-                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_info">personal data</a></li>
-                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">change password</a></li>
+                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_info">个人资料</a></li>
+                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">修改密码</a></li>
                         <li class="divider"></li>
-                        <li><a href="${ctxPath}/logout">Exit</a>
+                        <li><a href="${ctxPath}/logout">安全退出</a>
                         </li>
                     </ul>
                 </div>
-                <div class="logo-element">MS
+                <div class="logo-element">玩湃
                 </div>
             </li>
             
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html
index be3e365..2479ac1 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html
@@ -3,7 +3,7 @@
 
 		<ul class="nav nav-tabs navs-3">
 			<li class="active"><a data-toggle="tab" href="#tab-1"> <i
-					class="fa fa-gear"></i> theme
+					class="fa fa-gear"></i> 主题
 			</a></li>
 		</ul>
 
@@ -11,15 +11,15 @@
 			<div id="tab-1" class="tab-pane active">
 				<div class="sidebar-title">
 					<h3>
-						<i class="fa fa-comments-o"></i> theme settings
+						<i class="fa fa-comments-o"></i> 主题设置
 					</h3>
 					<small><i class="fa fa-tim"></i>
-						From here you can select and preview the layout and style of the theme. These Settings will be saved locally and applied directly the next time you open them。</small>
+						你可以从这里选择和预览主题的布局和样式,这些设置会被保存在本地,下次打开的时候会直接应用这些设置。</small>
 				</div>
 				<div class="skin-setttings">
-					<div class="title">theme settings</div>
+					<div class="title">主题设置</div>
 					<div class="setings-item">
-						<span>Drop the left menu</span>
+						<span>收起左侧菜单</span>
 						<div class="switch">
 							<div class="onoffswitch">
 								<input type="checkbox" name="collapsemenu"
@@ -32,7 +32,7 @@
 						</div>
 					</div>
 					<div class="setings-item">
-						<span>Fixed top</span>
+						<span>固定顶部</span>
 
 						<div class="switch">
 							<div class="onoffswitch">
@@ -46,7 +46,7 @@
 						</div>
 					</div>
 					<div class="setings-item">
-						<span> Fixed Width </span>
+						<span> 固定宽度 </span>
 
 						<div class="switch">
 							<div class="onoffswitch">
@@ -59,20 +59,20 @@
 							</div>
 						</div>
 					</div>
-					<div class="title">Use alternative skin</div>
+					<div class="title">皮肤选择</div>
 					<div class="setings-item default-skin nb">
 						<span class="skin-name "> <a href="#" class="s-skin-0">
-								Default </a>
+								默认皮肤 </a>
 						</span>
 					</div>
 					<div class="setings-item blue-skin nb">
 						<span class="skin-name "> <a href="#" class="s-skin-1">
-								Blue theme </a>
+								蓝色主题</a>
 						</span>
 					</div>
 					<div class="setings-item yellow-skin nb">
 						<span class="skin-name "> <a href="#" class="s-skin-3">
-								Yellow/purple theme </a>
+								黄色/紫色主题  </a>
 						</span>
 					</div>
 				</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/index.html b/cloud-server-management/src/main/webapp/WEB-INF/view/index.html
index b2bc48b..6c33010 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/index.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/index.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="renderer" content="webkit">
-    <title>evmoto - homepage</title>
+    <title>玩湃 - 主页</title>
     <link rel="shortcut icon" href="${ctxPath}/log.ico">
     <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
     <link href="${ctxPath}/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
index 0bd14be..0bfc1fc 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
-    <title>evmoto - Login</title>
+    <title>玩湃-登录</title>
 
     <link rel="shortcut icon" href="${ctxPath}/log.ico">
     <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
@@ -64,21 +64,22 @@
         <form class="m-t" role="form" action="${ctxPath}/login" method="post">
             <div class="item">
                 <img src="${ctxPath}/img/account.png" />
-                <input class="itemInput" type="text" name="username" id="username"  placeholder="Please enter account" required="" value="">
+                <input class="itemInput" type="text" name="username" id="username"  placeholder="请输入账号" required="" value="">
             </div>
             <div  class="item">
                 <img src="${ctxPath}/img/password.png" />
-                <input class="itemInput" type="password" name="password" id="password"  placeholder="Please enter password" required="" value="">
+                <input class="itemInput" type="password" name="password" id="password"  placeholder="请输入密码" required="" value="">
             </div>
             <div  class="item">
-                <label>language</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                <select name="language" id="language" class="itemInput">
-                    <option value="1">中文</option>
-                    <option value="2">english</option>
-                    <option value="3">IndonesiaName</option>
-                </select>
+                <img src="${ctxPath}/img/password.png" />
+                <div class="col-sm-8" style="padding-left: 0px; width: 40%">
+                    <input class="form-control" type="text" name="kaptcha" placeholder="请输入验证码" required="">
+                </div>
+                <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;margin-left: 25%">
+                    <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/>
+                </div>
             </div>
-            <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">Login</button>
+            <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button>
             <button type="submit" id="submit" style="display: none;"></button>
             </p>
         </form>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html
new file mode 100644
index 0000000..53ad69f
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html
@@ -0,0 +1,52 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+
+            <div class="ibox-title">
+                <h5>城市管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                            </div>
+                            <div class="col-sm-3">
+
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="name" name="管理员姓名" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="phone" name="管理员手机号" />
+                            </div>
+                    <div class="col-sm-3">
+                        <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+                        <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
+                    </div>
+                </div>
+                <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+                    <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition()"/>
+                    <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/>
+                    <#button name="取消" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
+                    <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
+                    <#button name="已报名人员" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
+
+                </div>
+                <#table id="TCompetitionTable"/>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tCity/tCity.js"></script>
+<script>
+    laydate.render({
+        elem: '#createTime'
+        ,range: true
+        ,lang:"en"
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html
new file mode 100644
index 0000000..e9a3212
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html
@@ -0,0 +1,81 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+
+
+        <div class="form-horizontal" id="carInfoForm">
+
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">所在省:</label>
+                <div class="col-sm-9">
+                    <select class="form-control" id="pCode" name="pCode">
+                        <option value="">选择省</option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">所在市:</label>
+                <div class="col-sm-9">
+                    <select class="form-control" id="cCode" name="cCode">
+                        <option value="">选择市</option>
+                    </select>
+                </div>
+            </div>
+        <#input id="name" name="管理员姓名" type="text"/>
+        <#input id="phone" name="管理员手机号" type="text"/>
+
+
+        </div>
+</div>
+
+<div class="row btn-group-m-t">
+    <div class="col-sm-10 col-sm-offset-5">
+        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
+        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+    </div>
+</div>
+
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
+<script>
+    laydate.render({
+        elem: '#annualInspectionTime'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#commercialInsuranceTime'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#certifyDateA'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#transDateStart'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#transDateStop'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#certifyDateB'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#nextFixDate'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#GPSInstallDate'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#registerDate'
+        ,lang:"en"
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html
new file mode 100644
index 0000000..16f5070
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html
@@ -0,0 +1,401 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <input type="hidden" id="id" name="id" value="${item.id}">
+            <input hidden id="language" value="${language}">
+            <input type="hidden" id="roleType" name="roleType" value="${roleType}">
+            @if(language==1){
+            <div class="row">
+                <div class="col-sm-11">
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">所属机构:</label>
+                        <div class="col-sm-9"  style="display: flex;align-items: center;">
+                            @if(roleType == 1){
+                            <div class="radio radio-info radio-inline">
+                                <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
+                                <label for="companyType1"> 平台车辆 </label>
+                            </div>
+                            <div class="radio radio-success radio-inline">
+                                <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
+                                <label for="companyTyp2"> 加盟车辆 </label>
+                            </div>
+                            <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
+                                <option value="">选择所属分公司</option>
+                                @for(obj in companyList!){
+                                <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                            <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
+                                <option value="">选择所属加盟商</option>
+                                @for(obj in franchiseeList!){
+                                <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                            @}else if(roleType == 2){
+                            <span class="control-label">${objectName!}</span>
+                            <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
+                                <option value="">选择所属加盟商</option>
+                                @for(obj in franchiseeList!){
+                                <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                            @}else if(roleType == 3){
+                            <span class="control-label">${objectName!}</span>
+                            @}
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <fieldset>
+                            <label class="col-sm-3 control-label">服务模式:</label>
+                            <div class="col-sm-9">
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
+                                    <label for="serverBox1"> 摩托车 </label>
+                                </div>
+                                <div class="checkbox checkbox-success  checkbox-inline">
+                                    <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
+                                    <label for="serverBox4"> 同城快送 </label>
+                                </div>
+                            </div>
+                        </fieldset>
+                    </div>
+                    <div class="form-group" id="zcModelDiv">
+                        <label class="col-sm-3 control-label">摩托车车型:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" id="zcModel" name="zcModel">
+                                <option value="">选择车型</option>
+                                @for(obj in zcModelList){
+                                <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                                @}
+                            </select>
+                        </div>
+                    </div>
+                    <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)">
+                    <option value="">选择车辆品牌</option>
+                    @for(obj in brandList){
+                    <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </#select>
+                <#select id="carModelId" name="车辆类型:">
+                <option value="">选择车辆类型</option>
+                @for(obj in modelList){
+                <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
+                @}
+            </#select>
+            <#select id="carColor" name="车辆颜色:">
+            <option value="">选择车辆颜色</option>
+            <option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>黑色</option>
+            <option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>银色</option>
+            <option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>白色</option>
+            <option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>红色</option>
+            <option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>黄色</option>
+            <option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>橙色</option>
+            <option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>蓝色</option>
+        </#select>
+        <#input id="carLicensePlate" name="车牌号" value="${item.carLicensePlate}"/>
+        <#avatar id="carPhoto" name="车辆照片:" avatarImg="${item.carPhoto}"/>
+        <#input id="drivingLicenseNumber" name="行驶证编号" value="${item.drivingLicenseNumber}"/>
+        <#avatar id="drivingLicensePhoto" name="行驶证照片:" avatarImg="${item.drivingLicensePhoto}"/>
+        <#input id="annualInspectionTime" name="年检到期时间" type="text" value="${item.annualInspectionTime}"/>
+        <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text" value="${item.commercialInsuranceTime}"/>
+    </div>
+</div>
+
+<div class="row btn-group-m-t">
+    <div class="col-sm-10 col-sm-offset-5">
+        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
+        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+    </div>
+</div>
+            @}
+            @if(language==2){
+<div class="row">
+    <div class="col-sm-11">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">Affiliated organization:</label>
+            <div class="col-sm-9"  style="display: flex;align-items: center;">
+                @if(roleType == 1){
+                <div class="radio radio-info radio-inline">
+                    <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
+                    <label for="companyType1"> Platform vehicle </label>
+                </div>
+                <div class="radio radio-success radio-inline">
+                    <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
+                    <label for="companyTyp2"> Franchised vehicles </label>
+                </div>
+                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
+                    <option value="">Select Branch</option>
+                    @for(obj in companyList!){
+                    <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
+                    <option value="">Select the franchisee</option>
+                    @for(obj in franchiseeList!){
+                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                @}else if(roleType == 2){
+                <span class="control-label">${objectName!}</span>
+                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
+                    <option value="">Select the franchisee</option>
+                    @for(obj in franchiseeList!){
+                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                @}else if(roleType == 3){
+                <span class="control-label">${objectName!}</span>
+                @}
+            </div>
+        </div>
+        <div class="form-group">
+            <fieldset>
+                <label class="col-sm-3 control-label">Service mode:</label>
+                <div class="col-sm-9">
+                    <div class="checkbox checkbox-success  checkbox-inline">
+                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
+                        <label for="serverBox1"> motorcycle </label>
+                    </div>
+                    <div class="checkbox checkbox-success  checkbox-inline">
+                        <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
+                        <label for="serverBox4"> Intra-city express delivery </label>
+                    </div>
+                </div>
+            </fieldset>
+        </div>
+        <div class="form-group" id="zcModelDiv">
+            <label class="col-sm-3 control-label">Motorcycle model setting:</label>
+            <div class="col-sm-9">
+                <select class="form-control" id="zcModel" name="zcModel">
+                    <option value="">Select vehicle type</option>
+                    @for(obj in zcModelList){
+                    <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+            </div>
+        </div>
+        <div class="form-group" id="kcModelDiv">
+            <label class="col-sm-3 control-label">Cross city travel model:</label>
+            <div class="col-sm-9">
+                <select class="form-control" id="kcModel" name="kcModel">
+                    <option value="">Select vehicle type</option>
+                    @for(obj in kcModelList){
+                    <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+            </div>
+        </div>
+        <#select id="carBrandId" name="Vehicle brand:" onchange="TCarInfoDlg.brandChange(this)">
+        <option value="">Select vehicle brand</option>
+        @for(obj in brandList){
+        <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
+        @}
+    </#select>
+    <#select id="carModelId" name="Vehicle type:">
+    <option value="">Select vehicle type</option>
+    @for(obj in modelList){
+    <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
+    @}
+</#select>
+<#select id="carColor" name="Vehicle color:">
+<option value="">Select vehicle color</option>
+<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>black</option>
+<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>silvery</option>
+<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>white</option>
+<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>red</option>
+<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>yellow</option>
+<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>orange</option>
+<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>blue</option>
+</#select>
+<#input id="carLicensePlate" name="License plate number" value="${item.carLicensePlate}"/>
+<#avatar id="carPhoto" name="Vehicle photos:" avatarImg="${item.carPhoto}"/>
+<#input id="drivingLicenseNumber" name="Driving license number" value="${item.drivingLicenseNumber}"/>
+<#avatar id="drivingLicensePhoto" name="Photo of driving license:" avatarImg="${item.drivingLicensePhoto}"/>
+<#input id="annualInspectionTime" name="Annual inspection expiration time" type="text" value="${item.annualInspectionTime}"/>
+<#input id="commercialInsuranceTime" name="Expiration time of commercial insurance" type="text" value="${item.commercialInsuranceTime}"/>
+</div>
+</div>
+
+<div class="row btn-group-m-t">
+    <div class="col-sm-10 col-sm-offset-5">
+        <#button btnCss="info" name="Submit" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
+        <#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+    </div>
+</div>
+            @}
+            @if(language==3){
+<div class="row">
+    <div class="col-sm-11">
+        <div class="form-group">
+            <label class="col-sm-3 control-label">Organisasi Afiliasi:</label>
+            <div class="col-sm-9"  style="display: flex;align-items: center;">
+                @if(roleType == 1){
+                <div class="radio radio-info radio-inline">
+                    <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
+                    <label for="companyType1"> Kendaraan platform </label>
+                </div>
+                <div class="radio radio-success radio-inline">
+                    <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
+                    <label for="companyTyp2"> Kendaraan waralaba </label>
+                </div>
+                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
+                    <option value="">Pilih Branch</option>
+                    @for(obj in companyList!){
+                    <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
+                    <option value="">Pilih pemilik franchise</option>
+                    @for(obj in franchiseeList!){
+                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                @}else if(roleType == 2){
+                <span class="control-label">${objectName!}</span>
+                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
+                    <option value="">Pilih pemilik franchise</option>
+                    @for(obj in franchiseeList!){
+                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+                @}else if(roleType == 3){
+                <span class="control-label">${objectName!}</span>
+                @}
+            </div>
+        </div>
+        <div class="form-group">
+            <fieldset>
+                <label class="col-sm-3 control-label">Mode Layanan:</label>
+                <div class="col-sm-9">
+                    <div class="checkbox checkbox-success  checkbox-inline">
+                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
+                        <label for="serverBox1"> sepeda motor </label>
+                    </div>
+                    <div class="checkbox checkbox-success  checkbox-inline">
+                        <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
+                        <label for="serverBox4"> Pengiriman Ekspres Dalam Kota </label>
+                    </div>
+                </div>
+            </fieldset>
+        </div>
+        <div class="form-group" id="zcModelDiv">
+            <label class="col-sm-3 control-label">Pengaturan model sepeda motor:</label>
+            <div class="col-sm-9">
+                <select class="form-control" id="zcModel" name="zcModel">
+                    <option value="">Pilih Jenis Kendaraan</option>
+                    @for(obj in zcModelList){
+                    <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+            </div>
+        </div>
+        <div class="form-group" id="kcModelDiv">
+            <label class="col-sm-3 control-label">Model perjalanan melintasi kota:</label>
+            <div class="col-sm-9">
+                <select class="form-control" id="kcModel" name="kcModel">
+                    <option value="">Pilih Jenis Kendaraan</option>
+                    @for(obj in kcModelList){
+                    <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>
+                    @}
+                </select>
+            </div>
+        </div>
+        <#select id="carBrandId" name="Merek kendaraan:" onchange="TCarInfoDlg.brandChange(this)">
+        <option value="">Pilih Merek Kendaraan</option>
+        @for(obj in brandList){
+        <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
+        @}
+    </#select>
+    <#select id="carModelId" name="Jenis Kendaraan:">
+    <option value="">Pilih Jenis Kendaraan</option>
+    @for(obj in modelList){
+    <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
+    @}
+</#select>
+<#select id="carColor" name="车辆颜色:">
+<option value="">选择车辆颜色</option>
+<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>hitam</option>
+<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>perak</option>
+<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>putih</option>
+<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>merah</option>
+<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>kuning</option>
+<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>oranye</option>
+<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>biru</option>
+</#select>
+<#input id="carLicensePlate" name="Nomor plat nomor" value="${item.carLicensePlate}"/>
+<#avatar id="carPhoto" name="Foto kendaraan:" avatarImg="${item.carPhoto}"/>
+<#input id="drivingLicenseNumber" name="Nomor SIM Mengemudi" value="${item.drivingLicenseNumber}"/>
+<#avatar id="drivingLicensePhoto" name="Foto SIM:" avatarImg="${item.drivingLicensePhoto}"/>
+<#input id="annualInspectionTime" name="Waktu Kedaluwarsa Inspeksi Tahunan" type="text" value="${item.annualInspectionTime}"/>
+<#input id="commercialInsuranceTime" name="Waktu kedaluwarsa asuransi komersial" type="text" value="${item.commercialInsuranceTime}"/>
+</div>
+</div>
+
+<div class="row btn-group-m-t">
+    <div class="col-sm-10 col-sm-offset-5">
+        <#button btnCss="info" name="Kirim" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
+        <#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+    </div>
+</div>
+            @}
+
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/tCar/tCar_info.js"></script>
+<script>
+    laydate.render({
+        elem: '#annualInspectionTime'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#commercialInsuranceTime'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#certifyDateA'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#transDateStart'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#transDateStop'
+        ,lang:"en"
+    });
+    laydate.render({
+
+        elem: '#certifyDateB'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#nextFixDate'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#GPSInstallDate'
+        ,lang:"en"
+    });
+    laydate.render({
+        elem: '#registerDate'
+        ,lang:"en"
+    });
+</script>
+<script type="application/javascript">
+    $(function() {
+        var companyType = $("input[name='companyType']:checked").val();
+        if (1 == companyType){
+            $(".companyDiv").hide();
+        } else if (2 == companyType){
+            $(".companyDiv").show();
+        }
+
+        TCarInfoDlg.zcServerClick();
+        TCarInfoDlg.kcServerClick();
+
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html
index d2cf885..248a0c5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html
@@ -42,22 +42,19 @@
                         </#SelectCon>
                     </div>
                     <div class="col-sm-3">
-                        <#button name="搜索" icon="fa-search" clickFun="TCar.search()"/>
-                        <#button name="重置" icon="fa-trash" clickFun="TCar.resetSearch()" space="true"/>
-                    </div>
-                    <div class="col-sm-3">
-                        <input type="file" name="file" style="width:0px;height:0px;" id="uploadEventFile" onchange="TCar.exportCar()">
+                        <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
+                        <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
                     </div>
                 </div>
-                <div class="hidden-xs" id="TCarTableToolbar" role="group">
-                    <#button name="添加" icon="fa-plus" clickFun="TCar.openAddTCar()"/>
-                    <#button name="编辑" icon="fa-edit" clickFun="TCar.openTCarDetail()" space="true"/>
-                    <#button name="取消" icon="fa-remove" clickFun="TCar.delete()" space="true"/>
-                    <#button name="查看详情" icon="fa-remove" clickFun="TCar.delete()" space="true"/>
-                    <#button name="已报名人员" icon="fa-remove" clickFun="TCar.delete()" space="true"/>
+                <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+                    <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition()"/>
+                    <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/>
+                    <#button name="取消" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
+                    <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
+                    <#button name="已报名人员" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/>
 
                 </div>
-                <#table id="TCarTable"/>
+                <#table id="TCompetitionTable"/>
             </div>
         </div>
     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
index 9f9e6a9..05014a6 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html
@@ -1,110 +1,113 @@
 @layout("/common/_container.html"){
 <div class="ibox float-e-margins">
     <div class="ibox-content">
-        <div class="form-horizontal" id="carInfoForm">
-            <input type="hidden" id="roleType" name="roleType" value="${roleType}">
-            <input hidden id="language" value="${language}">
-            @if(language==1){
-            <div class="row">
-                <div class="col-sm-11">
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">所属机构:</label>
-                        <div class="col-sm-9"  style="display: flex;align-items: center;">
-                            @if(roleType == 1){
-                            <div class="radio radio-info radio-inline">
-                                <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)">
-                                <label for="companyType1"> 平台车辆 </label>
-                            </div>
-                            <div class="radio radio-success radio-inline">
-                                <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)">
-                                <label for="companyTyp2"> 加盟车辆 </label>
-                            </div>
-                            <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;">
-                                <option value="">选择所属分公司</option>
-                                @for(obj in companyList!){
-                                <option value="${obj.id}">${obj.name}</option>
-                                @}
-                            </select>
-                            <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;display: none;">
-                                <option value="">选择所属加盟商</option>
-                            </select>
-                            @}else if(roleType == 2){
-                            <span class="control-label">${objectName!}</span>
-                            <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
-                                <option value="">选择所属加盟商</option>
-                                @for(obj in franchiseeList!){
-                                <option value="${obj.id}">${obj.name}</option>
-                                @}
-                            </select>
-                            @}else if(roleType == 3){
-                            <span class="control-label">${objectName!}</span>
-                            @}
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <fieldset>
-                            <label class="col-sm-3 control-label">服务模式:</label>
-                            <div class="col-sm-9">
-                                <div class="checkbox checkbox-success  checkbox-inline">
-                                    <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()">
-                                    <label for="serverBox1"> 摩托车 </label>
-                                </div>
-                                <div class="checkbox checkbox-success  checkbox-inline">
-                                    <input type="checkbox" name="serverBox" id="serverBox4" value="4">
-                                    <label for="serverBox4"> 同城快送 </label>
-                                </div>
-                            </div>
-                        </fieldset>
-                    </div>
-                    <div class="form-group" style="display: none;" id="zcModelDiv">
-                        <label class="col-sm-3 control-label">摩托车车型:</label>
-                        <div class="col-sm-9">
-                            <select class="form-control" id="zcModel" name="zcModel">
-                                <option value="">选择车型</option>
-                                @for(obj in zcModelList){
-                                <option value="${obj.id}">${obj.name}</option>
-                                @}
-                            </select>
-                        </div>
-                    </div>
-                    <div class="form-group" style="display: none;" id="kcModelDiv">
-                        <label class="col-sm-3 control-label">同城快送车型:</label>
-                        <div class="col-sm-9">
-                            <select class="form-control" id="kcModel" name="kcModel">
-                                <option value="">选择车型</option>
-                                @for(obj in kcModelList){
-                                <option value="${obj.id}">${obj.name}</option>
-                                @}
-                            </select>
-                        </div>
-                    </div>
 
-                    <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)">
-                    <option value="">选择车辆品牌</option>
-                    @for(obj in brandList){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </#select>
-                <#select id="carModelId" name="车辆类型:">
-                <option value="">选择车辆类型</option>
-            </#select>
-            <#select id="carColor" name="车辆颜色:">
-            <option value="">选择车辆颜色</option>
-            <option value="1">黑色</option>
-            <option value="2">银色</option>
-            <option value="3">白色</option>
-            <option value="4">红色</option>
-            <option value="5">黄色</option>
-            <option value="6">橙色</option>
-            <option value="7">蓝色</option>
-        </#select>
-        <#input id="carLicensePlate" name="车牌号" />
-        <#avatar id="carPhoto" name="车辆照片:" />
-        <#input id="drivingLicenseNumber" name="行驶证编号" />
-        <#avatar id="drivingLicensePhoto" name="行驶证照片:" />
-        <#input id="annualInspectionTime" name="年检到期时间" type="text"/>
-        <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text"/>
-    </div>
+
+        <div class="form-horizontal" id="carInfoForm">
+
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">举办省:</label>
+                <div class="col-sm-9">
+                    <select class="form-control" id="pCode" name="pCode">
+                        <option value="">选择省</option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">举办市:</label>
+                <div class="col-sm-9">
+                    <select class="form-control" id="cCode" name="cCode">
+                        <option value="">选择市</option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group" id="shop">
+                <label class="col-sm-3 control-label">举办门店:</label>
+                <div class="col-sm-9">
+                    <select class="form-control" id="shopId" name="shopId">
+                        <option value="">选择门店</option>
+                    </select>
+                </div>
+            </div>
+        <#input id="name" name="赛事名称" type="text"/>
+        <#input id="startTime" name="开始时间" type="text"/>
+        <#input id="endTime" name="结束时间" type="text"/>
+        <#input id="registerEndTime" name="截止报名时间" type="text"/>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">报名条件:</label>
+                <div class="col-sm-9">
+                    <input type="radio" name="registerCondition" value="1" checked> 全部用户
+                    <input type="radio" name="registerCondition" value="2">仅限年度会员参与
+                    <input type="radio" name="registerCondition" value="3">仅限学员参与
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">报名年龄:</label>
+                <div class="col-sm-9" style="display: flex">
+                    <input class="form-control"  style="width: 100px;"  type="text" id="startAge"> ~ <input class="form-control"  style="width: 100px;" type="text" id="endAge">
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">支付方式:</label>
+                <div class="col-sm-9">
+                    <input type="checkbox"> 现金支付
+                    <input type="checkbox"> 玩湃币支付
+                    <input type="checkbox"> 课时支付
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">现金支付:</label>
+                <div class="col-sm-9">
+                    <input class="form-control"  style="width: 200px;"  type="text" id="cashPrice">
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">玩湃币支付:</label>
+                <div class="col-sm-9">
+                    <input class="form-control"  style="width: 200px;" type="text" id="playPaiCoin">
+                </div>
+            </div>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">课时支付:</label>
+                <div class="col-sm-9">
+                    <input class="form-control"  style="width: 200px;" type="text" id="classPrice">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">参加地点:</label>
+                <div class="col-sm-9">
+                    <input class="form-control"  style="width: 500px;" type="text" id="address">
+                </div>
+            </div>
+
+            <#input id="applicantsNumber" name="报名人数" type="text"/>
+            <#input id="baseNumber" name="基础报名人数" type="text"/>
+
+            <div class="form-group">
+                <label class="col-sm-3 control-label">是否实名:</label>
+                <div class="col-sm-9">
+                    <input type="radio" name="realName" value="1" checked> 是
+                    <input type="radio" name="realName" value="0"> 否
+                </div>
+            </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">赛事简介:</label>
+                    <div class="col-sm-9">
+                        <textarea  id="introduction"></textarea>
+                    </div>
+                </div>
+
+                <#avatar id="coverDrawing" name="赛事封面(推荐像素:210*280px):" />
+                <#avatar id="imgs" name="赛事图片(推荐像素:780*440px):" />
+                <#avatar id="registrationNotes" name="报名须知(推荐像素:宽780px):" />
+
+        </div>
 </div>
 
 <div class="row btn-group-m-t">
@@ -113,233 +116,12 @@
         <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
     </div>
 </div>
-            @}
-            @if(language==2){
-<div class="row">
-    <div class="col-sm-11">
-        <div class="form-group">
-            <label class="col-sm-3 control-label">Affiliated organization:</label>
-            <div class="col-sm-9"  style="display: flex;align-items: center;">
-                @if(roleType == 1){
-                <div class="radio radio-info radio-inline">
-                    <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)">
-                    <label for="companyType1"> Platform vehicle </label>
-                </div>
-                <div class="radio radio-success radio-inline">
-                    <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)">
-                    <label for="companyTyp2"> Franchised vehicles </label>
-                </div>
-                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;">
-                    <option value="">Select Branch</option>
-                    @for(obj in companyList!){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;display: none;">
-                    <option value="">Select the franchisee</option>
-                </select>
-                @}else if(roleType == 2){
-                <span class="control-label">${objectName!}</span>
-                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
-                    <option value="">Select the franchisee</option>
-                    @for(obj in franchiseeList!){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-                @}else if(roleType == 3){
-                <span class="control-label">${objectName!}</span>
-                @}
-            </div>
-        </div>
-        <div class="form-group">
-            <fieldset>
-                <label class="col-sm-3 control-label">Service mode:</label>
-                <div class="col-sm-9">
-                    <div class="checkbox checkbox-success  checkbox-inline">
-                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()">
-                        <label for="serverBox1"> motorcycle </label>
-                    </div>
-                    <div class="checkbox checkbox-success  checkbox-inline">
-                        <input type="checkbox" name="serverBox" id="serverBox4" value="4">
-                        <label for="serverBox4"> Intra-city express delivery </label>
-                    </div>
-                </div>
-            </fieldset>
-        </div>
-        <div class="form-group" style="display: none;" id="zcModelDiv">
-            <label class="col-sm-3 control-label">Motorcycle model:</label>
-            <div class="col-sm-9">
-                <select class="form-control" id="zcModel" name="zcModel">
-                    <option value="">Select vehicle type</option>
-                    @for(obj in zcModelList){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-            </div>
-        </div>
-        <div class="form-group" style="display: none;" id="kcModelDiv">
-            <label class="col-sm-3 control-label">Local express delivery model:</label>
-            <div class="col-sm-9">
-                <select class="form-control" id="kcModel" name="kcModel">
-                    <option value="">Select vehicle type</option>
-                    @for(obj in kcModelList){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-            </div>
-        </div>
-
-        <#select id="carBrandId" name="Vehicle brand:" onchange="TCarInfoDlg.brandChange(this)">
-        <option value="">Select vehicle brand</option>
-        @for(obj in brandList){
-        <option value="${obj.id}">${obj.name}</option>
-        @}
-    </#select>
-    <#select id="carModelId" name="Vehicle type:">
-    <option value="">Vehicle type</option>
-</#select>
-<#select id="carColor" name="Vehicle color:">
-<option value="">Select vehicle color</option>
-<option value="1">black</option>
-<option value="2">silvery</option>
-<option value="3">white</option>
-<option value="4">red</option>
-<option value="5">yellow</option>
-<option value="6">orange</option>
-<option value="7">blue</option>
-</#select>
-<#input id="carLicensePlate" name="License plate number" />
-<#avatar id="carPhoto" name="Vehicle photos:" />
-<#input id="drivingLicenseNumber" name="Driving license number" />
-<#avatar id="drivingLicensePhoto" name="Photo of driving license:" />
-<#input id="annualInspectionTime" name="Annual inspection expiration time" type="text"/>
-<#input id="commercialInsuranceTime" name="Expiration time of commercial insurance" type="text"/>
-</div>
-</div>
-
-<div class="row btn-group-m-t">
-    <div class="col-sm-10 col-sm-offset-5">
-        <#button btnCss="info" name="Submit" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
-        <#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-    </div>
-</div>
-            @}
-            @if(language==3){
-<div class="row">
-    <div class="col-sm-11">
-        <div class="form-group">
-            <label class="col-sm-3 control-label">Organisasi Afiliasi:</label>
-            <div class="col-sm-9"  style="display: flex;align-items: center;">
-                @if(roleType == 1){
-                <div class="radio radio-info radio-inline">
-                    <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)">
-                    <label for="companyType1"> Kendaraan platform </label>
-                </div>
-                <div class="radio radio-success radio-inline">
-                    <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)">
-                    <label for="companyTyp2"> Kendaraan waralaba </label>
-                </div>
-                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;">
-                    <option value="">Pilih Branch</option>
-                    @for(obj in companyList!){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;display: none;">
-                    <option value="">Pilih pemilik franchise</option>
-                </select>
-                @}else if(roleType == 2){
-                <span class="control-label">${objectName!}</span>
-                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
-                    <option value="">Pilih pemilik franchise</option>
-                    @for(obj in franchiseeList!){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-                @}else if(roleType == 3){
-                <span class="control-label">${objectName!}</span>
-                @}
-            </div>
-        </div>
-        <div class="form-group">
-            <fieldset>
-                <label class="col-sm-3 control-label">Mode Layanan:</label>
-                <div class="col-sm-9">
-                    <div class="checkbox checkbox-success  checkbox-inline">
-                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()">
-                        <label for="serverBox1"> sepeda motor </label>
-                    </div>
-                    <div class="checkbox checkbox-success  checkbox-inline">
-                        <input type="checkbox" name="serverBox" id="serverBox4" value="4">
-                        <label for="serverBox4"> Pengiriman Ekspres Dalam Kota </label>
-                    </div>
-                </div>
-            </fieldset>
-        </div>
-        <div class="form-group" style="display: none;" id="zcModelDiv">
-            <label class="col-sm-3 control-label">Pengaturan model sepeda motor:</label>
-            <div class="col-sm-9">
-                <select class="form-control" id="zcModel" name="zcModel">
-                    <option value="">Pilih Jenis Kendaraan</option>
-                    @for(obj in zcModelList){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-            </div>
-        </div>
-        <div class="form-group" style="display: none;" id="kcModelDiv">
-            <label class="col-sm-3 control-label">Model pengiriman ekspres lokal:</label>
-            <div class="col-sm-9">
-                <select class="form-control" id="kcModel" name="kcModel">
-                    <option value="">Pilih Jenis Kendaraan</option>
-                    @for(obj in kcModelList){
-                    <option value="${obj.id}">${obj.name}</option>
-                    @}
-                </select>
-            </div>
-        </div>
-
-        <#select id="carBrandId" name="Merek kendaraan:" onchange="TCarInfoDlg.brandChange(this)">
-        <option value="">Pilih Merek Kendaraan</option>
-        @for(obj in brandList){
-        <option value="${obj.id}">${obj.name}</option>
-        @}
-    </#select>
-    <#select id="carModelId" name="Jenis Kendaraan:">
-    <option value="">Pilih Jenis Kendaraan</option>
-</#select>
-<#select id="carColor" name="Warna kendaraan:">
-    <option value="">Pilih Warna Kendaraan</option>
-    <option value="1">hitam</option>
-    <option value="2">perak</option>
-    <option value="3">putih</option>
-    <option value="4">merah</option>
-    <option value="5">kuning</option>
-    <option value="6">oranye</option>
-    <option value="7">biru</option>
-</#select>
-<#input id="carLicensePlate" name="车牌号" />
-<#avatar id="carPhoto" name="Nomor SIM Mengemudi:" />
-<#input id="drivingLicenseNumber" name="Nomor SIM Mengemudi" />
-<#avatar id="drivingLicensePhoto" name="Foto SIM:" />
-<#input id="annualInspectionTime" name="Waktu Kedaluwarsa Inspeksi Tahunan" type="text"/>
-<#input id="commercialInsuranceTime" name="Waktu kedaluwarsa asuransi komersial" type="text"/>
-</div>
-</div>
-
-<div class="row btn-group-m-t">
-    <div class="col-sm-10 col-sm-offset-5">
-        <#button btnCss="info" name="Kirim" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
-        <#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-    </div>
-</div>
-            @}
 
         </div>
 
     </div>
 </div>
-<script src="${ctxPath}/modular/system/tCar/tCar_info.js"></script>
+<script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script>
 <script>
     laydate.render({
         elem: '#annualInspectionTime'
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js
index 12291b0..2226725 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js
@@ -1,8 +1,8 @@
 /**
  * 车辆管理管理初始化
  */
-var TCar = {
-    id: "TCarTable",	//表格id
+var TCompetition = {
+    id: "TCompetitionTable",	//表格id
     seItem: null,		//选中的条目
     table: null,
     layerIndex: -1
@@ -11,23 +11,26 @@
 /**
  * 初始化表格的列
  */
-TCar.initColumn = function () {
+TCompetition.initColumn = function () {
     return [
         {field: 'selectItem', radio: true},
-        {title: '所在省', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title: '所在省', field: 'province', visible: true, align: 'center', valign: 'middle',width:'8%',
         },
-        {title: '所在市', field: 'id', visible: true, align: 'center', valign: 'middle'},
-        {title: '举办门店', field: 'companyName', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title: '所在市', field: 'city', visible: true, align: 'center', valign: 'middle'},
+        {title: '举办门店', field: 'storeName', visible: true, align: 'center', valign: 'middle',width:'8%',
         },
-        {title:  '赛事名称', field: 'brandName', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title:  '赛事名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'8%',
         },
-        {title: '开始时间', field: 'modelName', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',width:'8%',
         },
-        {title: '结束时间', field: 'carColor', visible: true, align: 'center', valign: 'middle',width:'5%',
+        {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',width:'5%',
         },
-        {title: '最大人数-已报名人数', field: 'serverStr', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title: '最大人数-已报名人数', field: 'applicantsNumber', visible: true, align: 'center', valign: 'middle',width:'8%',
         },
-        {title: '报名条件', field: 'carLicensePlate', visible: true, align: 'center', valign: 'middle',width:'8%',
+        {title: '报名条件', field: 'registerCondition', visible: true, align: 'center', valign: 'middle',width:'8%',
+            formatter:function (data) {
+                return {1:"全部用户",2:"仅限年度会员参与",3:"仅限学员参与"}[data]
+            }
         },
     ];
 };
@@ -67,13 +70,13 @@
 /**
  * 检查是否选中
  */
-TCar.check = function () {
+TCompetition.check = function () {
     var selected = $('#' + this.id).bootstrapTable('getSelections');
     if(selected.length == 0){
             Feng.info("请先选中表格中的某一记录!");
         return false;
     }else{
-        TCar.seItem = selected[0];
+        TCompetition.seItem = selected[0];
         return true;
     }
 };
@@ -81,14 +84,14 @@
 /**
  * 点击添加车辆管理
  */
-TCar.openAddTCar = function () {
+TCompetition.openAddTCompetition = function () {
     var index = layer.open({
         type: 2,
         title: '添加',
         area: ['100%', '100%'], //宽高
         fix: false, //不固定
         maxmin: true,
-        content: Feng.ctxPath + '/tCar/tCar_add'
+        content: Feng.ctxPath + '/tCompetition/tCompetition_add'
     });
     this.layerIndex = index;
 };
@@ -96,7 +99,7 @@
 /**
  * 打开查看车辆管理详情
  */
-TCar.openTCarDetail = function () {
+TCompetition.openTCompetitionDetail = function () {
     if (this.check()) {
         var index = layer.open({
             type: 2,
@@ -104,7 +107,7 @@
             area: ['100%', '100%'], //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/tCar/tCar_update/' + TCar.seItem.id
+            content: Feng.ctxPath + '/TCompetition/TCompetition_update/' + TCompetition.seItem.id
         });
         this.layerIndex = index;
     }
@@ -113,9 +116,9 @@
 /**
  * 删除车辆管理
  */
-TCar.delete = function () {
+TCompetition.delete = function () {
     if (this.check()) {
-        var nickname = TCar.seItem.carLicensePlate;
+        var nickname = TCompetition.seItem.carLicensePlate;
         if (nickname == "" || nickname == null || nickname == undefined){
                 nickname = "该车辆";
         }else{
@@ -130,7 +133,7 @@
             confirmButtonText: language==1?"删除":(language==2?'Delete':'Hapus'),
             closeOnConfirm: true
         }, function () {
-            var ajax = new $ax(Feng.ctxPath + "/tCar/delete", function (data) {
+            var ajax = new $ax(Feng.ctxPath + "/TCompetition/delete", function (data) {
                   if(language==1){
                     swal("删除成功", "您已经成功删除了" + nickname + "。", "success");
                 }else if(language==2){
@@ -138,7 +141,7 @@
                 }else {
                     swal("Hapus berhasil!", "Anda berhasil menghapus" + nickname + "。", "success");
                 }
-                TCar.table.refresh();
+                TCompetition.table.refresh();
             }, function (data) {
                 if(language==1){
                     swal("删除失败", data.responseJSON.message + "!", "warning");
@@ -149,14 +152,14 @@
                 }
 
             });
-            ajax.set("tCarId",TCar.seItem.id);
+            ajax.set("TCompetitionId",TCompetition.seItem.id);
             ajax.start();
         });
     }
 };
 
 
-TCar.carInsurance = function () {
+TCompetition.carInsurance = function () {
     if (this.check()) {
         var index = layer.open({
             type: 2,
@@ -164,7 +167,7 @@
             area: ['100%', '100%'], //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/tCar/carInsurance?carId=' + TCar.seItem.id
+            content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id
         });
         this.layerIndex = index;
     }
@@ -175,47 +178,27 @@
 /**
  * 查询车辆管理列表
  */
-TCar.search = function () {
+TCompetition.search = function () {
     var queryData = {};
-    queryData['createTime'] = $("#createTime").val();
-    queryData['id'] = $("#id").val();
-    queryData['brandName'] = $("#brandName").val();
-    queryData['modelName'] = $("#modelName").val();
-    queryData['carColor'] = $("#carColor").val();
-    queryData['serverStr'] = $("#serverStr").val();
-    queryData['carLicensePlate'] = $("#carLicensePlate").val();
-    queryData['driverName'] = $("#driverName").val();
-    queryData['companyName'] = $("#companyName").val();
-    queryData['franchiseeName'] = $("#franchiseeName").val();
-    TCar.table.refresh({query: queryData});
+    TCompetition.table.refresh({query: queryData});
 };
 
-TCar.resetSearch = function () {
-    $("#createTime").val("");
-    $("#id").val("");
-    $("#brandName").val("");
-    $("#modelName").val("");
-    $("#carColor").val("");
-    $("#serverStr").val("");
-    $("#carLicensePlate").val("");
-    $("#driverName").val("");
-    $("#companyName").val("");
-    $("#franchiseeName").val("");
-    TCar.search();
+TCompetition.resetSearch = function () {
+    TCompetition.search();
 };
 
 $(function () {
-    var defaultColunms = TCar.initColumn();
-    var table = new BSTable(TCar.id, "/tCompetition/list", defaultColunms);
+    var defaultColunms = TCompetition.initColumn();
+    var table = new BSTable(TCompetition.id, "/tCompetition/list", defaultColunms);
     table.setPaginationType("server");
-    TCar.table = table.init();
+    TCompetition.table = table.init();
 });
 
 /**
  * 下载模板
  */
-TCar.uploadCarModel = function () {
-    window.location.href = Feng.ctxPath + "/tCar/uploadCarModel";
+TCompetition.uploadCarModel = function () {
+    window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel";
 }
 
 var agreement = function(){
@@ -229,7 +212,7 @@
 /**
  * 导入合同
  */
-TCar.exportCar = function () {
+TCompetition.exporTCompetition = function () {
     var uploadEventFile = $("#uploadEventFile").val();
     if(uploadEventFile == ''){
         if(language==1){
@@ -248,7 +231,7 @@
             Feng.info("Hanya berkas Excel yang dapat diunggah");
         }
     }else{
-        var url = Feng.ctxPath + '/tCar/exportCar';
+        var url = Feng.ctxPath + '/TCompetition/exporTCompetition';
         var file = document.querySelector('input[name=file]').files[0];
         var reader = new FileReader();
         if (file) {
@@ -258,7 +241,7 @@
         }
     }
 }
-TCar.sendAjaxRequest = function(url,type,data){
+TCompetition.sendAjaxRequest = function(url,type,data){
     $.ajax({
         url : url,
         type : type,
@@ -275,7 +258,7 @@
                     Feng.success("Import berhasil!");
                 }
             }
-            TCar.table.refresh();
+            TCompetition.table.refresh();
         },
         error : function() {
             if(language==1){
@@ -301,9 +284,9 @@
 /**
  * 导出车辆操作
  */
-TCar.outCar = function () {
+TCompetition.ouTCompetition = function () {
     var operation = function() {
-        window.location.href = Feng.ctxPath + "/tCar/outCar";
+        window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition";
     };
     if(language==1){
         Feng.confirm("是否确认导出车辆信息?", operation);

--
Gitblit v1.7.1