From 29bd4d946349eacd38442c07ebf15b470af92e82 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期二, 10 十月 2023 14:26:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-management/src/main/webapp/WEB-INF/view/system/gameData/GameData.html                              |  141 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html                                     |   44 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html               |  109 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java                    |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java            |    6 
 cloud-server-management/src/main/resources/TOperatorUserMapper.xml                                              |   34 
 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js                                |  193 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html                              |  192 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html                                 |   41 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html                                  |   14 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorUser.java                       |   31 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java       |   65 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GameDataController.java       |  119 +
 .idea/workspace.xml                                                                                             |  121 +
 cloud-server-management/src/main/resources/mapper/TStoreMapper.xml                                              |   11 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportion.html           |  109 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html                      |    3 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js                    |   13 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CityGame.java                           |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html                |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportionAuth.html       |  125 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java       |   48 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html               |    2 
 cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java                                         |   22 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/Operator.html                              |    1 
 cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js                                     |   73 +
 cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js                              |  106 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html                                      |  189 ++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameDataOne.java                |   16 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java                      |    9 
 cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java                                   |    1 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html           |  125 +
 /dev/null                                                                                                       |  308 ----
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java   |   36 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html                                |  354 +++++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html                  |   23 
 cloud-server-other/src/main/resources/mapper/GameMapper.xml                                                     |   32 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java |    4 
 cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java                                    |    3 
 cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js                              |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html                             |   67 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java         |  375 +++++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html                                |  384 +++++
 cloud-server-management/src/main/webapp/static/modular/system/gameData/gameData.js                              |    6 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameOne.java                    |   16 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html                              |    9 
 cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js                      |   69 -
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html                                    |  206 +++
 48 files changed, 3,220 insertions(+), 644 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index aacdc06..f73921d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -25,13 +25,26 @@
     <select />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="10.8">
+    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="10.8。1">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/GameMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/GameMapper.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -79,43 +92,43 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
-    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
-    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
-    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
-    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
-    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
-    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
-    &quot;git-widget-placeholder&quot;: &quot;master&quot;,
-    &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;D:/Javaproject/PlayPay/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball&quot;,
-    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
-    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
-    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
-    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
-    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
-    &quot;project.structure.last.edited&quot;: &quot;模块&quot;,
-    &quot;project.structure.proportion&quot;: &quot;0.15&quot;,
-    &quot;project.structure.side.proportion&quot;: &quot;0.54367816&quot;,
-    &quot;service.view.auto.scroll.to.source&quot;: &quot;true&quot;,
-    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
-    &quot;spring.configuration.checksum&quot;: &quot;6e27eb92c8707375af194da5aa857bbc&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "DefaultHtmlFileTemplate": "HTML File",
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "git-widget-placeholder": "master",
+    "ignore.virus.scanning.warn.message": "true",
+    "last_opened_file_path": "D:/Javaproject/PlayPay/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "project.structure.last.edited": "模块",
+    "project.structure.proportion": "0.15",
+    "project.structure.side.proportion": "0.54367816",
+    "service.view.auto.scroll.to.source": "true",
+    "settings.editor.selected.configurable": "preferences.lookFeel",
+    "spring.configuration.checksum": "6e27eb92c8707375af194da5aa857bbc",
+    "vue.rearranger.settings.migration": "true"
   }
-}</component>
+}]]></component>
   <component name="ReactorSettings">
     <option name="notificationShown" value="true" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="D:\Javaproject\PlayPay\cloud-server-management\src\main\webapp\WEB-INF\view\system\ball" />
+      <recent name="D:\Javaproject\PlayPay\cloud-server-account\src\test\java\com\dsh" />
       <recent name="D:\Javaproject\PlayPay\cloud-server-management\src\main\webapp\static\modular\system\ball" />
       <recent name="D:\Javaproject\PlayPay\cloud-server-course\src\main\resources\mapper" />
       <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\ball" />
-      <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\ball" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tStudent" />
@@ -147,6 +160,30 @@
           <option name="ENABLED" value="true" />
         </pattern>
       </extension>
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration name="AccountApplicationTests.contextLoads" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
+      <module name="mb-cloud-account" />
+      <shortenClasspath name="MANIFEST" />
+      <extension name="coverage">
+        <pattern>
+          <option name="PATTERN" value="com.dsh.*" />
+          <option name="ENABLED" value="true" />
+        </pattern>
+      </extension>
+      <option name="PACKAGE_NAME" value="com.dsh" />
+      <option name="MAIN_CLASS_NAME" value="com.dsh.AccountApplicationTests" />
+      <option name="METHOD_NAME" value="contextLoads" />
+      <option name="TEST_OBJECT" value="method" />
+      <method v="2">
+        <option name="Make" enabled="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit">
+      <shortenClasspath name="MANIFEST" />
+      <option name="TEST_OBJECT" value="class" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -235,8 +272,9 @@
       </method>
     </configuration>
     <list>
-      <item itemvalue="Spring Boot.GatewayApplication" />
+      <item itemvalue="JUnit.AccountApplicationTests.contextLoads" />
       <item itemvalue="Spring Boot.ManagementApplication" />
+      <item itemvalue="Spring Boot.GatewayApplication" />
       <item itemvalue="Spring Boot.OtherApplication" />
       <item itemvalue="Spring Boot.UserApplication" />
       <item itemvalue="Spring Boot.AccountApplication" />
@@ -248,6 +286,7 @@
     </list>
     <recent_temporary>
       <list>
+        <item itemvalue="JUnit.AccountApplicationTests.contextLoads" />
         <item itemvalue="应用程序.BigDecimalToChineseWords" />
       </list>
     </recent_temporary>
@@ -307,7 +346,7 @@
       <workItem from="1696433675086" duration="2211000" />
       <workItem from="1696462020097" duration="481000" />
       <workItem from="1696465598653" duration="19850000" />
-      <workItem from="1696639362946" duration="45956000" />
+      <workItem from="1696639362946" duration="88523000" />
     </task>
     <task id="LOCAL-00001" summary="后台代码删除">
       <created>1690249807612</created>
@@ -608,7 +647,15 @@
       <option name="project" value="LOCAL" />
       <updated>1696749061197</updated>
     </task>
-    <option name="localTasksCounter" value="40" />
+    <task id="LOCAL-00040" summary="10.8。1">
+      <option name="closed" value="true" />
+      <created>1696753188954</created>
+      <option name="number" value="00040" />
+      <option name="presentableId" value="LOCAL-00040" />
+      <option name="project" value="LOCAL" />
+      <updated>1696753188954</updated>
+    </task>
+    <option name="localTasksCounter" value="41" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -650,7 +697,8 @@
     <MESSAGE value="9.26。14" />
     <MESSAGE value="9.26。15" />
     <MESSAGE value="10.8" />
-    <option name="LAST_COMMIT_MESSAGE" value="10.8" />
+    <MESSAGE value="10.8。1" />
+    <option name="LAST_COMMIT_MESSAGE" value="10.8。1" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -674,11 +722,6 @@
           <url>file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java</url>
           <line>1358</line>
           <option name="timeStamp" value="14" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionAuditController.java</url>
-          <line>139</line>
-          <option name="timeStamp" value="21" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
diff --git a/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java b/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java
new file mode 100644
index 0000000..455dcdd
--- /dev/null
+++ b/cloud-server-account/src/test/java/com/dsh/AccountApplicationTests.java
@@ -0,0 +1,22 @@
+package com.dsh;
+
+import com.dsh.account.controller.CoachTypeController;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = AccountApplication.class)
+class AccountApplicationTests {
+
+    @Autowired
+    private CoachTypeController controller;
+
+    @Test
+    void contextLoads() {
+      System.out.println("==============="+controller.list());
+    }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
index 0a958da..07185a1 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
@@ -7,6 +7,7 @@
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.model.TStoreListVo;
 import com.dsh.guns.modular.system.model.TTurn;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -69,4 +70,6 @@
     void inset(JsDto jsDto);
 
     JsDto get(Integer id);
+
+    List<SelectDto> getSelect();
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GameDataController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GameDataController.java
index 609b06e..51c79c4 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GameDataController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GameDataController.java
@@ -102,8 +102,60 @@
         }
         return new ArrayList<>();
     }
+
+    @RequestMapping("/listAll1")
+    @ResponseBody
+    public Object listAll1(String spaceId,String type,String date,String cityCode){
+        if(spaceId==null){
+            spaceId="";
+        }
+        if(type==null){
+            type="y";
+        }
+        if(date==null){
+            date="";
+        }
+        if(cityCode==null){
+            cityCode="";
+        }
+//        String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id=1001"+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode;
+        String apiUrl1 = "https://try.daowepark.com/v7/user_api/general/accuracyGameRanking?space_id="+spaceId+"&type="+type+"&date="+date+"&city_code="+cityCode;
+        URL url1 = null;
+        try {
+            url1 = new URL(apiUrl1);
+            HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection();
+            connection1.setRequestMethod("GET");
+            // 发送请求并获取响应
+            int responseCode1 = connection1.getResponseCode();
+            if (responseCode1 == HttpURLConnection.HTTP_OK) {
+                BufferedReader reader1 = new BufferedReader(new InputStreamReader(connection1.getInputStream()));
+                String line1;
+                StringBuilder response1 = new StringBuilder();
+                while ((line1 = reader1.readLine()) != null) {
+                    response1.append(line1);
+                }
+                reader1.close();
+                // 处理响应数据
+                String data1 = response1.toString();
+                // 使用Jackson库将JSON字符串转换为Java对象
+                ObjectMapper objectMapper1 = new ObjectMapper();
+                AccuracyGameOne res1 = objectMapper1.readValue(data1, AccuracyGameOne.class);
+                List<AccuracyGameDataOne> data2 = res1.getData();
+                return data2;
+            }
+        } catch (ProtocolException e) {
+            e.printStackTrace();
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return new ArrayList<>();
+    }
     /**
-     * 跳转到充值记录页面
+     * 跳转到智慧球场数据统计页面
      */
     @RequestMapping("")
     public String index(Model model) {
@@ -153,7 +205,7 @@
      */
     @RequestMapping("/list")
     @ResponseBody
-    public Object list(Integer storeId) {
+    public Object list(String storeId) {
         Map<String, Object> result = new HashMap<>();
         try {
             // 年度数据
@@ -162,7 +214,7 @@
             // 创建 POST 请求
             HttpPost httpPost = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData");
             // 设置请求体数据
-            String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id="+""+"&date_type=y";
+            String postData = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id="+storeId+"&date_type=y"+"&year=";
 
             StringEntity entity = new StringEntity(postData, ContentType.APPLICATION_FORM_URLENCODED);
             httpPost.setEntity(entity);
@@ -196,7 +248,7 @@
             // 创建 POST 请求
             HttpPost httpPost1 = new HttpPost("https://try.daowepark.com/v7/user_api/general/getBatterData");
             // 设置请求体数据
-            String postData1 = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001&date_type=m&year=2022";
+            String postData1 = "sign=0DB011836143EEE2C2E072967C9F4E4B&space_id=1001"+""+"&date_type=m"+"&year="+year;
             StringEntity entity1 = new StringEntity(postData1, ContentType.APPLICATION_FORM_URLENCODED);
             httpPost1.setEntity(entity1);
             // 执行请求
@@ -204,13 +256,12 @@
             // 处理响应
             HttpEntity responseEntity1 = response1.getEntity();
             if (responseEntity1 != null) {
-                String responseData = EntityUtils.toString(responseEntity1);
+                String responseData1 = EntityUtils.toString(responseEntity1);
                 ObjectMapper objectMapper = new ObjectMapper();
-                Batter batter = objectMapper.readValue(responseData, Batter.class);
+                Batter batter = objectMapper.readValue(responseData1, Batter.class);
                 result.put("totalNumber", batter.getData().getAll_batter_num());
                 result.put("totalTime", batter.getData().getAll_batter_time());
                 List<BatterData> dataList = batter.getData().getList();
-
                 // 月度数据
                 result.put("mDataList", dataList);
             }
@@ -351,7 +402,44 @@
         return result;
     }
     /**
-     * 获取跨城赛统计
+     * 获取90°准度赛全球总数
+     */
+    @RequestMapping("/cityGameOne")
+    @ResponseBody
+    public Object cityGameOne() {
+        Map<String, Object> result = new HashMap<>();
+        try {
+            String apiUrl = "https://try.daowepark.com/v7/user_api/general/getAccuracyGameCount?space_id=";
+            URL url = new URL(apiUrl);
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("GET");
+            // 发送请求并获取响应
+            int responseCode = connection.getResponseCode();
+            if (responseCode == HttpURLConnection.HTTP_OK) {
+                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+                String line;
+                StringBuilder response = new StringBuilder();
+                while ((line = reader.readLine()) != null) {
+                    response.append(line);
+                }
+                reader.close();
+                // 处理响应数据
+                String data = response.toString();
+                // 使用Jackson库将JSON字符串转换为Java对象
+                ObjectMapper objectMapper = new ObjectMapper();
+                CityGame res = objectMapper.readValue(data, CityGame.class);
+                result.put("totalNum", res.getData().getTotal_num());
+                    return result;
+                }
+            }
+         catch (IOException e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 获取跨城赛统计全球总数
      */
     @RequestMapping("/cityGame")
     @ResponseBody
@@ -377,18 +465,11 @@
                 // 使用Jackson库将JSON字符串转换为Java对象
                 ObjectMapper objectMapper = new ObjectMapper();
                 CityGame res = objectMapper.readValue(data, CityGame.class);
-                // 场地总入场人数
-                String totalNum = "";
-                for (CityGameData datum : res.getData()) {
-                    totalNum = datum.getTotal_num();
-                }
-                result.put("totalNum", totalNum);
-
-
-                    return result;
-                }
+                result.put("totalNum", res.getData().getTotal_num());
+                return result;
             }
-         catch (IOException e) {
+        }
+        catch (IOException e) {
             e.printStackTrace();
         }
         return result;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java
index bb2b034..222ec11 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java
@@ -53,8 +53,6 @@
     private SiteClient siteClient;
     private String PREFIX = "/system/gateData/";
 
-
-
     /**
      * 跳转到充值记录页面
      */
@@ -63,15 +61,13 @@
         return PREFIX + "GateData.html";
     }
     /**
-     * 获取教练类型列表
+     * 获取闸机数据列表
      */
     @RequestMapping("/list")
     @ResponseBody
     public Object list() {
-        List<Site> list = siteClient.getList();
         try {
-            for (Site site : list) {
-                String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=" + site.getId();
+                String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001";
                 URL url = new URL(apiUrl);
                 HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                 connection.setRequestMethod("GET");
@@ -106,6 +102,46 @@
                 } else {
                     System.out.println("请求失败: " + responseCode);
                 }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return new ArrayList<>();
+    }
+    /**
+     * 获取教练类型列表
+     */
+    @RequestMapping("/totalNum")
+    @ResponseBody
+    public Object totalNum() {
+        try {
+            String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001";
+            URL url = new URL(apiUrl);
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("GET");
+            // 发送请求并获取响应
+            int responseCode = connection.getResponseCode();
+            if (responseCode == HttpURLConnection.HTTP_OK) {
+                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+                String line;
+                StringBuilder response = new StringBuilder();
+                while ((line = reader.readLine()) != null) {
+                    response.append(line);
+                }
+                reader.close();
+                // 处理响应数据
+                String data = response.toString();
+                // 使用Jackson库将JSON字符串转换为Java对象
+                ObjectMapper objectMapper = new ObjectMapper();
+                GateDataResponse res = objectMapper.readValue(data, GateDataResponse.class);
+                // 访问Java对象中的数据
+                int code = res.getCode();
+                String message = res.getMessage();
+                // 场地总入场人数
+                int totalNum = res.getData().getTotal_num();
+                return totalNum;
+
+            } else {
+                System.out.println("请求失败: " + responseCode);
             }
         } catch (IOException e) {
             e.printStackTrace();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
index 3a2fd41..aa3447b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -20,12 +20,11 @@
 import com.dsh.guns.core.common.constant.factory.PageFactory;
 import com.dsh.guns.core.util.SinataUtil;
 import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.service.ICityService;
-import com.dsh.guns.modular.system.service.IUserService;
-import com.dsh.guns.modular.system.service.TOperatorCityService;
-import com.dsh.guns.modular.system.service.TOperatorService;
+import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.service.impl.TOperatorUserServiceImpl;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import io.swagger.models.auth.In;
+import org.apache.catalina.valves.RemoteIpValve;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -48,6 +47,8 @@
     private TOperatorService operatorService;
     @Autowired
     private TOperatorCityService operatorCityService;
+    @Autowired
+    private IOperatorUserService operatorUserService;
     @Autowired
     private IUserService userService;
     @Autowired
@@ -127,7 +128,59 @@
         page.setRecords(list);
         return super.packForBT(page);
     }
-
+    /**
+     * 跳转运营商商户去认证页面
+     */
+    @RequestMapping("/proportionAuth/{id}")
+    public String proportionAuth(Model model,@PathVariable("id") Integer id) {
+        model.addAttribute("operatorId",id);
+        return PREFIX + "OperatorUser_proportionAuth.html";
+    }
+    /**
+     * 商户认证提交
+     */
+    @RequestMapping(value = "/auth")
+    @ResponseBody
+    public Object auth(Integer alipayType,Integer wechatType,String alipayNum,String wechatNum,Integer operatorId ) {
+        TOperator id = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorId));
+        OperatorUser operatorUser = new OperatorUser();
+        operatorUser.setUserId(id.getUserId());
+        operatorUser.setAlipay("支付宝");
+        operatorUser.setWechat("微信");
+        operatorUser.setWechatType(wechatType);
+        operatorUser.setAlipayType(alipayType);
+        operatorUser.setAlipayNum(alipayNum);
+        operatorUser.setWechatNum(wechatNum);
+        operatorUser.setOperatorId(operatorId);
+        operatorUserService.save(operatorUser);
+        // 修改运营商状态为 已认证
+        id.setStatus(2);
+        operatorService.updateById(id);
+        return SUCCESS_TIP;
+    }
+    /**
+     * 分账比例提交
+     */
+    @RequestMapping(value = "/proportion")
+    @ResponseBody
+    public Object auth(String alipayProportion,String wechatProportion,Integer operatorIdOne ) {
+        OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("id", operatorIdOne));
+        id.setAlipayProportion(alipayProportion);
+        id.setWechatProportion(wechatProportion);
+        operatorUserService.updateById(id);
+        return SUCCESS_TIP;
+    }
+    /**
+     * 跳转运营商设置分账比例页面
+     */
+    @RequestMapping("/proportion/{id}")
+    public String proportion(Model model,@PathVariable("id") Integer id) {
+        OperatorUser o = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", id));
+        model.addAttribute("operatorIdOne",o.getId());
+        model.addAttribute("alipayProportion",o.getAlipayProportion());
+        model.addAttribute("wechatProportion",o.getWechatProportion());
+        return PREFIX + "OperatorUser_proportion.html";
+    }
     /**
      * 批量重置密码
      * @return
@@ -140,7 +193,7 @@
             List<Integer> userIds = list.stream()
                     .map(TOperator::getUserId)
                     .collect(Collectors.toList());
-            String a123456 = SecureUtil.md5("123456");
+            String a123456 = SecureUtil.md5("a123456");
             List<User> users = userService.list(new QueryWrapper<User>().in("id", userIds));
             for (User user : users) {
                 user.setPassword(a123456);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
index 982a40b..3b37641 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
@@ -62,22 +62,7 @@
     }
 
 
-    /**
-     * 跳转运营商商户去认证页面
-     */
-    @RequestMapping("/proportion/{id}")
-    public String update(Model model,@PathVariable("id") Integer id) {
-        List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("provinceList",provinceList);
-        List<Bank> bankList = operatorService.getBankList();
-        TStore store = storeService.getOne(new QueryWrapper<TStore>().eq("cityManagerId", id));
-        model.addAttribute("storeName",store.getName());
-        TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(store.getStoreStaffId());
-        model.addAttribute("storeStaff",storeByStoreStaffId.getName());
-        model.addAttribute("storePhone",storeByStoreStaffId.getPhone());
-        model.addAttribute("bankList",bankList);
-        return PREFIX + "OperatorUser_auth.html";
-    }
+
     /**
      * 获取运营商列表
      */
@@ -90,23 +75,4 @@
         return super.packForBT(page);
     }
 
-    /**
-     * 批量重置密码
-     * @return
-     */
-    @RequestMapping(value = "/addProportion")
-    @ResponseBody
-    public Object pwd(Integer id, BigDecimal alipay,BigDecimal wechat) {
-        List<OperatorUser> list = operatorUserService.list(new QueryWrapper<OperatorUser>().eq("operatorId", id));
-        for (OperatorUser operatorUser : list) {
-            if (operatorUser.getPlatform()==1){
-                operatorUser.setProportion(wechat);
-                operatorUserService.updateById(operatorUser);
-            }else {
-                operatorUser.setProportion(alipay);
-                operatorUserService.updateById(operatorUser);
-            }
-        }
-        return SUCCESS_TIP;
-    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
index 3c4532d..ae08367 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
@@ -830,8 +830,10 @@
 
             String jsonString = jsonArray.getString(i);
             String[] split = jsonString.split("-");
+            System.out.println("============"+split);
+            if (split.length>1){
             first.add(split[0]);
-            second.add(split[1]);
+            second.add(split[1]);}
 
         }
         String firstString = String.join(",",first);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
index 210b1ff..4efb025 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -22,10 +22,7 @@
 import com.dsh.guns.core.base.controller.BaseController;
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.model.dto.*;
-import com.dsh.guns.modular.system.service.ICityService;
-import com.dsh.guns.modular.system.service.ICoursePackageService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.service.ITSiteService;
+import com.dsh.guns.modular.system.service.*;
 import com.dsh.guns.modular.system.util.HttpRequestUtil;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import com.google.common.base.Ascii;
@@ -56,7 +53,9 @@
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 @Controller
@@ -106,6 +105,72 @@
         return PREFIX+"ball.html";
     }
 
+    //入园方式
+    @RequestMapping("/joinmethod/{id}")
+    public String joinmethod(Model model,@PathVariable("id") Integer id) {
+
+
+        model.addAttribute("id",id);
+
+        return PREFIX+"join.html";
+    }
+
+
+    @RequestMapping("/selectJoin")
+    @ResponseBody
+    public ResultUtil join(@RequestBody MethodDto method) {
+
+        System.out.println("============"+method);
+        SiteBooking siteBooking = new SiteBooking();
+        siteBooking.setStatus(2);
+        siteBooking.setId(method.getId());
+        siteBooking.setGoType(method.getMethod());
+        iSiteBookingService.updateById(siteBooking);
+
+        return new ResultUtil<>(0,0,"到店成功",null,null);
+    }
+
+
+
+    @RequestMapping(value = "/yunying")
+    @ResponseBody
+    public ResultUtil getUserSlect() {
+
+
+
+        List<SelectDto>  selectDtos =  storeService.getSelect();
+        Map<String,List<SelectDto>> map = new HashMap<>();
+        map.put("options",selectDtos);
+
+        System.out.println("=======selectDtos====="+selectDtos);
+        return new ResultUtil(0,0,"编辑成功",map,"");
+    }
+
+    //取消凭证页面
+    @RequestMapping("/tocancel/{id}")
+    public String tocancel(Model model,@PathVariable("id") Integer id) {
+
+        model.addAttribute("id",id);
+
+        return PREFIX+"cancel.html";
+    }
+
+
+    @RequestMapping("/cancel")
+    @ResponseBody
+    public ResultUtil cancel(Integer id,String voucher,String textarea) {
+
+        System.out.println("============"+id);
+        SiteBooking siteBooking = new SiteBooking();
+        siteBooking.setId(id);
+        siteBooking.setStatus(5);
+        siteBooking.setVoucher(voucher);
+        siteBooking.setRemark(textarea);
+        siteBooking.setCancelUserId(UserExt.getUser().getId());
+        iSiteBookingService.updateById(siteBooking);
+
+        return new ResultUtil<>(0,0,"到店成功",null,null);
+    }
 
     /**
      * 获取变更列表
@@ -123,7 +188,7 @@
 
     @RequestMapping("/save")
     @ResponseBody
-    public ResultUtil save(String red, String blue, String province, String city, Integer site, Integer store
+    public ResultUtil save(String operationId,String red, String blue, String province, String city, Integer site, Integer store
     , String kuacheng, BigDecimal kuachengCoin, BigDecimal kuachengCash,String kuachengImage,BigDecimal kuachengInt,Integer kuachengId
             , String shequ, BigDecimal shequCoin, BigDecimal shequCash,String shequImage,BigDecimal shequInt,Integer shequId
             , String shemen, BigDecimal shemenCoin, BigDecimal shemenCash,String shemenImage,BigDecimal shemenInt,Integer shemenId
@@ -148,6 +213,13 @@
         game.setCityCode(city);
         game.setSiteId(site);
         game.setStoreId(store);
+
+
+        if (!operationId.equals("平台")){
+        game.setOperationId(Integer.valueOf(operationId));}
+        else {
+            game.setOperationId(0);
+        }
         System.out.println("============"+game);
         Integer gameId = ballClient.save(game);
 
@@ -285,7 +357,7 @@
     @RequestMapping("/pre_add")
     public String add(Model model) {
 
-
+        model.addAttribute("is","${is}");
 
         return PREFIX+"ball_pre_add.html";
     }
@@ -301,6 +373,260 @@
 
         return PREFIX+"ball_pre_edit.html";
     }
+
+    @Autowired
+     private ISiteBookingService iSiteBookingService;
+
+    @RequestMapping("/yueyue_edit/{id}")
+    public String yueyue_edit(@PathVariable("id") Integer id,Model model) {
+
+        List<String> strings1 = new ArrayList<>();
+
+        SiteBooking book = iSiteBookingService.getById(id);
+        model.addAttribute("item", book);
+        if (book.getMoney()!=null){
+        model.addAttribute("money",book.getMoney().split(","));}
+        String[] split1 = book.getTimes().split(";");
+        model.addAttribute("date",split1[0].substring(0,10));
+
+        for (String s : split1) {
+
+            String convertedValue = s.substring(11);
+            strings1.add(convertedValue);
+        }
+
+        System.out.println("========strings1====="+strings1);
+
+//时间段
+        List<String> strings = new ArrayList<>();
+//        List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
+        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10)));
+        System.out.println("=======siteBookings======"+siteBookings);
+        for (SiteBooking siteBooking : siteBookings) {
+            String[] split = siteBooking.getTimes().split(";");
+            for (String s : split) {
+
+                String convertedValue = s.substring(11);
+                strings.add(convertedValue);
+            }
+
+        }
+        System.out.println("======strings======="+strings);
+
+
+        List<OrderDto> timeRanges = new ArrayList<>();
+
+
+        Site site =  siteClient.listById(book.getSiteId());
+        System.out.println("================"+site);
+        String appointmentStartTime = site.getAppointmentStartTime();
+        String appointmentEndTime = site.getAppointmentEndTime();
+        //生成用于比较日期是否超过的当前日期
+        LocalDate currentDate = LocalDate.now();
+        LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE);
+        boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
+        System.out.println("是否超过当前日期"+isAfterCurrentDate);
+        String currentTime = appointmentStartTime;
+        while (currentTime.compareTo(appointmentEndTime) < 0) {
+            String nextTime = getNextTime(currentTime);
+
+
+            String timeRange = currentTime + "-" + nextTime;
+            OrderDto orderDto = new OrderDto();
+            orderDto.setTime(timeRange);
+
+            LocalTime currentTime1 = LocalTime.now();
+            LocalTime targetTime = LocalTime.parse(currentTime);
+
+            boolean hasExceeded = currentTime1.isAfter(targetTime);
+            //是否超过当前时间
+            if (hasExceeded){
+                orderDto.setState(0);
+            }
+            //是否已经预定
+            if (strings.contains(timeRange)){
+                orderDto.setState(0);
+            }
+            //日期是否超过
+            if (isAfterCurrentDate){
+                orderDto.setState(0);
+            }
+            //是否是当前场地当前日期预定的
+            if (strings1.contains(timeRange)){
+                orderDto.setState(1);
+            }
+
+
+
+
+            timeRanges.add(orderDto);
+            currentTime = nextTime;
+        }
+        System.out.println("-------------"+timeRanges);
+            model.addAttribute("timeRanges",timeRanges);
+
+System.out.println("======timeRanges========"+timeRanges);
+
+
+
+
+
+
+        Integer objectType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+
+        String cityCode = null;
+        if(objectType == 2){//城市管理员
+            CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
+            cityCode = cityManager.getCityCode();
+        }
+        List<Map<String, Object>> list = storeService.queryProvince(cityCode);
+        model.addAttribute("province", list);
+        Object code = list.get(0).get("code");
+        List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode);
+        model.addAttribute("city", list1);
+        String code1 = list1.get(0).get("code").toString();
+        List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1));
+        model.addAttribute("store", list2);
+        TStore store = list2.get(0);
+        List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1));
+        model.addAttribute("site", list3);
+
+
+        return PREFIX+"yuyue_edit.html";
+    }
+
+
+
+
+@Autowired
+private IUserService userService;
+    @RequestMapping("/yueyue_info/{id}")
+    public String yueyue_info(@PathVariable("id") Integer id,Model model) {
+
+        List<String> strings1 = new ArrayList<>();
+
+        SiteBooking book = iSiteBookingService.getById(id);
+        model.addAttribute("item", book);
+        if (book.getMoney()!=null){
+            model.addAttribute("money",book.getMoney().split(","));}
+        String[] split1 = book.getTimes().split(";");
+        model.addAttribute("date",split1[0].substring(0,10));
+
+
+        User user = userService.getById(book.getCancelUserId());
+        if (user!=null) {
+            model.addAttribute("cancelUser", user.getName());
+        }
+
+
+        for (String s : split1) {
+
+            String convertedValue = s.substring(11);
+            strings1.add(convertedValue);
+        }
+
+        System.out.println("========strings1====="+strings1);
+
+//时间段
+        List<String> strings = new ArrayList<>();
+//        List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
+        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10)));
+        System.out.println("=======siteBookings======"+siteBookings);
+        for (SiteBooking siteBooking : siteBookings) {
+            String[] split = siteBooking.getTimes().split(";");
+            for (String s : split) {
+
+                String convertedValue = s.substring(11);
+                strings.add(convertedValue);
+            }
+
+        }
+        System.out.println("======strings======="+strings);
+
+
+        List<OrderDto> timeRanges = new ArrayList<>();
+
+
+        Site site =  siteClient.listById(book.getSiteId());
+        System.out.println("================"+site);
+        String appointmentStartTime = site.getAppointmentStartTime();
+        String appointmentEndTime = site.getAppointmentEndTime();
+        //生成用于比较日期是否超过的当前日期
+        LocalDate currentDate = LocalDate.now();
+        LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE);
+        boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
+        System.out.println("是否超过当前日期"+isAfterCurrentDate);
+        String currentTime = appointmentStartTime;
+        while (currentTime.compareTo(appointmentEndTime) < 0) {
+            String nextTime = getNextTime(currentTime);
+
+
+            String timeRange = currentTime + "-" + nextTime;
+            OrderDto orderDto = new OrderDto();
+            orderDto.setTime(timeRange);
+
+            LocalTime currentTime1 = LocalTime.now();
+            LocalTime targetTime = LocalTime.parse(currentTime);
+
+            boolean hasExceeded = currentTime1.isAfter(targetTime);
+            //是否超过当前时间
+            if (hasExceeded){
+                orderDto.setState(0);
+            }
+            //是否已经预定
+            if (strings.contains(timeRange)){
+                orderDto.setState(0);
+            }
+            //日期是否超过
+            if (isAfterCurrentDate){
+                orderDto.setState(0);
+            }
+            //是否是当前场地当前日期预定的
+            if (strings1.contains(timeRange)){
+                orderDto.setState(1);
+            }
+
+
+
+
+            timeRanges.add(orderDto);
+            currentTime = nextTime;
+        }
+        System.out.println("-------------"+timeRanges);
+        model.addAttribute("timeRanges",timeRanges);
+
+        System.out.println("======timeRanges========"+timeRanges);
+
+
+
+
+
+
+        Integer objectType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+
+        String cityCode = null;
+        if(objectType == 2){//城市管理员
+            CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
+            cityCode = cityManager.getCityCode();
+        }
+        List<Map<String, Object>> list = storeService.queryProvince(cityCode);
+        model.addAttribute("province", list);
+        Object code = list.get(0).get("code");
+        List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode);
+        model.addAttribute("city", list1);
+        String code1 = list1.get(0).get("code").toString();
+        List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1));
+        model.addAttribute("store", list2);
+        TStore store = list2.get(0);
+        List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1));
+        model.addAttribute("site", list3);
+
+
+        return PREFIX+"yuyue_info.html";
+    }
+
 
 
     @RequestMapping("/paike")
@@ -434,11 +760,13 @@
 
     @RequestMapping("/yuyuetimes/{id}")
     @ResponseBody
-    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id) {
-
+    public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date) {
+        System.out.println("=======date======"+date);
 
         List<String> strings = new ArrayList<>();
-        List<SiteBooking> siteBookings = siteClient.listBooks(id);
+
+//        List<SiteBooking> siteBookings = siteClient.listBooks(id);
+        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).like("times",date));
 System.out.println("=======siteBookings======"+siteBookings);
         for (SiteBooking siteBooking : siteBookings) {
             String[] split = siteBooking.getTimes().split(";");
@@ -503,6 +831,25 @@
         }
 
         return String.format("%02d:%02d", hour, minute);
+
+//        String[] parts = currentTime.split(":");
+//        int hour = Integer.parseInt(parts[0]);
+//        int minute = Integer.parseInt(parts[1]);
+//
+//        if (minute == 45) {
+//            hour++;
+//            minute = 0;
+//        } else if (minute == 0){
+//            minute = 15;
+//        }else if (minute == 15){
+//            minute = 30;
+//        }else if (minute == 30){
+//            minute = 45;
+//        }
+//
+//        return String.format("%02d:%02d", hour, minute);
+
+
     }
 
 
@@ -556,4 +903,14 @@
         return new ResultUtil<>(null,200,null,null,null);
     }
 
+    @RequestMapping("/orderedit")
+    @ResponseBody
+    public ResultUtil orderedit(SiteBooking siteBooking){
+            iSiteBookingService.updateById(siteBooking);
+
+        System.out.println("================="+siteBooking);
+
+        return new ResultUtil<>(null,200,null,null,null);
+    }
+
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameDataOne.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameDataOne.java
new file mode 100644
index 0000000..010b3d1
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameDataOne.java
@@ -0,0 +1,16 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+/**
+ * 获取游戏列表
+ */
+@Data
+public class AccuracyGameDataOne {
+   private int account_id;
+   private int score;
+   private int match_id;
+   private String name;
+   private String avatar;
+   private String rank;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameOne.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameOne.java
new file mode 100644
index 0000000..491a8f7
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/AccuracyGameOne.java
@@ -0,0 +1,16 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 获取游戏列表
+ */
+@Data
+public class AccuracyGameOne {
+    private int code;
+    private String message;
+    private List<AccuracyGameDataOne> data;
+    private String nextUrl;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CityGame.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CityGame.java
index 0c7fdbf..247ab20 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CityGame.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CityGame.java
@@ -11,6 +11,6 @@
 public class CityGame {
     private int code;
     private String message;
-    private List<CityGameData> data;
+    private CityGameData data;
     private String nextUrl;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorUser.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorUser.java
index 6ccfbc2..871d65d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorUser.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/OperatorUser.java
@@ -1,5 +1,8 @@
 package com.dsh.guns.modular.system.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;
 
@@ -8,16 +11,26 @@
 @TableName("t_operator_user")
 @Data
 public class OperatorUser {
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
-    private String province;
-    private Integer provinceCode;
-    private String city;
-    private Integer cityCode;
+    @TableField(value = "userId")
     private Integer userId;
-    private Integer platform;
-    private Integer type;
-    private BigDecimal proportion;
-    private Integer state;
-    private Integer status;
+    @TableField(value = "alipay")
+    private String alipay;
+    @TableField(value = "alipayProportion")
+    private String alipayProportion;
+    @TableField(value = "alipayNum")
+    private String alipayNum;
+    @TableField(value = "wechat")
+    private String wechat;
+    @TableField(value = "wechatProportion")
+    private String wechatProportion;
+    @TableField(value = "wechatNum")
+    private String wechatNum;
+    @TableField(value = "alipayType")
+    private Integer alipayType;
+    @TableField(value = "wechatType")
+    private Integer wechatType;
+    @TableField(value = "operatorId")
     private Integer operatorId;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java
new file mode 100644
index 0000000..6af7834
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/MethodDto.java
@@ -0,0 +1,9 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import lombok.Data;
+
+@Data
+public class MethodDto {
+    Integer id;
+    Integer method;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
index 55d1c2b..01baa7a 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.guns.modular.system.model.*;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
 import io.swagger.models.auth.In;
 import com.dsh.course.dto.JsDto;
 import com.dsh.guns.modular.system.model.Dict;
@@ -71,4 +72,6 @@
     void insert(JsDto jsDto);
 
     JsDto get(Integer id);
+
+    List<SelectDto> getSelect();
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
index 2ac311e..f66f1c7 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
@@ -8,6 +8,7 @@
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.model.TStoreListVo;
 import com.dsh.guns.modular.system.model.TTurn;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
 import com.dsh.guns.modular.system.service.IStoreService;
 import org.springframework.stereotype.Service;
 
@@ -104,6 +105,11 @@
     }
 
     @Override
+    public List<SelectDto> getSelect() {
+        return this.baseMapper.getSelect();
+    }
+
+    @Override
     public List<TImgConfig> getConfig() {
 
         return this.baseMapper.getConfig1();
diff --git a/cloud-server-management/src/main/resources/TOperatorUserMapper.xml b/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
index 340f060..224b958 100644
--- a/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
+++ b/cloud-server-management/src/main/resources/TOperatorUserMapper.xml
@@ -1,37 +1,5 @@
 <?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.course.mapper.TOperatorUserMapper">
-    <select id="listAll" resultType="java.util.Map">
-        select t1.id as id, t1.platform,t1.type,t1.proportion,CONCAT(t1.province,t1.city) as provinceAndCity
-        t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone from t_operatorUser t1
-        left join sys_user t2 on t1.userId = t2.id
-        where 1=1
-        <if test="province != null and province != ''">
-            and t1.provinceCode =  #{province}
-        </if>
-        <if test="city != null and city != ''">
-            and t1.cityCode =  #{city}
-        </if>
-        <if test="userName != null and userName != ''">
-            and t2.name like CONCAT('%',#{userName},'%')
-        </if>
-        <if test="phone != null and phone != ''">
-            and t2.phone like CONCAT('%',#{phone},'%')
-        </if>
-        <if test="platform != null and platform != ''">
-            and t1.platform =  #{platform}
-        </if>
-        <if test="type != null and type != ''">
-            and t1.type =  #{type}
-        </if>
-        <if test="proportion != null and proportion != ''">
-            and t1.proportion =  #{proportion}
-        </if>
-        <if test="state != null and state != ''">
-            and t1.state =  #{state}
-        </if>
-        <if test="status != null and status != ''">
-            and t1.status =  #{status}
-        </if>
-    </select>
+
 </mapper>
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index e247e9d..5877e09 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -127,4 +127,15 @@
     <select id="getConfig1" resultType="com.dsh.guns.modular.system.model.TImgConfig">
         select * from t_img_config
     </select>
+    <select id="getSelect" resultType="com.dsh.guns.modular.system.model.dto.SelectDto">
+
+
+        SELECT op.id , CONCAT(us.name,'-',us.`phone`) as value
+        FROM t_operator op
+            LEFT JOIN sys_user us on op.userId = us.id
+
+
+
+
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
index 8eef478..caf096a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
@@ -42,15 +42,24 @@
         {
           "type": "form",
           "id": "u:24af29be25d2",
-          "title": "111",
+          "title": "",
           "body": [
             {
-              "label": "所属运营商:",
+              "type": "tpl",
+              "id": "u:587781d5d181",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp*所属运营商:",
+              "inline": true,
+              "wrapperComponent": "",
+              "style": {
+                "marginLeft": "0"
+              }
+            },{
               "type": "select",
-              "name": "operator",
-              "id": "u:970f68a2c4ee",
-              "mode": "horizontal",
-              "size": "lg",
+              "label": "",
+              "name": "operationId",
+              "id": "u:c037c33c2c81",
+              "mode": "inline",
+              "size": "md",
               "multiple": false,
               "showInvalidMatch": false,
               "searchable": true,
@@ -58,12 +67,38 @@
               "horizontal": {
                 "leftFixed": "lg"
               },
-              "options": [
-                {
-                  "label": "等待沟通中",
-                  "value": "等待沟通中"
+              "disabledOn": "is!=0",
+              "required": true,
+              "source": {
+                "url": "/ball/yunying",
+                "method": "post",
+                "messages": {
                 }
-              ]
+              },
+              "labelField": "value",
+              "valueField": "id"
+            },{
+              "type": "checkbox",
+              "option": "平台",
+              "name": "is",
+              "id": "u:88f23ebcf4f7",
+              "onEvent": {
+                "change": {
+                  "weight": 0,
+                  "actions": [
+                    {
+                      "componentId": "u:c037c33c2c81",
+                      "args": {
+                        "value": "$event.data.value"
+                      },
+                      "actionType": "setValue"
+                    }
+                  ]
+                }
+              },
+              "trueValue": "平台",
+              "falseValue": 0,
+              "mode": "inline"
             },
             {
               "type": "select",
@@ -214,6 +249,7 @@
               },
               "value": "",
               "required": true
+
             },
             {
               "type": "input-text",
@@ -224,6 +260,7 @@
               "clearValueOnHidden": false,
               "hidden": false,
               "required": true
+
             },
             {
               "type": "button",
@@ -301,6 +338,16 @@
                           "mode": "inline",
                           "labelClassName": "text-dark m-b",
                           "value": "14"
+                        },
+                        {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
                         },
                         {
                           "type": "input-text",
@@ -385,6 +432,16 @@
                           "value": "16"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "input-text",
                           "label": "玩派币",
                           "name": "shequCoin",
@@ -466,6 +523,16 @@
                           "value": "13"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "input-text",
                           "label": "玩派币",
                           "name": "shemenCoin",
@@ -544,10 +611,20 @@
                           "value": "玩湃熊之力-速度"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "hidden",
                           "label": "",
                           "name": "suduId",
-                          "id": "u:f0f7e6028e17",
+                          "id": "u:ca5a1fd9c191",
                           "mode": "inline",
                           "labelClassName": "text-dark m-b",
                           "value": "15"
@@ -635,6 +712,16 @@
                           "value": "1"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "input-text",
                           "label": "玩派币",
                           "name": "fangkuaiCoin",
@@ -714,6 +801,16 @@
                           "mode": "inline",
                           "labelClassName": "text-dark m-b",
                           "value": "7"
+                        },
+                        {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
                         },
                         {
                           "type": "input-text",
@@ -803,6 +900,16 @@
                           "value": "8"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "input-text",
                           "label": "玩派币",
                           "name": "sqCoin",
@@ -883,6 +990,16 @@
                           "mode": "inline",
                           "labelClassName": "text-dark m-b",
                           "value": "10"
+                        },
+                        {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
                         },
                         {
                           "type": "input-text",
@@ -966,6 +1083,16 @@
                           "value": "11"
                         },
                         {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
+                        },
+                        {
                           "type": "input-text",
                           "label": "玩派币",
                           "name": "zs2Coin",
@@ -1036,7 +1163,7 @@
                         },
                         {
                           "type": "hidden",
-                          "label": "游戏名称",
+                          "label": "",
                           "name": "ly",
                           "id": "u:c4a543b6cda0",
                           "mode": "inline",
@@ -1045,12 +1172,22 @@
                         },
                         {
                           "type": "hidden",
-                          "label": "游戏id",
+                          "label": "",
                           "name": "lyId",
                           "id": "u:90d5f2fa406a",
                           "mode": "inline",
                           "labelClassName": "text-dark m-b",
                           "value": "5"
+                        },
+                        {
+                          "type": "tpl",
+                          "id": "u:587781d5d181",
+                          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                          "inline": true,
+                          "wrapperComponent": "",
+                          "style": {
+                            "marginLeft": "0"
+                          }
                         },
                         {
                           "type": "input-text",
@@ -1137,10 +1274,18 @@
                               "actions": [
                                 {
                                   "componentId": "u:24af29be25d2",
+                                  "actionType": "submit"
+                                },
+                                {
                                   "args": {
                                   },
-                                  "outputVar": "responseResult",
-                                  "actionType": "submit"
+                                  "script": "window.parent.TStudent.table.refresh();",
+                                  "actionType": "custom"
+                                },
+                                {
+                                  "args": {},
+                                  "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                                  "actionType": "custom"
                                 }
                               ]
                             }
@@ -1166,7 +1311,20 @@
             "dataType": "form-data"
           },
           "actions": [
-          ]
+          ],
+          "onEvent": {
+            "submitSucc": {
+              "weight": 0,
+              "actions": [
+                {
+                  "args": {
+                  },
+                  "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                  "actionType": "custom"
+                }
+              ]
+            }
+          }
         }
       ]
     };
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
index 6b53d15..f375f7f 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
@@ -45,12 +45,21 @@
           "title": "",
           "body": [
             {
-              "label": "所属运营商:",
+              "type": "tpl",
+              "id": "u:587781d5d181",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp*所属运营商:",
+              "inline": true,
+              "wrapperComponent": "",
+              "style": {
+                "marginLeft": "0"
+              }
+            },{
               "type": "select",
-              "name": "operator",
-              "id": "u:970f68a2c4ee",
-              "mode": "horizontal",
-              "size": "lg",
+              "label": "",
+              "name": "operationId",
+              "id": "u:c037c33c2c81",
+              "mode": "inline",
+              "size": "md",
               "multiple": false,
               "showInvalidMatch": false,
               "searchable": true,
@@ -58,12 +67,38 @@
               "horizontal": {
                 "leftFixed": "lg"
               },
-              "options": [
-                {
-                  "label": "等待沟通中",
-                  "value": "等待沟通中"
+              "disabledOn": "is!=0",
+              "required": true,
+              "source": {
+                "url": "/ball/yunying",
+                "method": "post",
+                "messages": {
                 }
-              ]
+              },
+              "labelField": "value",
+              "valueField": "id"
+            },{
+              "type": "checkbox",
+              "option": "平台",
+              "name": "is",
+              "id": "u:88f23ebcf4f7",
+              "onEvent": {
+                "change": {
+                  "weight": 0,
+                  "actions": [
+                    {
+                      "componentId": "u:c037c33c2c81",
+                      "args": {
+                        "value": "$event.data.value"
+                      },
+                      "actionType": "setValue"
+                    }
+                  ]
+                }
+              },
+              "trueValue": "平台",
+              "falseValue": 0,
+              "mode": "inline"
             },
             {
               "type": "select",
@@ -1245,10 +1280,18 @@
                               "actions": [
                                 {
                                   "componentId": "u:24af29be25d2",
+                                  "actionType": "submit"
+                                },
+                                {
                                   "args": {
                                   },
-                                  "outputVar": "responseResult",
-                                  "actionType": "submit"
+                                  "script": "window.parent.TStudent.table.refresh();",
+                                  "actionType": "custom"
+                                },
+                                {
+                                  "args": {},
+                                  "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                                  "actionType": "custom"
                                 }
                               ]
                             }
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html
new file mode 100644
index 0000000..624df13
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/cancel.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+  <meta charset="UTF-8" />
+  <title>amis demo</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta
+          name="viewport"
+          content="width=device-width, initial-scale=1, maximum-scale=1"
+  />
+  <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/sdk.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/helper.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/iconfont.css" />
+  <!-- 这是默认主题所需的,如果是其他主题则不需要 -->
+  <!-- 从 1.1.0 开始 sdk.css 将不支持 IE 11,如果要支持 IE11 请引用这个 css,并把前面那个删了 -->
+  <!-- <link rel="stylesheet" href="sdk-ie11.css" /> -->
+  <!-- 不过 amis 开发团队几乎没测试过 IE 11 下的效果,所以可能有细节功能用不了,如果发现请报 issue -->
+  <style>
+    html,
+    body,
+    .app-wrapper {
+      position: relative;
+      width: 100%;
+      height: 100%;
+      margin: 0;
+      padding: 0;
+    }
+  </style>
+</head>
+<body>
+<div id="root" class="app-wrapper"></div>
+<script src="${ctxPath}/sdk/sdk.js"></script>
+<script type="text/javascript">
+  (function () {
+    let amis = amisRequire('amis/embed');
+    // 通过替换下面这个配置来生成不同页面
+    let amisJSON ={
+      "type": "page",
+      "title": "",
+      "body": [
+        {
+          "type": "form",
+          "id": "u:6d72ddddf222",
+          "title": "",
+          "body": [
+            {
+              "type": "grid",
+              "columns": [
+              ],
+              "id": "u:313016b48f71"
+            },
+            {
+              "type": "flex",
+              "id": "u:e21645a48093",
+              "className": "p-1",
+              "items": [
+                {
+                  "type": "tpl",
+                  "id": "u:5130236fd5a1",
+                  "tpl": "入园方式",
+                  "inline": true,
+                  "wrapperComponent": "h2"
+                }
+              ],
+              "style": {
+                "position": "static",
+                "flexWrap": "nowrap"
+              },
+              "direction": "row",
+              "justify": "center",
+              "alignItems": "stretch",
+              "isFixedHeight": false,
+              "isFixedWidth": false
+            },
+            {
+              "type": "input-image",
+              "label": "上传凭证",
+              "name": "voucher",
+              "autoUpload": true,
+              "proxy": true,
+              "uploadType": "fileReceptor",
+              "imageClassName": "r w-full",
+              "receiver": {
+                "url": "/mgr/uploadImgAmis",
+                "method": "post"
+              },
+              "id": "u:15f57e1e7de6",
+              "accept": ".jpeg, .jpg, .png, .gif",
+              "multiple": false,
+              "hideUploadButton": false,
+              "fixedSize": false,
+              "required": true,
+              "mode": "horizontal"
+            },
+            {
+              "type": "textarea",
+              "label": "备注:",
+              "name": "textarea",
+              "id": "u:d98613414ea8",
+              "minRows": 3,
+              "maxRows": 20,
+              "mode": "horizontal",
+              "size": "md"
+            },
+            {
+              "type": "hidden",
+              "name": "id",
+              "id": "u:91f4afc2930e",
+              "value": `${id}`
+            },
+            {
+              "type": "flex",
+              "id": "u:8254704349a2",
+              "className": "p-1",
+              "items": [
+                {
+                  "type": "button",
+                  "id": "u:6c0b8f917bf7",
+                  "label": "关闭",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "args": {
+                          },
+                          "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                          "actionType": "custom"
+                        }
+                      ]
+                    }
+                  }
+                },
+                {
+                  "type": "button",
+                  "id": "u:6c0b8f917bf7",
+                  "label": "保存",
+                  "level": "info",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "componentId": "u:6d72ddddf222",
+                          "actionType": "submit"
+                        }
+                      ]
+                    }
+                  }
+                }
+              ],
+              "style": {
+                "position": "relative"
+              }
+            },
+            {
+              "type": "grid",
+              "columns": [
+              ],
+              "id": "u:ec43218540fa"
+            }
+          ],
+          "api": {
+            "url": "/ball/cancel",
+            "method": "post",
+            "messages": {
+            },
+            "dataType": "form-data"
+          },
+          "actions": [
+          ],
+          "onEvent": {
+            "submitSucc": {
+              "weight": 0,
+              "actions": [
+                {
+                  "args": {
+                  },
+                  "script": "window.parent.TStudent.table.refresh();",
+                  "actionType": "custom"
+                },
+                {
+                  "args": {
+                  },
+                  "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                  "actionType": "custom"
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "id": "u:b97e4e9b9f48",
+      "actions": [
+      ]
+    };
+
+    let amisScoped = amis.embed('#root', amisJSON);
+
+
+  })();
+
+
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html
new file mode 100644
index 0000000..1ff3eb8
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/join.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+  <meta charset="UTF-8" />
+  <title>amis demo</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta
+          name="viewport"
+          content="width=device-width, initial-scale=1, maximum-scale=1"
+  />
+  <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/sdk.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/helper.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/iconfont.css" />
+  <!-- 这是默认主题所需的,如果是其他主题则不需要 -->
+  <!-- 从 1.1.0 开始 sdk.css 将不支持 IE 11,如果要支持 IE11 请引用这个 css,并把前面那个删了 -->
+  <!-- <link rel="stylesheet" href="sdk-ie11.css" /> -->
+  <!-- 不过 amis 开发团队几乎没测试过 IE 11 下的效果,所以可能有细节功能用不了,如果发现请报 issue -->
+  <style>
+    html,
+    body,
+    .app-wrapper {
+      position: relative;
+      width: 100%;
+      height: 100%;
+      margin: 0;
+      padding: 0;
+    }
+  </style>
+</head>
+<body>
+<div id="root" class="app-wrapper"></div>
+<script src="${ctxPath}/sdk/sdk.js"></script>
+<script type="text/javascript">
+  (function () {
+    let amis = amisRequire('amis/embed');
+    // 通过替换下面这个配置来生成不同页面
+    let amisJSON ={
+      "type": "page",
+      "title": "",
+      "body": [
+        {
+          "type": "form",
+          "id": "u:6d72ddddf25c",
+          "title": "",
+          "body": [
+            {
+              "type": "grid",
+              "columns": [
+              ],
+              "id": "u:313016b48f71"
+            },
+            {
+              "type": "flex",
+              "id": "u:e21645a48093",
+              "className": "p-1",
+              "items": [
+                {
+                  "type": "tpl",
+                  "id": "u:5130236fd5a1",
+                  "tpl": "入园方式",
+                  "inline": true,
+                  "wrapperComponent": "h2"
+                }
+              ],
+              "style": {
+                "position": "static",
+                "flexWrap": "nowrap"
+              },
+              "direction": "row",
+              "justify": "center",
+              "alignItems": "stretch",
+              "isFixedHeight": false,
+              "isFixedWidth": false
+            },
+            {
+              "type": "hidden",
+              "name": "id",
+              "id": "u:91f4afc2930e",
+              "value": `${id}`
+            },
+            {
+              "type": "radios",
+              "id": "u:d98068b4f7d2",
+              "label": "请选择:",
+              "name": "method",
+              "options": [
+                {
+                  "label": "手环",
+                  "value": "1"
+                }
+              ],
+              "mode": "inline",
+              "required": true
+            },
+            {
+              "type": "flex",
+              "id": "u:8254704349a2",
+              "className": "p-1",
+              "items": [
+                {
+                  "type": "button",
+                  "id": "u:6c0b8f917bf7",
+                  "label": "关闭",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "args": {
+                          },
+                          "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                          "actionType": "custom"
+                        }
+                      ]
+                    }
+                  }
+                },
+                {
+                  "type": "button",
+                  "id": "u:6c0b8f917bf7",
+                  "label": "保存",
+                  "level": "info",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "componentId": "u:6d72ddddf25c",
+                          "actionType": "submit"
+                        }
+                      ]
+                    }
+                  }
+                }
+              ],
+              "style": {
+                "position": "relative"
+              }
+            },
+            {
+              "type": "grid",
+              "columns": [
+              ],
+              "id": "u:ec43218540fa"
+            }
+          ],
+          "api": {
+            "url": "/ball/selectJoin",
+            "method": "post",
+            "messages": {
+            }
+          },
+          "actions": [
+          ],
+          "onEvent": {
+            "submitSucc": {
+              "weight": 0,
+              "actions": [
+                {
+                  "args": {
+                  },
+                  "script": "window.parent.TStudent.table.refresh();",
+                  "actionType": "custom"
+                },
+                {
+                  "args": {
+                  },
+                  "script": "parent.layer.close(window.parent.TStudent.layerIndex);",
+                  "actionType": "custom"
+                }
+              ]
+            }
+          }
+        }
+      ],
+      "id": "u:b97e4e9b9f48",
+      "actions": [
+      ]
+    };
+
+    let amisScoped = amis.embed('#root', amisJSON);
+
+
+  })();
+
+
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html
index 0aafb2c..f4eef17 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue.html
@@ -55,6 +55,45 @@
                             </div>
 
                             <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+                                            支付方式
+                                        </button>
+                                    </div>
+                                    <select class="form-control" id="payMethod">
+                                        <option value="">全部</option>
+                                        <option value=1>微信</option>
+                                        <option value=2>支付宝</option>
+                                        <option value=3>玩湃币</option>
+                                        <option value=4>手动支付</option>
+                                    </select>
+                                </div>
+                            </div>
+
+                            <div class="col-sm-3">
+                                <div class="input-group">
+                                    <div class="input-group-btn open">
+                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+                                            支付方式
+                                        </button>
+                                    </div>
+                                    <select class="form-control" id="state">
+                                        <option value="">全部</option>
+
+                                        <option value="0">待支付</option>
+                                        <option value="1">待核销</option>
+                                        <option value="2">已到店</option>
+                                        <option value="3">已完成</option>
+                                        <option value="4">已过期</option>
+                                        <option value="5">已取消</option>
+                                    </select>
+                                </div>
+                            </div>
+
+
+
+                            <div class="col-sm-3">
                                 <#button name="搜索" icon="fa-search" clickFun="TStudent.search()"/>
                             </div>
                         </div>
@@ -62,7 +101,10 @@
                                 <#button name="添加" icon="fa-plus" clickFun="TStudent.openAddTStudent()"/>
 
                                 <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/>
-                            <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/>
+                            <#button name="确认到店" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/>
+                            <#button name="取消凭证" icon="fa-edit" clickFun="TStudent.openTStudentDetail4()" space="true"/>
+
+                            <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail5()" space="true"/>
 
                             @if(shiro.hasPermission("/tStudent/delete")){
                                 <#button name="删除" icon="fa-remove" clickFun="TStudent.delete()" space="true"/>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
index d64fa91..3ced3d4 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
@@ -52,7 +52,7 @@
                 <div class="form-group">
                     <label class="col-sm-3 control-label">*上课场地:</label>
                     <div class="col-sm-4">
-                        <select class="form-control" id="siteId" name="siteId"  onchange="CoursePackageInfo.addTime(this.value)">
+                        <select class="form-control" id="siteId" name="siteId"  >
                             <option >请选择场地</option>
 
 
@@ -76,7 +76,7 @@
                 <div class="form-group">
                     <label class="col-sm-3 control-label">预约时间:</label>
                     <div class="col-sm-4">
-                        <input class="form-control" id="time" name="time" type="text" >
+                        <input class="form-control" id="time" name="time" type="text" onchange="CoursePackageInfo.addTime()">
 
                     </div>
                 </div>
@@ -248,7 +248,42 @@
         elem: '#time'
         ,lang:"CN",
         min:0,
-        max:10
+        max:10,
+        format:'yyyy-MM-dd',
+        done:function (a) {
+            console.log("==========="+a)
+            var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    var content='';
+                    $.each(data, function(k, v) {
+                        var buttonClass = "layui-btn layui-btn-primary";
+                        var style = "";
+                        if (v.state === 0) {
+                            style = "background-color: red;";
+                        }
+                        var disabledAttribute = v.state === 0 ? "disabled" : "";
+                        content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+                    });
+                    $("#ttt2").empty().append(content);
+                }
+            })
+            ajax.set("date",$('#time').val());
+            ajax.start()
+
+            var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    let htmlStr = '';
+                    for (let i = 0; i < data.length; i++) {
+                        htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+                    }
+                    $("#half").empty().append(htmlStr);
+                }
+            })
+            ajax1.start()
+
+        }
     });
 
     laydate.render({
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html
new file mode 100644
index 0000000..6dd45c1
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_edit.html
@@ -0,0 +1,354 @@
+@layout("/common/_container.html"){
+<style>
+    .green-button {
+        background-color: green;
+    }
+</style>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <input type="hidden" id="id" value="${item.id}">
+        <div class="form-horizontal">
+            <div class="row">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所在省:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="provinceCode" name="provinceCode">
+                            @for(obj in province){
+                            <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所在市:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="cityCode" name="cityCode">
+                            @for(obj in city){
+                            <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所属门店:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="storeId" name="storeId">
+                            @for(obj in store){
+                            <option value="${obj.id}" ${obj.id == item.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*预约类型:</label>
+                    <div class="col-sm-4">
+                       <input type="radio" name="type" value="1"  checked="" onclick="updateType(1)"  > 全场
+                        <input type="radio" name="type" value="2" onclick="updateType(2)" > 半场
+                    </div>
+                </div>
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*上课场地:</label>
+                    <input type="hidden" id="selSiteId" value="${item.siteId}">
+
+                    <div class="col-sm-4">
+                        <select class="form-control" id="siteId" name="siteId"  onchange="CoursePackageInfo.addTime1()" >
+                            <option >请选择场地</option>
+
+                            @for(obj in site){
+                            <option value="${obj.id}"  data-custom-data="1" ${obj.id == item.siteId ? 'selected=selected' : ''} >${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+
+
+                <div class="form-group"  id="half1"  hidden="hidden">
+                    <label class="col-sm-3 control-label">*选择半场:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control"  name="half" id="half">
+
+                        </select>
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <input type="hidden" id="selDate" value="${date}">
+                    <label class="col-sm-3 control-label">预约时间:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="time" name="time" type="text"  value="${date}">
+
+                    </div>
+                </div>
+
+
+
+
+
+
+
+
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*预约时间段:</label>
+                    <div class="col-sm-5" id="ttt1">
+                        <div class="layui-btn-group" id="ttt2">
+
+
+                        </div>
+
+                        <div class="layui-btn-group" id="ttt3">
+
+                            @for(obj in timeRanges){
+                            <button  name="has" type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : obj.state == 1 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>
+<!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : "class = 'layui-btn layui-btn-primary' "} onclick="toggleColor(this)">${obj.time}</button>-->
+<!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>-->
+                            @}
+                        </div>
+
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">现金价格:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="cash" name="cash" type="text" value="${money[0]!}" >
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">玩派币价格:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="play" name="play" type="text" value="${money[1]!}" >
+
+                    </div>
+                </div>
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">预约人:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="booker" name="booker" type="text" value="${item.booker}" >
+
+                    </div>
+                </div>
+
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">联系电话:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="phone" name="phone" type="text" value="${item.phone}" >
+
+                    </div>
+                </div>
+<!--                <input type="text" id = "counpons">-->
+            </div>
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.addSubmit1()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="CoursePackageInfo.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/ball/yuyue_info.js"></script>
+<script type="text/javascript">
+    function updateType(o) {
+        if(o==1){
+
+            var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+            var count = elements.length;
+
+            console.log("Number of elements: " + count);
+
+            $("#half1").hide()
+            var radios = document.getElementsByName("type");
+            var selectedValue;
+
+            for (var i = 0; i < radios.length; i++) {
+                if (radios[i].checked) {
+                    selectedValue = radios[i].value;
+                    break;
+                }
+            }
+
+            var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+                console.log("===========3333====="+data)
+                if(data!=null){
+
+                    $("#cash").val(data[0] * count);
+                    $("#play").val(data[1] * count);
+
+                }
+            })
+            ajax3.start()
+        }else {
+            var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+            var count = elements.length;
+
+            console.log("Number of elements: " + count);
+
+            $("#half1").show()
+            var radios = document.getElementsByName("type");
+            var selectedValue;
+
+            for (var i = 0; i < radios.length; i++) {
+                if (radios[i].checked) {
+                    selectedValue = radios[i].value;
+                    break;
+                }
+            }
+
+            var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+                console.log("===========3333====="+data)
+                if(data!=null){
+
+                    $("#cash").val(data[0] * count);
+                    $("#play").val(data[1] * count);
+
+                }
+            })
+            ajax3.start()
+
+        }
+
+    }
+
+
+
+    function toggleColor(button) {
+        button.classList.toggle("green-button");
+
+        var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+        var count = elements.length;
+
+        console.log("Number of elements: " + count);
+
+
+        var radios = document.getElementsByName("type");
+        var selectedValue;
+
+        for (var i = 0; i < radios.length; i++) {
+            if (radios[i].checked) {
+                selectedValue = radios[i].value;
+                break;
+            }
+        }
+
+        var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+            console.log("===========3333====="+data)
+            if(data!=null){
+
+                $("#cash").val(data[0] * count);
+                $("#play").val(data[1] * count);
+
+            }
+        })
+        ajax3.start()
+
+
+    }
+
+    laydate.render({
+        elem: '#time'
+        ,lang:"CN",
+        min:0,
+        max:10,
+        format:'yyyy-MM-dd',
+        done:function (a) {
+        console.log("==============="+$('#time').val())
+        console.log("==============="+$('#selDate').val())
+        console.log("==============="+$('#siteId').val())
+        console.log("==============="+$('#selSiteId').val())
+
+            if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){
+                $("#ttt3").hide()
+                $("#ttt2").show()
+
+            }else {
+                $("#ttt3").show()
+                $("#ttt2").hide()
+
+            }
+
+            console.log("==========="+a)
+            var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    var content='';
+                    $.each(data, function(k, v) {
+                        var buttonClass = "layui-btn layui-btn-primary";
+                        var style = "";
+                        if (v.state === 0) {
+                            style = "background-color: red;";
+                        }
+                        var disabledAttribute = v.state === 0 ? "disabled" : "";
+                        content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+                    });
+                    $("#ttt2").empty().append(content);
+                }
+            })
+            ajax.start()
+
+            var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    let htmlStr = '';
+                    for (let i = 0; i < data.length; i++) {
+                        htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+                    }
+                    $("#half").empty().append(htmlStr);
+                }
+            })
+            ajax1.start()
+
+
+
+
+
+        }
+
+
+    });
+
+    laydate.render({
+        elem: '#holitime'
+        ,range: true //或 range: '~' 来自定义分割字符
+    });
+
+    var avatarUp = new $WebUpload("coverDrawing");
+    avatarUp.setUploadBarId("progressBar");
+    avatarUp.init();
+
+    var avatarUp1 = new $WebUpload("detailDrawing");
+    avatarUp1.setUploadBarId("progressBar");
+    avatarUp1.init();
+
+    var avatarUp1 = new $WebUpload("introduceDrawing");
+    avatarUp1.setUploadBarId("progressBar");
+    avatarUp1.init();
+    function addTime(){
+        var i =  $('#dayTime > div').length
+
+        let htmlStr ='           <div style="display:flex">\n' +
+            '                                <input class="form-control" id="classStartTime'+i+'" name="classStartTime" placeholder="请选择" style="width: 200px;">\n' +
+            '                                <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice1(this)"></i>\n' +
+            '                            </div>'
+        $('#dayTime').append(htmlStr);
+        console.log("========="+i)
+        laydate.render({
+            elem: '#classStartTime'+i,
+            type: 'time',
+            range: true
+        });
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
new file mode 100644
index 0000000..4ee4007
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
@@ -0,0 +1,384 @@
+@layout("/common/_container.html"){
+<style>
+    .green-button {
+        background-color: green;
+    }
+</style>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <input type="hidden" id="id" value="${item.id}">
+        <div class="form-horizontal">
+            <div class="row">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所在省:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="provinceCode" name="provinceCode" disabled>
+                            @for(obj in province){
+                            <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所在市:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="cityCode" name="cityCode" disabled>
+                            @for(obj in city){
+                            <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*所属门店:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control" id="storeId" name="storeId" disabled>
+                            @for(obj in store){
+                            <option value="${obj.id}" ${obj.id == item.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*预约类型:</label>
+                    <div class="col-sm-4">
+                        <input type="radio" name="type" value="1"  checked="" onclick="updateType(1)"   disabled> 全场
+                        <input type="radio" name="type" value="2" onclick="updateType(2)"  disabled> 半场
+                    </div>
+                </div>
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*上课场地:</label>
+                    <input type="hidden" id="selSiteId" value="${item.siteId}">
+
+                    <div class="col-sm-4">
+                        <select class="form-control" id="siteId" name="siteId"  onchange="CoursePackageInfo.addTime1()" disabled >
+                            <option >请选择场地</option>
+
+                            @for(obj in site){
+                            <option value="${obj.id}"  data-custom-data="1" ${obj.id == item.siteId ? 'selected=selected' : ''} >${obj.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+
+
+                <div class="form-group"  id="half1"  hidden="hidden">
+                    <label class="col-sm-3 control-label">*选择半场:</label>
+                    <div class="col-sm-4">
+                        <select class="form-control"  name="half" id="half" disabled>
+
+                        </select>
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <input type="hidden" id="selDate" value="${date}">
+                    <label class="col-sm-3 control-label">预约时间:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="time" name="time" type="text"  value="${date}" disabled>
+
+                    </div>
+                </div>
+
+
+
+
+
+
+
+
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">*预约时间段:</label>
+                    <div class="col-sm-5" id="ttt1" disabled="">
+                        <div class="layui-btn-group" id="ttt2">
+
+
+                        </div>
+
+                        <div class="layui-btn-group" id="ttt3">
+
+                            @for(obj in timeRanges){
+                            <button  disabled name="has" type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : obj.state == 1 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>
+                            <!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary' disabled style='background-color: red'" : "class = 'layui-btn layui-btn-primary' "} onclick="toggleColor(this)">${obj.time}</button>-->
+                            <!--                            <button type="button" ${obj.state == 0 ? "class = 'layui-btn layui-btn-primary green-button'" : "class = 'layui-btn layui-btn-primary'"} onclick="toggleColor(this)">${obj.time}</button>-->
+                            @}
+                        </div>
+
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">现金价格:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="cash" name="cash" type="text" value="${money[0]!}" disabled >
+
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">玩派币价格:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="play" name="play" type="text" value="${money[1]!}" disabled >
+
+                    </div>
+                </div>
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">预约人:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="booker" name="booker" type="text" value="${item.booker}" disabled >
+
+                    </div>
+                </div>
+
+
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">联系电话:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="phone" name="phone" type="text" value="${item.phone}" disabled >
+
+                    </div>
+                </div>
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">操作人:</label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="cancelUserId" name="cancelUserId" type="text" value="${cancelUser!}" disabled >
+
+                    </div>
+                </div>
+
+                <div class="form-group" disabled>
+                    <label class="col-sm-3 control-label head-scu-label">*上传凭证:</label>
+                    <div class="col-sm-2">
+                        <div id="introduceDrawingPreId">
+                            <div><img width="100px" height="100px" src="${item.voucher}"></div>
+                        </div>
+                    </div>
+                    <div class="col-sm-2">
+
+                    </div>
+
+                </div>
+
+
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">备注:</label>
+                    <div class="col-sm-4">
+                        <textarea class="form-control" id="remark" name="remark" disabled>${item.remark}</textarea >
+                    </div>
+                </div>
+
+            </div>
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+<!--                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.addSubmit1()"/>-->
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="CoursePackageInfo.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/ball/yuyue_info.js"></script>
+<script type="text/javascript">
+    function updateType(o) {
+        if(o==1){
+
+            var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+            var count = elements.length;
+
+            console.log("Number of elements: " + count);
+
+            $("#half1").hide()
+            var radios = document.getElementsByName("type");
+            var selectedValue;
+
+            for (var i = 0; i < radios.length; i++) {
+                if (radios[i].checked) {
+                    selectedValue = radios[i].value;
+                    break;
+                }
+            }
+
+            var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+                console.log("===========3333====="+data)
+                if(data!=null){
+
+                    $("#cash").val(data[0] * count);
+                    $("#play").val(data[1] * count);
+
+                }
+            })
+            ajax3.start()
+        }else {
+            var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+            var count = elements.length;
+
+            console.log("Number of elements: " + count);
+
+            $("#half1").show()
+            var radios = document.getElementsByName("type");
+            var selectedValue;
+
+            for (var i = 0; i < radios.length; i++) {
+                if (radios[i].checked) {
+                    selectedValue = radios[i].value;
+                    break;
+                }
+            }
+
+            var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+                console.log("===========3333====="+data)
+                if(data!=null){
+
+                    $("#cash").val(data[0] * count);
+                    $("#play").val(data[1] * count);
+
+                }
+            })
+            ajax3.start()
+
+        }
+
+    }
+
+
+
+    function toggleColor(button) {
+        button.classList.toggle("green-button");
+
+        var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+        var count = elements.length;
+
+        console.log("Number of elements: " + count);
+
+
+        var radios = document.getElementsByName("type");
+        var selectedValue;
+
+        for (var i = 0; i < radios.length; i++) {
+            if (radios[i].checked) {
+                selectedValue = radios[i].value;
+                break;
+            }
+        }
+
+        var ajax3 = new $ax(Feng.ctxPath + "/ball/getMoney/"+$('#siteId').val()+'/'+selectedValue, function(data){
+            console.log("===========3333====="+data)
+            if(data!=null){
+
+                $("#cash").val(data[0] * count);
+                $("#play").val(data[1] * count);
+
+            }
+        })
+        ajax3.start()
+
+
+    }
+
+    laydate.render({
+        elem: '#time'
+        ,lang:"CN",
+        min:0,
+        max:10,
+        format:'yyyy-MM-dd',
+        done:function (a) {
+            console.log("==============="+$('#time').val())
+            console.log("==============="+$('#selDate').val())
+            console.log("==============="+$('#siteId').val())
+            console.log("==============="+$('#selSiteId').val())
+
+            if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){
+                $("#ttt3").hide()
+                $("#ttt2").show()
+
+            }else {
+                $("#ttt3").show()
+                $("#ttt2").hide()
+
+            }
+
+            console.log("==========="+a)
+            var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    var content='';
+                    $.each(data, function(k, v) {
+                        var buttonClass = "layui-btn layui-btn-primary";
+                        var style = "";
+                        if (v.state === 0) {
+                            style = "background-color: red;";
+                        }
+                        var disabledAttribute = v.state === 0 ? "disabled" : "";
+                        content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+                    });
+                    $("#ttt2").empty().append(content);
+                }
+            })
+            ajax.start()
+
+            var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+                console.log("================"+data)
+                if(data!=null){
+                    let htmlStr = '';
+                    for (let i = 0; i < data.length; i++) {
+                        htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+                    }
+                    $("#half").empty().append(htmlStr);
+                }
+            })
+            ajax1.start()
+
+
+
+
+
+        }
+
+
+    });
+
+    laydate.render({
+        elem: '#holitime'
+        ,range: true //或 range: '~' 来自定义分割字符
+    });
+
+    var avatarUp = new $WebUpload("coverDrawing");
+    avatarUp.setUploadBarId("progressBar");
+    avatarUp.init();
+
+    var avatarUp1 = new $WebUpload("detailDrawing");
+    avatarUp1.setUploadBarId("progressBar");
+    avatarUp1.init();
+
+    var avatarUp1 = new $WebUpload("introduceDrawing");
+    avatarUp1.setUploadBarId("progressBar");
+    avatarUp1.init();
+    function addTime(){
+        var i =  $('#dayTime > div').length
+
+        let htmlStr ='           <div style="display:flex">\n' +
+            '                                <input class="form-control" id="classStartTime'+i+'" name="classStartTime" placeholder="请选择" style="width: 200px;">\n' +
+            '                                <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice1(this)"></i>\n' +
+            '                            </div>'
+        $('#dayTime').append(htmlStr);
+        console.log("========="+i)
+        laydate.render({
+            elem: '#classStartTime'+i,
+            type: 'time',
+            range: true
+        });
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html
index 5f50669..7060573 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html
@@ -4,7 +4,7 @@
     <div class="col-sm-12">
         <div class="ibox float-e-margins">
             <div class="ibox-title">
-                <h5>课程管理</h5>
+                <h5>视频课管理</h5>
             </div>
             <div class="ibox-content">
                 <div class="row row-lg">
@@ -35,24 +35,12 @@
                             </div>
                         </div>
                         <div class="hidden-xs" id="managerTableToolbar" role="group">
-                            @if(shiro.hasPermission("/course/addCourse")){
                             <#button name="添加" icon="fa-plus" clickFun="Course.addCourse()"/>
-                            @}
-                            @if(shiro.hasPermission("/course/editCourse")){
                             <#button name="编辑" icon="fa-edit" clickFun="Course.editCourse()" space="true"/>
-                            @}
-                            @if(shiro.hasPermission("/course/deleteCourse")){
                             <#button name="删除" icon="fa-remove" clickFun="Course.deleteCourse()" space="true"/>
-                            @}
-                            @if(shiro.hasPermission("/course/upCourse")){
                             <#button name="上架" icon="fa-refresh" clickFun="Course.editCourseState(1)" space="true"/>
-                            @}
-                            @if(shiro.hasPermission("/course/downCourse")){
                             <#button name="下架" icon="fa-warning" clickFun="Course.editCourseState(2)" space="true"/>
-                            @}
-                            @if(shiro.hasPermission("/course/detailsCourse")){
                             <#button name="详情" icon="fa-check-circle" clickFun="Course.detailsCourse()" space="true"/>
-                            @}
                         </div>
                         <#table id="managerTable"/>
                     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
index cb7fc3a..f66df1d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html
@@ -205,7 +205,7 @@
                             <span class="classNumber_span"  ${type == 2||type == 3 ? 'hidden=hidden' : ''}><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;">&nbsp;&nbsp;&nbsp;&nbsp;</span>
                             <span class="cash_span" ></span>
                             <span class="paiCoin_span"></span>
-                            <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/>
+                            <#button btnCss="info" name="优惠券" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/>
                             <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(${type})"></i>
                             <input type="text" id = "counpons1" class="counpons" hidden="hidden" >
                         </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html
index c9d8e1b..7142138 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html
@@ -221,7 +221,7 @@
                                 @}
                             </span>
                             <input type="hidden" id="counpons1" value="${couponIds}" class="counpons">
-                            <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/>
+                            <#button btnCss="info" name="优惠券" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(1)"/>
                             <i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(${type})"></i>
                         </div>
                     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gameData/GameData.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gameData/GameData.html
index 443382a..491d757 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gameData/GameData.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gameData/GameData.html
@@ -66,7 +66,7 @@
                                     @}
                                 </select>
                                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                                <#button name="搜索" icon="fa-search" clickFun="Search()"/>
+                                <#button name="搜索" icon="fa-search" clickFun="BatterData()"/>
                             </div>
                             <div class="col-sm-10">
                                 <div class="row" id="t1" style="margin-left: 100px;">
@@ -142,61 +142,76 @@
                         </div>
                     </div>
                     <div class="row" id="content3" style="margin-left: 100px;">
+                        <div class="col-sm-11">
+                            <div class="form-group">
+                                <span id="totalNumber3">全球场次总数:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                            </div>
+                        </div>
+                        </br>
                         <div class="col-sm-11" style="display: flex">
                             <div class="form-group">
-                                <label class="col-sm-3 control-label">*筛选城市:</label>
+                                <label class="col-sm-3 control-label">*筛选范围:</label>
                                 <div class="col-sm-9">
-                                    <select style="width: 200px" class="form-control" id="yearOrMonth3" name="cCode" onchange="getStoreByCity1(this)">
+                                    <select style="width: 300px" class="form-control" id="yearOrMonth3" name="cCode" >
                                         <option value="y">年度</option>
                                         <option value="m">月度</option>
                                     </select>
                                 </div>
                             </div>
+                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                             <div class="form-group" >
                                 <label class="col-sm-3 control-label">*筛选内容:</label>
                                 <div class="col-sm-9" style="display: flex;">
-                                    <input style="width: 200px" class="form-control" id="con3"  placeholder="请输入年份或者月份" type="text">
+                                    <input style="width: 300px" class="form-control" id="con3"  placeholder="请输入年份或者月份" type="text">
                                 </div>
                             </div>
                             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                             <div class="form-group">
                                 <label class="col-sm-3 control-label">*筛选城市:</label>
                                 <div class="col-sm-9">
-                                    <select style="width: 200px" class="form-control" id="cCode3" name="cCode" onchange="getStoreByCity1(this)">
+                                    <select style="width: 300px" class="form-control" id="cCode3" name="cCode" onchange="getStoreByCity3(this)">
                                         <option value="">全球</option>
                                         @for(obj in list){
-                                        <option style="width: 200px" value="${obj.cityCode}">${obj.city}</option>
+                                        <option style="width: 300px" value="${obj.cityCode}">${obj.city}</option>
                                         @}
                                     </select>
                                 </div>
                             </div>
                             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                            <div class="form-group" >
-                                <label class="col-sm-3 control-label">*筛选场地:</label>
-                                <div class="col-sm-9">
-                                    <select style="width: 200px" class="form-control" id="site3" name="site">
-                                        <option value="">全球</option>
-                                        @for(obj in sites){
-                                        <option style="width: 200px" value="${obj.id}">${obj.name}</option>
-                                        @}
-                                    </select>
-                                </div>
+                        </div>
+                        <div class="col-sm-11" style="display: flex">
+                        <div class="form-group" >
+                            <label class="col-sm-3 control-label">*筛选场地:</label>
+                            <div class="col-sm-9">
+                                <select style="width: 300px" class="form-control" id="site3" name="site">
+                                    <option value="">全球</option>
+                                    @for(obj in sites){
+                                    <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+                                    @}
+                                </select>
                             </div>
-                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<#button name="搜索" icon="fa-search" clickFun="TSite.search3()"/>
+                        </div>
+                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<#button name="搜索" icon="fa-search" clickFun="TSite.search3()"/>
                         </div>
                         <#table id="TSiteTable"/>
                     </div>
                 <div class="row" id="content4" style="margin-left: 100px;">
+                    <div class="col-sm-11">
+                        <div class="form-group">
+                            <span id="totalNumber4">全球场次总数:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        </div>
+                    </div>
                     <div class="col-sm-11" style="display: flex">
                         <div class="form-group">
-                            <label class="col-sm-3 control-label">*筛选城市:</label>
+                            <label class="col-sm-3 control-label">*筛选范围:</label>
                             <div class="col-sm-9">
-                                <select style="width: 200px" class="form-control" id="yearOrMonth4" name="cCode" onchange="getStoreByCity1(this)">
+                                <select style="width: 300px" class="form-control" id="yearOrMonth4" name="cCode">
                                     <option value="y">年度</option>
                                     <option value="m">月度</option>
                                 </select>
                             </div>
                         </div>
+                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                         <div class="form-group" >
                             <label class="col-sm-3 control-label">*筛选内容:</label>
                             <div class="col-sm-9" style="display: flex;">
@@ -207,7 +222,7 @@
                         <div class="form-group">
                             <label class="col-sm-3 control-label">*筛选城市:</label>
                             <div class="col-sm-9">
-                                <select style="width: 300px" class="form-control" id="cCode4" name="cCode" onchange="getStoreByCity1(this)">
+                                <select style="width: 300px" class="form-control" id="cCode4" name="cCode" onchange="getStoreByCity4(this)">
                                     <option value="">全球</option>
                                     @for(obj in list){
                                     <option style="width: 300px" value="${obj.cityCode}">${obj.city}</option>
@@ -216,19 +231,23 @@
                             </div>
                         </div>
                         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                        <div class="form-group" >
-                            <label class="col-sm-3 control-label">*筛选场地:</label>
-                            <div class="col-sm-9">
-                                <select style="width: 300px" class="form-control" id="site4" name="site">
-                                    <option value="">全球</option>
-                                    @for(obj in sites){
-                                    <option style="width: 300px" value="${obj.id}">${obj.name}</option>
-                                    @}
-                                </select>
-                            </div>
-                        </div>
-                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<#button name="搜索" icon="fa-search" clickFun="TCompetition.search4()"/>
                     </div>
+                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                        <div class="col-sm-11" style="display: flex">
+                            <div class="form-group" >
+                                <label class="col-sm-3 control-label">*筛选场地:</label>
+                                <div class="col-sm-9">
+                                    <select style="width: 300px" class="form-control" id="site4" name="site">
+                                        <option value="">全球</option>
+                                        @for(obj in sites){
+                                        <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+                                        @}
+                                    </select>
+                                </div>
+                            </div>
+                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<#button name="搜索" icon="fa-search" clickFun="TSite1.search4()"/>
+                        </div>
+
                     <#table id="TSiteTable1"/>
                 </div>
                 </div>
@@ -376,8 +395,8 @@
             // 时长
             yT = [];
             mT = [];
+            yearX=[];
             for (let i = 0; i <yDataList.length ; i++) {
-
                 yD.push(yDataList[i].total_num);
                 yT.push(yDataList[i].batter_time);
             }
@@ -387,6 +406,9 @@
             }
             for (let i = 0; i <resp.yearList.length ; i++) {
                 yearX.push(resp.yearList[i])
+            }
+            if(resp.yearList.length==0){
+                yearX=[2019,2020,2021,2023]
             }
             var totalNumber= resp.totalNumber;
             var totalTime= resp.totalTime;
@@ -496,7 +518,12 @@
                     }
                 ]
             };
+            var myChart4  = echarts.init(document.getElementById('number'));
+            myChart4.setOption(option);
+            var myChart5  = echarts.init(document.getElementById('time'));
+            myChart5.setOption(option2);
         });
+
         ajax.set("storeId",$("#stores").val());
         ajax.start();
     }
@@ -546,7 +573,18 @@
         BatterData();
         SUTUData();
         Search1();
-
+        // 跨城赛获取全球场次总数
+        var ajax = new $ax(Feng.ctxPath + "/gameData/cityGame", function(data){
+            var totalNumber3= document.getElementById("totalNumber3");
+            totalNumber3.innerText = "全球场次总数:"+data.totalNum;
+        });
+        ajax.start();
+        // 获取90°准度赛全球场次总数
+        var ajax4 = new $ax(Feng.ctxPath + "/gameData/cityGameOne", function(data){
+            var totalNumber4= document.getElementById("totalNumber4");
+            totalNumber4.innerText = "全球场次总数:"+data.totalNum;
+        });
+        ajax4.start();
         // 基于准备好的dom,初始化echarts实例
         var myChart  = echarts.init(document.getElementById('number'));
 
@@ -619,7 +657,12 @@
         var cityCode=$(e).val();
         var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){
             if(data!=null){
-                var content='<option value="">全球</option>';
+                if (cityCode==""){
+                    var content='<option value="">全球</option>';
+                }else{
+                    var content='<option value="">全部</option>';
+                }
+
                 $.each(data, function(k,v) {
                     content += "<option value='"+v.id+"'>"+v.name+"</option>";
                 });
@@ -629,15 +672,37 @@
         ajax.set("oneId",cityCode);
         ajax.start();
     }
-    function getStoreByCity1(e) {
+    function getStoreByCity3(e) {
         var cityCode=$(e).val();
         var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){
             if(data!=null){
-                var content='<option value="">全球</option>';
+                if (cityCode==""){
+                    var content='<option value="">全球</option>';
+                }else{
+                    var content='<option value="">全部</option>';
+                }
                 $.each(data, function(k,v) {
                     content += "<option value='"+v.id+"'>"+v.name+"</option>";
                 });
-                $("#site1").empty().append(content);
+                $("#site3").empty().append(content);
+            }
+        });
+        ajax.set("oneId",cityCode);
+        ajax.start();
+    }
+    function getStoreByCity4(e) {
+        var cityCode=$(e).val();
+        var ajax = new $ax(Feng.ctxPath + "/tSite/getSiteByCity", function(data){
+            if(data!=null){
+                if (cityCode==""){
+                    var content='<option value="">全球</option>';
+                }else{
+                    var content='<option value="">全部</option>';
+                }
+                $.each(data, function(k,v) {
+                    content += "<option value='"+v.id+"'>"+v.name+"</option>";
+                });
+                $("#site4").empty().append(content);
             }
         });
         ajax.set("oneId",cityCode);
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html
index 45bdb55..78d091a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html
@@ -11,7 +11,7 @@
                         <div class="row">
                         </div>
                 <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
-                    <h3>场地总人次:</h3>
+                    <h3 id="totalNumber">场地总人次:</h3>
                 </div>
                 <#table id="TSiteTable"/>
             </div>
@@ -27,5 +27,12 @@
         ,range: true
         ,lang:"en"
     });
+    $(function(){
+        var ajax = new $ax(Feng.ctxPath + "/gateData/totalNum", function(data){
+            var totalNumber= document.getElementById("totalNumber");
+            totalNumber.innerText = "场地总人次:" + data +"次";
+        });
+        ajax.start();
+    });
 </script>
 @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/Operator.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/Operator.html
index b132165..035ee7d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/Operator.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/Operator.html
@@ -39,6 +39,7 @@
                             <#button name="编辑" icon="fa-edit" clickFun="TSite.openInfo()" space="true"/>
                             <#button name="冻结" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/>
                             <#button name="解冻" icon="fa-check" clickFun="TSite.onShelf()" space="true"/>
+                            <#button name="分账比例" icon="fa-plus" clickFun="TSite.proportion()"/>
                             <#button name="重置密码" icon="fa-search" clickFun="TSite.reload()" space="true"/>
                         </div>
                         <#table id="TSiteTable"/>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
new file mode 100644
index 0000000..bf89989
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportion.html
@@ -0,0 +1,109 @@
+@layout("/common/_container.html"){
+<style>
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        height: 100px;
+        width: 100px;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #409EFF;
+    }
+    .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 100px;
+        height: 100px;
+        line-height: 100px;
+        margin-top: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <input hidden id="operatorIdOne" value="${operatorIdOne}">
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*支付宝分账比例(%):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipayProportion}"  placeholder="请输入" type="number">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*微信分账比例(%):</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechatProportion}"  placeholder="请输入" type="number">
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+
+
+            <div class="form-group">
+                <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="TSite.addSubmit1()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operator/operator.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+    laydate.render({
+        elem: '#tradeTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#IDCardTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#bTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    function updateHalf(e) {
+        if(e==1){
+            $("#benefit").hide()
+        }else {
+            $("#benefit").show()
+        }
+
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
new file mode 100644
index 0000000..8105712
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operator/OperatorUser_proportionAuth.html
@@ -0,0 +1,125 @@
+@layout("/common/_container.html"){
+<style>
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        height: 100px;
+        width: 100px;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #409EFF;
+    }
+    .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 100px;
+        height: 100px;
+        line-height: 100px;
+        margin-top: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <input id="operatorId" value="${operatorId}" hidden>
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">*支付宝认证类型:</label>
+                        <div class="col-sm-9">
+                            <input type="radio" name="alipayType" value="1" checked>个人
+                            <input type="radio" name="alipayType" value="2" >企业
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*支付宝商户号:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="alipayNum"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label">*微信认证类型:</label>
+                        <div class="col-sm-9">
+                            <input type="radio" name="wechatType" value="1" checked>个人
+                            <input type="radio" name="wechatType" value="2" >企业
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*微信商户号:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="wechatNum"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+
+
+
+            <div class="form-group">
+                <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="TSite.addSubmit()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operator/operator.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+    laydate.render({
+        elem: '#tradeTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#IDCardTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#bTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    function updateHalf(e) {
+        if(e==1){
+            $("#benefit").hide()
+        }else {
+            $("#benefit").show()
+        }
+
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
index a639b53..31f91ba 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser.html
@@ -93,8 +93,7 @@
                             </div>
                         </div>
                         <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
-                            <#button name="分账比例" icon="fa-plus" clickFun="TSite.openAddTSite()"/>
-                            <#button name="认证" icon="fa-plus" clickFun="TSite.openInfo()"/>
+                            <#button name="分账比例" icon="fa-plus" clickFun="TSite.proportion()"/>
                         </div>
                         <#table id="TSiteTable"/>
                     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_auth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_auth.html
deleted file mode 100644
index cebe82c..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_auth.html
+++ /dev/null
@@ -1,308 +0,0 @@
-@layout("/common/_container.html"){
-<style>
-    .avatar-uploader .el-upload {
-        border: 1px dashed #d9d9d9;
-        border-radius: 6px;
-        cursor: pointer;
-        position: relative;
-        height: 100px;
-        width: 100px;
-        overflow: hidden;
-    }
-
-    .avatar-uploader .el-upload:hover {
-        border-color: #409EFF;
-    }
-    .avatar-uploader-icon {
-        font-size: 28px;
-        color: #8c939d;
-        width: 100px;
-        height: 100px;
-        line-height: 100px;
-        margin-top: 32px;
-        text-align: center;
-    }
-    .avatar {
-        width: 100px;
-        height: 100px;
-        display: block;
-    }
-
-    .col-sm-12 {
-        margin-top: 20px;
-    }
-
-    .col-sm-12 select {
-        height: 33px;
-    }
-    #app1{
-        margin-left: 255px;
-    }
-
-
-</style>
-<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-        <div class="form-horizontal" id="carInfoForm">
-            <h2>商户信息</h2>
-            <div style="display: flex">
-                <span id="storeName"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                <span id="storeStaff"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                <span id="storePhone"></span>
-            </div>
-            <h2>商户号信息</h2>
-            </br>
-            </br>
-
-            <div class="row">
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-4 control-label" >
-                            主题类型:<input type="radio" name="type" value="1" checked  onclick="updateHalf(1)">个人
-                                     <input type="radio" name="type" value="2" onclick="updateHalf(2)">企业
-                        </label>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*营业执照商户名称:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="merchantName"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法定代表人姓名:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="lrName"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*营业期限:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="tradeTime" name="tradeTime" type="date">
-                            <input type="checkbox" style="margin-left: 10px" id="tradeT" value="0" onchange="TSite.tradeYse(this)">长期</input>
-                        </div>
-                    </div>
-                </div>
-                <div class="col-lg-6" style="">
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*营业执照注册号:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="licenseRegistration"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*注册地址:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="registerAddress"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="license" name="营业执照" />
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-lg-6" style="">
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人姓名:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="legalPerson"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人手机号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="legalPhone"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*法人身份证有效期:</label>
-                        <div class="col-sm-9" style="display: flex">
-                            <input style="width: 300px" class="form-control" id="IDCardTime" name="IDCardTime" type="date">
-                            <input type="checkbox" style="margin-left: 10px" id="IDCardT" value="0" onchange="TSite.tradeYse(this)">长期</input>
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="IDCardImg" name="法人身份证正面照" />
-                    </div>
-                </div>
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*法人身份证号:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="lIDNumber"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人邮箱:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="lEmail"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group" >
-                        <label class="col-sm-3 control-label">*法人身份证地址:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="lIDAddress"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="IDCardImg1" name="法人身份证背面照" />
-                    </div>
-                </div>
-            </div>
-
-            <div class="row">
-            <div class="col-lg-6" style="">
-                <div class="form-group" >
-                    <label class="col-sm-4 control-label" >
-                        结算账户类型:<input type="radio" name="type" value="1">对公 <input type="radio" name="type" value="2">对私
-                    </label>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">开户银行:</label>
-                    <div class="col-sm-9">
-                        <select style="width: 300px" class="form-control" id="bank" name="bank">
-                            <option value="">选择开户银行</option>
-                            @for(obj in bankList){
-                            <option value="${obj.bankCode}">${obj.bankName}</option>
-                            @}
-                        </select>
-                    </div>
-                </div>
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">开户所在地:</label>
-                    <div class="col-sm-9" style="display: flex">
-                        <select style="width: 150px" class="form-control" id="pCode" onchange="TSite.oneChange(this)" name="bank">
-                            <option value="">选择省</option>
-                            @for(obj in provinceList){
-                            <option value="${obj.code}">${obj.name}</option>
-                            @}
-                        </select>
-                        <select style="width: 150px" class="form-control" id="cCode" name="bank">
-                            <option value="">选择市区</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">*银行卡号:</label>
-                    <div class="col-sm-9">
-                        <input style="width: 300px" class="form-control" id="backNumber" name="backNumber" type="text">
-                    </div>
-                </div>
-            </div>
-            <div class="col-lg-6" style="">
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">*开户名称:</label>
-                    <div class="col-sm-9">
-                        <input style="width: 300px" class="form-control" id="backUserName"  placeholder="请输入" type="text">
-                    </div>
-                </div>
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">*开户行全称:</label>
-                    <div class="col-sm-9">
-                        <input style="width: 300px" class="form-control" id="backName"  placeholder="请输入" type="text">
-                    </div>
-                </div>
-            </div>
-        </div>
-            <div class="row" id="benefit">
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-4 control-label" >
-                            法人是否为受益人:<input type="radio" name="type" value="1">是 <input type="radio" name="type" value="2">否
-                        </label>
-                    </div>
-
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人姓名:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="bName" name="bName" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证地址:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="bAddress"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证有效期:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="bTime" name="bTime" type="date">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="bImg1" name="受益人身份证正面照" />
-                    </div>
-                </div>
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*受益人身份证号:</label>
-                        <div class="col-sm-9" >
-                            <input style="width: 300px" class="form-control" id="bIDNumber"  placeholder="请输入" type="text">
-                        </div>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="bImg2" name="受益人身份证背面照" />
-                    </div>
-                </div>
-            </div>
-            <div class="row">
-                <div class="col-lg-6" style="">
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*拒绝理由:</label>
-                    </div>
-                    <div class="form-group">
-                        <#avatar id="Img" name="上传图片" />
-                    </div>
-                    <div class="form-group">
-                        <label class="col-sm-3 control-label">*备注:</label>
-                        <div class="col-sm-9">
-                            <input style="width: 300px" class="form-control" id="remark" name="remark" type="text">
-                        </div>
-                    </div>
-                </div>
-            </div>
-            <div class="form-group">
-                <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="TSite.addSubmit()"/>
-                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
-<script src="${ctxPath}/js/vue/vue.js"></script>
-<script src="${ctxPath}/js/elementui/index.js"></script>
-<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
-<script>
-    laydate.render({
-        elem: '#tradeTime'
-        ,range: true
-        ,lang:"CN"
-    });
-    laydate.render({
-        elem: '#IDCardTime'
-        ,range: true
-        ,lang:"CN"
-    });
-    laydate.render({
-        elem: '#bTime'
-        ,range: true
-        ,lang:"CN"
-    });
-    function updateHalf(e) {
-        if(e==1){
-            $("#benefit").hide()
-        }else {
-            $("#benefit").show()
-        }
-
-    }
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportion.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportion.html
new file mode 100644
index 0000000..8fd20a8
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportion.html
@@ -0,0 +1,109 @@
+@layout("/common/_container.html"){
+<style>
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        height: 100px;
+        width: 100px;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #409EFF;
+    }
+    .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 100px;
+        height: 100px;
+        line-height: 100px;
+        margin-top: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <input hidden id="operatorIdOne" value="${operatorIdOne}">
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*支付宝分账比例:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipay}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">*微信分账比例:</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechat}"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+
+
+            <div class="form-group">
+                <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="TSite.addSubmit()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+    laydate.render({
+        elem: '#tradeTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#IDCardTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#bTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    function updateHalf(e) {
+        if(e==1){
+            $("#benefit").hide()
+        }else {
+            $("#benefit").show()
+        }
+
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportionAuth.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportionAuth.html
new file mode 100644
index 0000000..cf745b6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/operatorUser/OperatorUser_proportionAuth.html
@@ -0,0 +1,125 @@
+@layout("/common/_container.html"){
+<style>
+    .avatar-uploader .el-upload {
+        border: 1px dashed #d9d9d9;
+        border-radius: 6px;
+        cursor: pointer;
+        position: relative;
+        height: 100px;
+        width: 100px;
+        overflow: hidden;
+    }
+
+    .avatar-uploader .el-upload:hover {
+        border-color: #409EFF;
+    }
+    .avatar-uploader-icon {
+        font-size: 28px;
+        color: #8c939d;
+        width: 100px;
+        height: 100px;
+        line-height: 100px;
+        margin-top: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            <div class="row">
+                <div class="col-lg-6" style="">
+                    <input id="operatorId" value="${operatorId}" hidden>
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label" >
+                            支付宝认证类型:
+                            <input type="radio" name="alipayType" value="1" checked>个人
+                            <input type="radio" name="alipayType" value="2" >企业
+                        </label>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">支付宝商户号</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="alipayNum"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label" >
+                            微信认证类型:
+                            <input type="radio" name="wechatType" value="1" checked>个人
+                            <input type="radio" name="wechatType" value="2" >企业
+                        </label>
+                    </div>
+                    <div class="form-group" >
+                        <label class="col-sm-3 control-label">微信商户号</label>
+                        <div class="col-sm-9">
+                            <input style="width: 300px" class="form-control" id="wechatNum"  placeholder="请输入" type="text">
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+
+
+
+            <div class="form-group">
+                <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="TSite.addSubmit()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+    laydate.render({
+        elem: '#tradeTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#IDCardTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    laydate.render({
+        elem: '#bTime'
+        ,range: true
+        ,lang:"CN"
+    });
+    function updateHalf(e) {
+        if(e==1){
+            $("#benefit").hide()
+        }else {
+            $("#benefit").show()
+        }
+
+    }
+</script>
+@}
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 b49d32e..92cd00c 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
@@ -70,7 +70,7 @@
             <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">
+                    <select class="form-control" id="shopId" name="shopId" multiple>
                         <option value="">选择门店</option>
                     </select>
                 </div>
@@ -193,10 +193,31 @@
     </div>
 </div>
 <script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css">
+<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>-->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
 <script src="${ctxPath}/js/vue/vue.js"></script>
 <script src="${ctxPath}/js/elementui/index.js"></script>
 <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
 <script>
+    $(document).ready(function() {
+        $('#shopId').select2({
+            multiple: true,
+            closeOnSelect: false
+        });
+    });
+
+    laydate.render({
+        elem: '#startTime'
+        ,type:"datetime"
+    });
+    laydate.render({
+        elem: '#endTime'
+        ,type:"datetime"
+    });
+
+
+
     var vue2 = new Vue({
         el: '#app1',
         props: {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js
index 9403aa8..cf527c3 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue.js
@@ -127,23 +127,88 @@
  */
 TStudent.openTStudentDetail = function () {
     if (this.check()) {
+
+        if (TStudent.seItem.status!=1){
+            Feng.error("请选择待核销的数据")
+            return
+        }
         var index = layer.open({
             type: 2,
             title: '详情',
             area: ['100%', '100%'],  //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/ball/pre_edit/' + TStudent.seItem.id
+            content: Feng.ctxPath + '/ball/yueyue_edit/' + TStudent.seItem.id
         });
         this.layerIndex = index;
     }
 };
 
 
+
+TStudent.openTStudentDetail5 = function () {
+    if (this.check()) {
+
+
+        var index = layer.open({
+            type: 2,
+            title: '详情',
+            area: ['100%', '100%'],  //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/ball/yueyue_info/' + TStudent.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
 /**
- * 打开详情
+ * 确认到店
  */
 TStudent.openTStudentDetail1 = function () {
+    if (this.check()) {
+
+        if (TStudent.seItem.status!=1){
+            Feng.error("请选择待核销的数据")
+            return
+        }
+        var index = layer.open({
+            type: 2,
+            title: '',
+            area: ['20%', '25%'],  //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/ball/joinmethod/' + TStudent.seItem.id
+        });
+
+        this.layerIndex = index;
+    }
+};
+
+
+/**
+ * 确认到店
+ */
+TStudent.openTStudentDetail4 = function () {
+    if (this.check()) {
+
+        if (TStudent.seItem.status!=1){
+            Feng.error("请选择待核销的数据")
+            return
+        }
+        var index = layer.open({
+            type: 2,
+            title: '',
+            area: ['30%', '40%'],  //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/ball/tocancel/' + TStudent.seItem.id
+        });
+
+        this.layerIndex = index;
+    }
+};
+
+TStudent.openTStudentDetail2 = function () {
     if (this.check()) {
         var index = layer.open({
             type: 2,
@@ -185,7 +250,9 @@
     queryData['store'] = $("#store").val();
     queryData['peopleName'] = $("#peopleName").val();
     queryData['phone'] = $("#phone").val();
-    queryData['date'] = $("#peopleName").val();
+    queryData['date'] = $("#date").val();
+    queryData['payMethod'] = $("#payMethod").val();
+    queryData['state'] = $("#state").val();
 
 
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
index 9dc4393..4456b15 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
@@ -62,6 +62,59 @@
             $("#ttt2").empty().append(content);
         }
     })
+    ajax.set("date",$('#time').val());
+    ajax.start()
+
+    var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+        console.log("================"+data)
+        if(data!=null){
+            let htmlStr = '';
+            for (let i = 0; i < data.length; i++) {
+                htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+            }
+            $("#half").empty().append(htmlStr);
+        }
+    })
+    ajax1.start()
+
+
+
+
+
+};
+
+
+
+CoursePackageInfo.addTime1 = function (a) {
+
+
+    if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){
+        $("#ttt3").hide()
+        $("#ttt2").show()
+
+    }else {
+        $("#ttt3").show()
+        $("#ttt2").hide()
+
+    }
+
+    console.log("==========="+a)
+    var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+        console.log("================"+data)
+        if(data!=null){
+            var content='';
+            $.each(data, function(k, v) {
+                var buttonClass = "layui-btn layui-btn-primary";
+                var style = "";
+                if (v.state === 0) {
+                    style = "background-color: red;";
+                }
+                var disabledAttribute = v.state === 0 ? "disabled" : "";
+                content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+            });
+            $("#ttt2").empty().append(content);
+        }
+    })
     ajax.start()
 
     var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
@@ -114,7 +167,7 @@
     var values = "";
 
     for (var i = 0; i < elements.length; i++) {
-        values += date +" "+ elements[i].innerText + ",";
+         values += date +" "+ elements[i].innerText + ";";
     }
 
 // 去除最后一个逗号
@@ -204,6 +257,144 @@
     ajax.start();
 };
 
+
+/**
+ * 新修改
+ */
+CoursePackageInfo.addSubmit1 = function () {
+    let province = $('#provinceCode option:checked').text();
+    let provinceCode = $('#provinceCode').val();
+    let city = $('#cityCode option:checked').text();
+    let cityCode = $('#cityCode').val();
+    let storeId = $('#storeId').val();
+    let siteId = $('#siteId').val();
+    let site = $('#siteId option:checked').text();
+
+
+    var radios = document.getElementsByName("type");
+    var selectedValue;
+
+
+
+    for (var i = 0; i < radios.length; i++) {
+        if (radios[i].checked) {
+            selectedValue = radios[i].value;
+            break;
+        }
+    }
+
+    let type = selectedValue;
+    let half = $('#half').val();
+    let date = $('#time').val();
+
+
+    var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+    var values = "";
+    console.log("==============="+elements[0])
+    if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()) {
+        for (var i = 0; i < elements.length; i++) {
+            if (elements[i].name != 'has') {
+                values += date + " " + elements[i].innerText + ";";
+            }
+
+        }
+    }else {
+        for (var i = 0; i < elements.length; i++) {
+            if (elements[i].name = 'has') {
+                values += date + " " + elements[i].innerText + ";";
+            }
+        }
+    }
+// 去除最后一个逗号
+    values = values.slice(0, -1);
+
+    console.log(values);
+
+    var times = values;
+
+    let cash = $('#cash').val();
+    let play = $('#play').val();
+    let booker = $('#booker').val();
+    let phone = $('#phone').val();
+    let id = $('#id').val();
+
+
+    // if(null == provinceCode || '' == provinceCode){
+    //     Feng.error("所在省不能为空");
+    //     return
+    // }
+    // if(null == cityCode || '' == cityCode){
+    //     Feng.error("所在市不能为空");
+    //     return
+    // }
+    // if(null == storeId || '' == storeId){
+    //     Feng.error("所属门店不能为空");
+    //     return
+    // }
+    // if(null == coursePackageTypeId || '' == coursePackageTypeId){
+    //     Feng.error("课程类型不能为空");
+    //     return
+    // }
+    // if(null == name || '' == name){
+    //     Feng.error("课包名称不能为空");
+    //     return
+    // }
+    // if(null == siteId || '' == siteId){
+    //     Feng.error("上课场地不能为空");
+    //     return
+    // }
+    // if(null == coachId || '' == coachId){
+    //     Feng.error("授课教师不能为空");
+    //     return
+    // }
+    //
+    // classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+    //
+    // if(null == coverDrawing || '' == coverDrawing){
+    //     Feng.error("课包封面不能为空");
+    //     return
+    // }
+    // if(null == detailDrawing || '' == detailDrawing){
+    //     Feng.error("详情页不能为空");
+    //     return
+    // }
+    // if(null == introduceDrawing || '' == introduceDrawing){
+    //     Feng.error("课包介绍不能为空");
+    //     return
+    // }
+
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/ball/orderedit", function (data) {
+        if(data.code == 200){
+            Feng.success("添加成功!");
+            CoursePackageInfo.close();
+            window.parent.TStudent.table.refresh();
+        }else{
+            Feng.error(data.msg);
+        }
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("province",province)
+    ajax.set("provinceCode",provinceCode);
+    ajax.set("city",city);
+    ajax.set("cityCode",cityCode);
+    ajax.set("storeId",storeId);
+    ajax.set("isHalf",type);
+    ajax.set("siteId",siteId);
+    ajax.set("nextName",site);
+    ajax.set("halfName",half);
+    ajax.set("date",date);
+    ajax.set("times",times);
+    ajax.set("money",cash+","+play);
+    ajax.set("booker",booker);
+    ajax.set("phone",phone);
+    ajax.set("id",id);
+
+
+    ajax.start();
+};
 /**
  * 提交修改
  */
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js
index 413b667..e951696 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage.js
@@ -167,10 +167,14 @@
  */
 CoursePackage.editCoursePackageState = function (state) {
     if (this.check()) {
+
         if(CoursePackage.seItem.state == state){
             Feng.error("不能重复操作");
             return
         }
+        parent.layer.confirm(state == 1 ? '是否上架' : "是否下架" , {
+            btn: ['确定', '取消']
+        }, function (index) {
         let ajax = new $ax(Feng.ctxPath + "/coursePackage/editCoursePackageState", function (data) {
             Feng.success(state == 1 ? '上架' : "下架" + "成功!");
             CoursePackage.table.refresh();
@@ -180,6 +184,15 @@
         ajax.set("id", CoursePackage.seItem.id);
         ajax.set("state", state);
         ajax.start();
+                parent.layer.close(index);
+
+            }, function (index) {
+                parent.layer.close(index);
+            }
+
+
+        )
+
     }
 };
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/gameData/gameData.js b/cloud-server-management/src/main/webapp/static/modular/system/gameData/gameData.js
index b743ec8..53a0e2a 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/gameData/gameData.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/gameData/gameData.js
@@ -47,7 +47,7 @@
         {field: 'selectItem', checkbox: true},
         {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
         {title: '序号', field: 'account_id', visible:true, align: 'center', valign: 'middle'},
-        {title: '昵称', field: 'nickname', visible: true, align: 'center', valign: 'middle',},
+        {title: '昵称', field: 'name', visible: true, align: 'center', valign: 'middle',},
         {title: '成绩', field: 'score', visible: true, align: 'center', valign: 'middle'},
     ];
 };
@@ -73,7 +73,7 @@
     queryData['date'] = $("#con4").val();
     queryData['cityCode'] = $("#cCode4").val();
     queryData['spaceId'] = $("#site4").val();
-    TSite.table.refresh({query: queryData});
+    TSite1.table.refresh({query: queryData});
 };
 
 TSite.resetSearch = function () {
@@ -95,7 +95,7 @@
     TSite.table = table.init();
 
     var defaultColunms1 = TSite1.initColumn();
-    var table1 = new BSTable(TSite1.id, "/gameData/listAll", defaultColunms1);
+    var table1 = new BSTable(TSite1.id, "/gameData/listAll1", defaultColunms1);
     table1.setPaginationType("client");
     TSite1.table = table1.init();
 });
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js b/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js
index 03934ba..59b12d6 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js
@@ -16,7 +16,7 @@
         {field: 'selectItem', radio: true},
         {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
         {title: '场地区域名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
-        {title: '入场人次', field: 'number', visible: true, align: 'center', valign: 'middle'}
+        {title: '入场人次', field: 'enter_num', visible: true, align: 'center', valign: 'middle'}
     ];
 };
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
index 4c69cd5..2cf6b42 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
@@ -34,7 +34,7 @@
             formatter: function (data,row) {
                 var btn = "";
                 if(data==1) {
-                    var str = '<button class="btn btn-outline btn-primary" onclick="TSite.bindOperator('+row.id+')" >去绑定</button>'
+                    var str = '<button class="btn btn-outline btn-primary" onclick="TSite.Allocationratio('+row.id+')" >去绑定</button>'
                     btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>']
                 }else{
                     var str = '<h3>已绑定</h3>'
@@ -64,18 +64,102 @@
         return true;
     }
 };
-TSite.bindOperator = function (e) {
-    var index = layer.open({
-        type: 2,
-        title: "认证",
-        area: ['100%', '100%'], //宽高
-        fix: false, //不固定
-        maxmin: true,
-        content: Feng.ctxPath + '/operatorUser/proportion/' + e
-    });
-    this.layerIndex = index;
+/**
+ * 商户号认证
+ */
+TSite.Allocationratio = function (e) {
+    console.log("看看E");
+    console.log(e);
+        var index = layer.open({
+            type: 2,
+            title: "商户认证",
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/operator/proportionAuth/' + e
+        });
+        this.layerIndex = index;
+};
+/**
+ * 分账比例
+ */
+TSite.proportion = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length >1 ){
+        Feng.info("只能选择一个运营商商户设置分账比例!");
+    }else {
+        if (this.check()) {
+            console.log("看看状态")
+            console.log(TSite.seItem.status)
+            if (TSite.seItem.status==1){
+                Feng.error("当前运营商没有绑定商户号,请先绑定商户号!")
+                return;
+            }
+            var index = layer.open({
+                type: 2,
+                title: "认证",
+                area: ['100%', '100%'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/operator/proportion/' + TSite.seItem.id
+            });
+            this.layerIndex = index;
+        }
+    }
 
 };
+TSite.addSubmit = function(){
+    var alipayType = $("input[name='alipayType']:checked").val();
+    var wechatType = $("input[name='wechatType']:checked").val();
+    var alipayNum  = $("#alipayNum").val();
+    var wechatNum  = $("#wechatNum").val();
+    var operatorId  = $("#operatorId").val();
+    if($("#alipayNum").val()=='' ){
+        Feng.info("请输入支付宝商户号")
+        return;
+    }
+    if($("#wechatNum").val()=='' ){
+        Feng.info("请输入微信商户号")
+        return;
+    }
+    var ajax = new $ax(Feng.ctxPath + "/operator/auth", function(data){
+        Feng.success("认证成功")
+        TSite.close();
+        TSite.search();
+    });
+    ajax.set("alipayType",alipayType);
+    ajax.set("wechatType",wechatType);
+    ajax.set("alipayNum",alipayNum);
+    ajax.set("wechatNum",wechatNum);
+    ajax.set("operatorId",operatorId);
+    ajax.start();
+};
+TSite.addSubmit1 = function(){
+    var alipayProportion  = $("#alipayProportion").val();
+    var wechatProportion  = $("#wechatProportion").val();
+    var operatorIdOne  = $("#operatorIdOne").val();
+    if($("#alipayNum").val()=='' ){
+        Feng.info("请输入支付宝分账比例")
+        return;
+    }
+    if($("#wechatNum").val()=='' ){
+        Feng.info("请输入微信分账比例")
+        return;
+    }
+    if (Number(alipayProportion)+Number(wechatProportion)!=100){
+        Feng.info("总比例应该是100%,当前比例:"+Number(Number(alipayProportion)+Number(wechatProportion)));
+        return;
+    }
+    var ajax = new $ax(Feng.ctxPath + "/operator/proportion", function(data){
+        Feng.success("分账比例设置成功")
+        TSite.close();
+        TSite.search();
+    });
+    ajax.set("alipayProportion",alipayProportion);
+    ajax.set("wechatProportion",wechatProportion);
+    ajax.set("operatorIdOne",operatorIdOne);
+    ajax.start();
+};
 /**
  * 上架
  */
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
index fab95cf..746abf5 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operatorUser/operatorUser.js
@@ -48,76 +48,7 @@
         return true;
     }
 };
-/**
- * 分账比例
- */
-TSite.openAddTSite = function () {
-    var selected = $('#' + this.id).bootstrapTable('getSelections');
-    if(selected.length >1 ){
-        Feng.info("只能选择一个运营商商户设置分账比例!");
-    }else {
-        if (this.check()) {
-            var index = layer.load(1,{
-                type: 1
-                , title: '添加分账比例'
-                , area: ['50%', '50%']
-                , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
-                , id: 'layerDemo' //防止重复弹出cge
-                , content: '<div class="form-horizontal">' +
-                    '                    <div class="col-sm-11" >' +
-                    '                    <div class="col-sm-11">' +
-                    '                        <div class="form-group">\n' +
-                    '                            <label class="col-sm-3 control-label">支付宝分账比例:</label>\n' +
-                    '                         <div class="col-sm-9">\n' +
-                    '                                  <input class="form-control" placeholder="请输入分账比例" type="text" id="alipay"> '+
-                    '                            </div>\n' +
-                    '                        </div>\n' +
-                    '                        <div class="form-group">\n' +
-                    '                            <label class="col-sm-3 control-label">微信分账比例:</label>\n' +
-                    '                         <div class="col-sm-9">\n' +
-                    '                                  <input class="form-control" placeholder="请输入分账比例" type="text" id="wechat"> '+
-                    '                            </div>\n' +
-                    '                        </div>\n' +
-                    '                       </div>' +
-                    '                   </div>' +
-                    '</div>'
-                , btn: ['关闭', '保存']
-                , btnAlign: 'c' //按钮居中
-                , shade:  0.5 //不显示遮罩
-                ,load:1
-                , yes: function () {
-                    layer.closeAll();
-                },
-                btn2:function () {
-                    let wechat = $("#wechat").val()
-                    let alipay = $("#alipay").val()
-                    if(alipay==''){
-                        Feng.info("请输入支付宝分账比例")
-                        return false;
-                    }
-                    if(wechat==''){
-                        Feng.info("请输入微信分账比例")
-                        return false;
-                    }
-                    var ajax = new $ax(Feng.ctxPath + "/operatorUser/addProportion", function (data) {
-                            Feng.success("设置成功!");
-                            window.location.reload();
-                            window.parent.layer.closeAll();
-                    }, function (data) {
-                        Feng.error("操作失败!")
-                    });
-                    ajax.set("id", TSite.seItem.id);
-                    ajax.set("alipay", alipay);
-                    ajax.set("wechat", wechat);
-                    ajax.start();
-                    layer.closeAll();
-                }
-            });
-            this.layerIndex = index;
-        }
-    }
 
-};
 function UploadFileFn(){
     $('#upFile').click();
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
index 9494de6..ff9fa6c 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
@@ -83,6 +83,7 @@
     @ResponseBody
     @PostMapping("/listorder")
     public List<Map<String, Object>>  listorder(@RequestBody BookingQuery bookingQuery){
+        System.out.println("===bookingQuery===="+bookingQuery);
         return gameService.orderlist(bookingQuery);
 //        return  game.getId();
     }
diff --git a/cloud-server-other/src/main/resources/mapper/GameMapper.xml b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
index fb0656a..7ba2226 100644
--- a/cloud-server-other/src/main/resources/mapper/GameMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/GameMapper.xml
@@ -36,7 +36,39 @@
         FROM t_site_booking bk
                  LEFT JOIN t_store st on bk.storeId = st.id
                  LEFT JOIN t_site si on bk.siteId = si.id
+        <where>
+        <if test="provinceCode!=null and provinceCode!= ''">
+          and  bk.provinceCode=#{provinceCode}
+        </if>
+            <if test="cityCode!=null and cityCode!= ''">
+                and  bk.cityCode=#{cityCode}
+            </if>
 
+            <if test="store!=null and store!= ''">
+                and  st.name=#{store}
+            </if>
+
+            <if test="peopleName!=null and peopleName!= ''">
+                and  bk.booker=#{peopleName}
+            </if>
+
+            <if test="phone!=null and phone!= ''">
+                and  bk.phone=#{phone}
+            </if>
+
+
+            <if test="date!=null and date!= ''">
+                and bk.times like concat('%',#{date},'%')            </if>
+            <if test="payMethod!=null ">
+                and  bk.payType=#{payMethod}
+            </if>
+
+            <if test="state!=null ">
+                and  bk.status=#{state}
+            </if>
+
+        
+        </where>
 
 
 

--
Gitblit v1.7.1