From 7aa9607492e2c0b70838c53083f5362e49e74f44 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 26 九月 2023 21:39:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html              |    2 
 cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml                                   |   16 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                        |   43 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java                         |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html                     |   68 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html               |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java                      |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                        |   17 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html              |    2 
 .idea/workspace.xml                                                                                             |  209 ++++--
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java             |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_add.html                |    6 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java                    |  156 ++-
 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java                        |   12 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java              |    1 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html                                |   29 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java                  |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                    |   14 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java           |    9 
 cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java                                           |    1 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java             |    6 
 cloud-server-management/src/main/webapp/static/img/index4.png                                                   |    0 
 cloud-server-management/src/main/webapp/static/img/logo.png                                                     |    0 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java |   70 +
 cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java                           |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java             |   15 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java                  |    2 
 cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java                                       |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html                          |   50 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java     |    3 
 cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java                               |    2 
 cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js                            |    2 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java                         |    1 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java                 |   48 +
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java                            |    4 
 cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java                                           |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java          |  147 +++-
 cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java                                    |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java                      |    5 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java              |    3 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js               |   71 +
 cloud-server-management/src/main/resources/mapper/TStoreMapper.xml                                              |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java        |   13 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html                               |    3 
 cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js                                    |    2 
 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java                        |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html               |    2 
 cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml                                 |   18 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java               |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html                                 |    6 
 cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js                               |   37 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html                      |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java                      |    2 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js               |   71 +-
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java               |    4 
 cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java                         |  100 +++
 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java                  |    7 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js                      |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java                     |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java        |   29 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java                       |    3 
 cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java                              |  163 ++++
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                        |    4 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js                     |  440 +++++++++++++
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java         |   10 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js              |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html                       |    6 
 67 files changed, 1,586 insertions(+), 391 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 12c2504..7f0be18 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -22,45 +22,7 @@
     <select />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="学员4">
-      <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/controller/CourseStudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ConsumeQuery.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ConsumeQuery.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/ToClassDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/ToClassDto.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/TCoursePackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/TCoursePackage.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/TStudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ConsumeQuery.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ConsumeQuery.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ToClassDto.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/ToClassDto.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/TCoupon.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/TCoupon.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage.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/coursePackage/coursePackage_info.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_info.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/banckmoney.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/classelct.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/classelct.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js" 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-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" afterDir="false" />
-    </list>
+    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.26。7" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -105,40 +67,39 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <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:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage",
-    "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": "MavenSettings",
-    "spring.configuration.checksum": "b0c8222ba40624e179f539b98c2e8cad",
-    "vue.rearranger.settings.migration": "true"
+  <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:/JavaTool/PlayPai1/cloud-server-management/src/main/webapp/static/modular/system/coursePackage&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;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
+    &quot;spring.configuration.checksum&quot;: &quot;b0c8222ba40624e179f539b98c2e8cad&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
   }
-}]]></component>
+}</component>
   <component name="ReactorSettings">
     <option name="notificationShown" value="true" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
-      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" />
       <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\coursePackage" />
+      <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\coursePackage" />
       <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" />
       <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\static\modular\system\tCoupon" />
       <recent name="D:\JavaTool\PlayPai1\cloud-server-management\src\main\webapp\WEB-INF\view\system" />
@@ -262,10 +223,10 @@
     </configuration>
     <list>
       <item itemvalue="Spring Boot.GatewayApplication" />
-      <item itemvalue="Spring Boot.UserApplication" />
-      <item itemvalue="Spring Boot.AccountApplication" />
       <item itemvalue="Spring Boot.ManagementApplication" />
       <item itemvalue="Spring Boot.OtherApplication" />
+      <item itemvalue="Spring Boot.UserApplication" />
+      <item itemvalue="Spring Boot.AccountApplication" />
       <item itemvalue="Spring Boot.AuthApplication" />
       <item itemvalue="Spring Boot.ActivityApplication" />
       <item itemvalue="Spring Boot.CourseApplication" />
@@ -280,7 +241,7 @@
   </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="SvnConfiguration">
-    <configuration />
+    <configuration>C:\Users\luo\AppData\Roaming\Subversion</configuration>
   </component>
   <component name="TaskManager">
     <task active="true" id="Default" summary="Default task">
@@ -318,7 +279,12 @@
       <workItem from="1695430054273" duration="24454000" />
       <workItem from="1695461202457" duration="3973000" />
       <workItem from="1695520475699" duration="28522000" />
-      <workItem from="1695602623205" duration="20433000" />
+      <workItem from="1695602623205" duration="24182000" />
+      <workItem from="1695633570775" duration="65000" />
+      <workItem from="1695633789585" duration="4703000" />
+      <workItem from="1695638521906" duration="1415000" />
+      <workItem from="1695689815334" duration="13353000" />
+      <workItem from="1695718856285" duration="16156000" />
     </task>
     <task id="LOCAL-00001" summary="后台代码删除">
       <created>1690249807612</created>
@@ -443,7 +409,87 @@
       <option name="project" value="LOCAL" />
       <updated>1695461535365</updated>
     </task>
-    <option name="localTasksCounter" value="18" />
+    <task id="LOCAL-00018" summary="9.25">
+      <option name="closed" value="true" />
+      <created>1695629926005</created>
+      <option name="number" value="00018" />
+      <option name="presentableId" value="LOCAL-00018" />
+      <option name="project" value="LOCAL" />
+      <updated>1695629926005</updated>
+    </task>
+    <task id="LOCAL-00019" summary="9.25">
+      <option name="closed" value="true" />
+      <created>1695636138175</created>
+      <option name="number" value="00019" />
+      <option name="presentableId" value="LOCAL-00019" />
+      <option name="project" value="LOCAL" />
+      <updated>1695636138175</updated>
+    </task>
+    <task id="LOCAL-00020" summary="9.26">
+      <option name="closed" value="true" />
+      <created>1695719130696</created>
+      <option name="number" value="00020" />
+      <option name="presentableId" value="LOCAL-00020" />
+      <option name="project" value="LOCAL" />
+      <updated>1695719130696</updated>
+    </task>
+    <task id="LOCAL-00021" summary="9.26。1">
+      <option name="closed" value="true" />
+      <created>1695723019798</created>
+      <option name="number" value="00021" />
+      <option name="presentableId" value="LOCAL-00021" />
+      <option name="project" value="LOCAL" />
+      <updated>1695723019798</updated>
+    </task>
+    <task id="LOCAL-00022" summary="9.26。2">
+      <option name="closed" value="true" />
+      <created>1695725709313</created>
+      <option name="number" value="00022" />
+      <option name="presentableId" value="LOCAL-00022" />
+      <option name="project" value="LOCAL" />
+      <updated>1695725709313</updated>
+    </task>
+    <task id="LOCAL-00023" summary="9.26。3">
+      <option name="closed" value="true" />
+      <created>1695728959013</created>
+      <option name="number" value="00023" />
+      <option name="presentableId" value="LOCAL-00023" />
+      <option name="project" value="LOCAL" />
+      <updated>1695728959013</updated>
+    </task>
+    <task id="LOCAL-00024" summary="9.26。4">
+      <option name="closed" value="true" />
+      <created>1695730124076</created>
+      <option name="number" value="00024" />
+      <option name="presentableId" value="LOCAL-00024" />
+      <option name="project" value="LOCAL" />
+      <updated>1695730124076</updated>
+    </task>
+    <task id="LOCAL-00025" summary="9.26。5">
+      <option name="closed" value="true" />
+      <created>1695730466910</created>
+      <option name="number" value="00025" />
+      <option name="presentableId" value="LOCAL-00025" />
+      <option name="project" value="LOCAL" />
+      <updated>1695730466910</updated>
+    </task>
+    <task id="LOCAL-00026" summary="9.26。6">
+      <option name="closed" value="true" />
+      <created>1695734782274</created>
+      <option name="number" value="00026" />
+      <option name="presentableId" value="LOCAL-00026" />
+      <option name="project" value="LOCAL" />
+      <updated>1695734782274</updated>
+    </task>
+    <task id="LOCAL-00027" summary="9.26。7">
+      <option name="closed" value="true" />
+      <created>1695735077405</created>
+      <option name="number" value="00027" />
+      <option name="presentableId" value="LOCAL-00027" />
+      <option name="project" value="LOCAL" />
+      <updated>1695735077405</updated>
+    </task>
+    <option name="localTasksCounter" value="28" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -467,7 +513,16 @@
     <MESSAGE value="学员" />
     <MESSAGE value="学员2" />
     <MESSAGE value="学员4" />
-    <option name="LAST_COMMIT_MESSAGE" value="学员4" />
+    <MESSAGE value="9.25" />
+    <MESSAGE value="9.26" />
+    <MESSAGE value="9.26。1" />
+    <MESSAGE value="9.26。2" />
+    <MESSAGE value="9.26。3" />
+    <MESSAGE value="9.26。4" />
+    <MESSAGE value="9.26。5" />
+    <MESSAGE value="9.26。6" />
+    <MESSAGE value="9.26。7" />
+    <option name="LAST_COMMIT_MESSAGE" value="9.26。7" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -482,6 +537,16 @@
           <line>111</line>
           <option name="timeStamp" value="2" />
         </line-breakpoint>
+        <line-breakpoint type="java-line">
+          <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java</url>
+          <line>458</line>
+          <option name="timeStamp" value="9" />
+        </line-breakpoint>
+        <line-breakpoint type="java-line">
+          <url>file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java</url>
+          <line>1294</line>
+          <option name="timeStamp" value="14" />
+        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
index 2d6993a..707bea3 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -71,7 +71,7 @@
     @PostMapping("/student/queryDefaultStudent")
     public TStudent queryDefaultStudent(@RequestBody Integer appUserId){
         try {
-            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1));
+            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1).last("limit 1"));
             return one;
         }catch (Exception e){
             e.printStackTrace();
@@ -213,7 +213,7 @@
         System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto);
 
 //       Integer appId = studentService.getGiftSelect(giftSearchDto);
-        TCoursePackagePayment coursePackagePaymentById = paymentClient.getCoursePackagePaymentById(giftSearchDto.getId());
+        TCoursePackagePayment1 coursePackagePaymentById = paymentClient.getCoursePackagePaymentById1(giftSearchDto.getId());
 //        System.out.println("=======giftSelect======appId====>"+appId);
         List<TStudent> selectDtos =  studentService.list(new QueryWrapper<TStudent>()
                 .select("name, id")
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
index 0657af9..bc36b4a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -90,10 +90,16 @@
                 detailsVo.setUserImage(tAppUser.getHeadImg());
                 detailsVo.setUserName(tAppUser.getName());
                 detailsVo.setUserPhone(tAppUser.getPhone());
-                detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
+                if(tAppUser.getGender()!=null){
+
+                    detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
+                }
                 detailsVo.setBirthday(format1.format(tAppUser.getBirthday()));
                 detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity());
-                detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
+                if(tAppUser.getVipEndTime()!=null){
+
+                    detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
+                }
             }
             return ResultUtil.success(detailsVo);
         }catch (Exception e){
@@ -433,7 +439,7 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(value = "记录id", name = "detailsId", required = true, dataType = "string"),
     })
-    public ResultUtil<PointDetailsVo> redemptionDetails(Integer detailsId){
+    public ResultUtil<PointDetailsVo> redemptionDetails(Long detailsId){
         try {
             return ResultUtil.success(uicService.queryRedemptionDetails(detailsId));
         }catch (Exception e){
diff --git a/cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java b/cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
index 28cac4b..fda50a5 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
@@ -1,5 +1,6 @@
 package com.dsh.account.dto;
 
+import io.swagger.models.auth.In;
 import lombok.Data;
 
 @Data
diff --git a/cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java b/cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java
new file mode 100644
index 0000000..30b6e89
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/dto/TCoursePackagePayment1.java
@@ -0,0 +1,163 @@
+package com.dsh.account.dto;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户课程包购买记录
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_course_package_payment")
+public class TCoursePackagePayment1 {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.NONE)
+    @TableField(updateStrategy = FieldStrategy.NEVER)
+    private Long id;
+    /**
+     * 业务编号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 用户id
+     */
+    @TableField("appUserId")
+    private Integer appUserId;
+    /**
+     * 学员id
+     */
+    @TableField("studentId")
+    private Integer studentId;
+    /**
+     * 课包id
+     */
+    @TableField("coursePackageId")
+    private Integer coursePackageId;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 课时数
+     */
+    @TableField("classHours")
+    private Integer classHours;
+    /**
+     * 原价
+     */
+    @TableField("originalPrice")
+    private Double originalPrice;
+    /**
+     * 优惠券id
+     */
+    @TableField("userCouponId")
+    private Long userCouponId;
+    /**
+     * 现金支付价格
+     */
+    @TableField("cashPayment")
+    private BigDecimal cashPayment;
+    /**
+     * 玩湃币价格/积分
+     */
+    @TableField("playPaiCoin")
+    private Integer playPaiCoin;
+    /**
+     * 总课时
+     */
+    @TableField("totalClassHours")
+    private Integer totalClassHours;
+    /**
+     * 剩余课时
+     */
+    @TableField("laveClassHours")
+    private Integer laveClassHours;
+    /**
+     * 缺课次数
+     */
+    @TableField("absencesNumber")
+    private Integer absencesNumber;
+    /**
+     * 退课课时
+     */
+    @TableField(exist = false)
+    private Integer dropoutsNumber;
+    /**
+     * 支付用户类型(1=用户,2=管理员)
+     */
+    @TableField("payUserType")
+    private Integer payUserType;
+    /**
+     * 支付状态(1=待支付,2=已支付)
+     */
+    @TableField("payStatus")
+    private Integer payStatus;
+    /**
+     * 第三方支付流水号
+     */
+    @TableField("orderNumber")
+    private String orderNumber;
+    /**
+     * 支付用户id
+     */
+    @TableField("payUserId")
+    private Integer payUserId;
+    /**
+     * 课程状态(1=正常,2=已退课)
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 退课时间
+     */
+    @TableField("withdrawalTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date withdrawalTime;
+    /**
+     * 退课凭证
+     */
+    @TableField("certificate")
+    private String certificate;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+
+
+    @TableField("useTime")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date useTime;
+
+    /**
+     * 平台手动支付时使用
+     */
+    @TableField("payUserName")
+    private String payUserName;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java b/cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java
index 712302d..21b1b1a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/GiftSearchDto.java
@@ -7,5 +7,5 @@
 public class GiftSearchDto {
     String name;
     String phone;
-    Integer id;
+    Long id;
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
index 630f55c..7f9aed5 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -33,7 +33,7 @@
     ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId);
 
     @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
-    public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId);
+    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId);
 
     @PostMapping("/base/pointMerchars/selectPointsMerchandiseById")
     public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
index d035236..18393df 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -1,5 +1,6 @@
 package com.dsh.account.feignclient.course;
 
+import com.dsh.account.dto.TCoursePackagePayment1;
 import com.dsh.account.feignclient.competition.model.BillingDataRequestVo;
 import com.dsh.account.feignclient.course.model.*;
 import com.dsh.account.model.BillingRequest;
@@ -50,7 +51,11 @@
 
 
     @PostMapping("/base/coursePack/getCoursePackagePaymentById")
-    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id);
+    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Long id);
+
+
+    @PostMapping("/base/coursePack/getCoursePackagePaymentById")
+    public TCoursePackagePayment1 getCoursePackagePaymentById1(@RequestBody Long id);
 
     @PostMapping("/base/coursePack/updatePaymentCoursePackage")
     void updatePaymentCoursePackage(@RequestBody TCoursePackagePayment coursePackagePayment);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
index eca7bd0..62a435b 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
@@ -8,10 +8,10 @@
 import java.util.List;
 
 @Data
-public class    PointDetailsVo {
+public class   PointDetailsVo {
 
     @ApiModelProperty(value = "记录id")
-    private Integer detailsId;
+    private Long detailsId;
 
     @ApiModelProperty(value = "图片集")
     private List<String> pics;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
index 4943df0..9591ece 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
@@ -35,7 +35,7 @@
     List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType);
 
 
-    PointDetailsVo queryRedemptionDetails(Integer detailsId);
+    PointDetailsVo queryRedemptionDetails(Long detailsId);
 
     Page<UserIntegral> listAll(Page<UserIntegral> userIntegralPage, IntegralListQuery integralListQuery);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index d9b18ef..599d6d4 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -375,7 +375,7 @@
         if(tAppUser.getState() == 2){
             return ResultUtil.error("您的账号已被冻结", "");
         }
-        password = Md5Util.MD5Encode(password, null);
+//        password = Md5Util.MD5Encode(password, null);
         if(!tAppUser.getPassword().equals(password)){
             return ResultUtil.error("账号密码错误", "");
         }
@@ -804,6 +804,7 @@
                         commodity.setShopIds(mcsClient.queryPointMerStoreIds(vicinityGood.getId()));
                         break;
                     default:
+
                         break;
                 }
                 goods.add(commodity);
@@ -825,6 +826,7 @@
                 }
                 commodity.setBelongsType(allCoupon.getUserPopulation());
                 commodity.setGoodsType(4);
+                commodity.setShopIds(ucponClient.getCouponStoreIds(allCoupon.getId()));
                 commodity.setNums(ucponClient.getRedeemedQuantity(allCoupon.getId()));
                 goods.add(commodity);
             }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index 2a17749..ed84781 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -44,6 +44,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -135,11 +136,21 @@
         student.setHeight(stu.getHeight());
         student.setWeight(stu.getWeight());
         BigDecimal bigDecimal = BigDecimal.valueOf(stu.getWeight());
-        BigDecimal multiply = bigDecimal.subtract(BigDecimal.valueOf(stu.getHeight())).multiply(bigDecimal.subtract(BigDecimal.valueOf(stu.getHeight())));
-        multiply.setScale(2);
-        student.setBmi(multiply.doubleValue());
+        double v = stu.getHeight() / 100;
+        double v1 = v * v;
+        BigDecimal bigDecimal1 = new BigDecimal(v1).setScale(2, RoundingMode.HALF_UP);
+        double v2 = bigDecimal.doubleValue() / bigDecimal1.doubleValue();
+        BigDecimal bigDecimal2 = new BigDecimal(v2).setScale(2, RoundingMode.HALF_UP);
+        student.setBmi(bigDecimal2.doubleValue());
         student.setInsertTime(new Date());
         student.setState(1);
+
+        List<TStudent> tStudents = this.baseMapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, appUserId));
+        if(tStudents.size()>0){
+            student.setIsDefault(2);
+        }else {
+            student.setIsDefault(1);
+        }
         this.baseMapper.insert(student);
 
         //同步信息到参赛人员信息中
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index 753b6a0..a5faf58 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -146,8 +146,9 @@
     }
 
     @Override
-    public PointDetailsVo queryRedemptionDetails(Integer detailsId) {
-        return mcClient.getSpecificsOfGoods(detailsId);
+    public PointDetailsVo queryRedemptionDetails(Long detailsId) {
+        PointDetailsVo specificsOfGoods = mcClient.getSpecificsOfGoods(detailsId);
+        return specificsOfGoods;
     }
 
     @Override
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index b916ad3..e706008 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -361,7 +361,7 @@
 
     @ResponseBody
     @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
-    public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId){
+    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId){
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         PointDetailsVo detailsVo = new PointDetailsVo();
         UserPointsMerchandise byId = upmseService.getById(speMercharsId);
@@ -382,7 +382,8 @@
             switch (pmdsServiceById.getType()){
                 case 1:
                 case 3:
-                    List<String> list2 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
+                    List<String> list10 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
+                    ArrayList<String> list2 = new ArrayList<>(list10);
                     list2.add(pmdsServiceById.getCover());
                     detailsVo.setPics(list2);
                     Collections.sort(detailsVo.getPics(), (s1, s2) -> {
@@ -397,7 +398,8 @@
                     break;
                 case 2:
                     CoursePackage coursePackage = cpClient.queryCoursePackageById(pmdsServiceById.getCoursePackageId());
-                    List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","));
+                    List<String> list11 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","));
+                    ArrayList<String> list1 = new ArrayList<>(list11);
                     list1.add(coursePackage.getCoverDrawing());
                     detailsVo.setPics(list1);
                     CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId());
@@ -414,7 +416,8 @@
                     break;
                 case 4:
                     Coupon coupon = iCouponService.getById(pmdsServiceById.getId());
-                    List<String> list3 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","));
+                    List<String> list13 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","));
+                    ArrayList<String> list3 = new ArrayList<>(list13);
                     list3.add(coupon.getCover());
                     detailsVo.setPics(list3);
                     Collections.sort(detailsVo.getPics(), (s1, s2) -> {
@@ -497,6 +500,9 @@
         if (list.size() >  0){
             storeIds = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
         }
+        if(storeIds.size()==0){
+            storeIds.add(-1);
+        }
         return storeIds;
     }
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
index ad681fb..e4fb80c 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -223,6 +223,9 @@
             if (list.size() > 0 ){
                 storeIds = list.stream().map(CouponStore::getStoreId).collect(Collectors.toList());
             }
+            if(storeIds.size()==0){
+                storeIds.add(-1);
+            }
             return storeIds;
         }catch (Exception e){
             e.printStackTrace();
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java
index 122dc9a..8b10e9c 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
 package com.dsh.activity.feignclient.account.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -30,6 +31,7 @@
     /**
      * 生日
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthday;
     /**
      * 性别(1=男,2=女)
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java
index b6f3a17..c7ede97 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
 package com.dsh.competition.feignclient.account.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -30,6 +31,7 @@
     /**
      * 生日
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthday;
     /**
      * 性别(1=男,2=女)
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
index 2aba9e5..c5340f4 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
@@ -103,9 +103,10 @@
         // 2.0
         ArrayList<Map<String,Object>> objects = new ArrayList<>();
         if(null != competition.getStoreId()){
-            HashMap<String, Object> map = new HashMap<>();
+
             String storeId = competition.getStoreId();
             for (String s : storeId.split(",")) {
+                HashMap<String, Object> map = new HashMap<>();
                 Store store = storeClient.queryStoreById(Integer.valueOf(s));
                 map.put("name",store.getName());
                 map.put("address",store.getAddress());
@@ -117,8 +118,9 @@
                     double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                     map.put("distance",wgs84);
                 }
+                objects.add(map);
             }
-            objects.add(map);
+
         }
         competitionInfo.setStoreInfos(objects);
 
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index d97e7c7..e26f7d6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.entity.*;
+import com.dsh.course.entity.TAppUser;
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.StudentClient;
 import com.dsh.course.feignclient.account.model.AppUser;
@@ -1204,9 +1205,13 @@
 
 
     @PostMapping("/base/coursePack/getCoursePackagePaymentById")
-    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Integer id){
-        return packagePaymentService.getById(id);
+    public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Long id){
+        TCoursePackagePayment byId = packagePaymentService.getById(id);
+        System.out.println("======byId=========="+byId);
+        return byId;
     }
+
+
     @PostMapping("/base/coursePack/delPaymentCoursePackage")
     public boolean delPaymentCoursePackage(@RequestBody Integer payId){
         return packagePaymentService.removeById(payId);
@@ -1324,7 +1329,7 @@
      */
     @ResponseBody
     @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById")
-    public TCoursePackagePayment queryCoursePackagePaymentById(@RequestBody Long id){
+    public TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id")Long id){
         return packagePaymentService.getById(id);
     }
 
@@ -1346,7 +1351,22 @@
     @ResponseBody
     @PostMapping("/coursePackagePayment/editCoursePackagePayment")
     public void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment){
+        coursePackagePayment.setAppUserId(null);
         packagePaymentService.updateById(coursePackagePayment);
+    }
+
+
+
+    /**
+     * 修改数据
+     * @param coursePackagePayment
+     */
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/editCoursePackagePayment1")
+    public void editCoursePackagePayment1(@RequestBody TCoursePackagePayment coursePackagePayment){
+        System.out.println("editCoursePackagePayment1====coursePackagePayment"+coursePackagePayment);
+//        coursePackagePayment.setCoursePackageId(null);
+        packagePaymentService.updateBytime(coursePackagePayment);
     }
 
 
@@ -1378,8 +1398,14 @@
             if (ToolUtil.isEmpty(packagePayment) || packagePayment.size()==0){
                 return ResultUtil.error("该用户未购买该课包");
             }
+            List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+                    .eq(CoursePackageScheduling::getCoursePackageId, Integer.valueOf(courseID))
+                    .like(CoursePackageScheduling::getClassDate, time)
+            );
+
             List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                     .in(CoursePackageStudent::getCoursePackagePaymentId,packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList()))
+                    .in(CoursePackageStudent::getCoursePackageSchedulingId,coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()))
                     .eq(CoursePackageStudent::getCoursePackageId,courseID)
                     .eq(CoursePackageStudent::getStudentId,stuId)
                     .eq(CoursePackageStudent::getAppUserId,appUserId)
@@ -1397,6 +1423,7 @@
             }
             return ResultUtil.success();
         }catch (Exception e){
+            e.printStackTrace();
             return ResultUtil.runErr();
         }
     }
@@ -1443,10 +1470,13 @@
                 String classEndTime = tCoursePackage.getClassEndTime();
                 String[] split1 = classEndTime.split(",");
                 ArrayList<String> strings = new ArrayList<>();
-                for (int i1 = 0; i1 < split.length; i1++) {
-                    String s = split[i1] + "-" + split1[i1];
-                    strings.add(s);
+                if(ToolUtil.isNotEmpty(classStartTime)){
+                    for (int i1 = 0; i1 < split.length; i1++) {
+                        String s = split[i1].substring(0,5) + "-" + split1[i1].substring(0,5);
+                        strings.add(s);
+                    }
                 }
+
                 detailsListVo.setTime(strings);
                 List<CoursePackagePaymentConfig> list2 = icppcService.list(new LambdaQueryWrapper<CoursePackagePaymentConfig>().eq(CoursePackagePaymentConfig::getCoursePackageId, tCoursePackage.getId()).orderByAsc(CoursePackagePaymentConfig::getCashPayment));
                 if (list2.size() > 0) {
@@ -1460,6 +1490,9 @@
                             .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                             .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                     );
+                    if(list3.size()==0){
+                        break;
+                    }
                     List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
                     if(collect2.size()==0){
                         collect2.add(-1l);
@@ -1471,12 +1504,13 @@
                                     in(CoursePackageStudent::getCoursePackagePaymentId, ids)
                     );
 
-                        detailsListVo.setType(1);
+                    detailsListVo.setType(1);
                     if(list4.size()>0){
                         Integer signInOrNot = list4.get(0).getSignInOrNot();
                         if(signInOrNot==2){
                             detailsListVo.setType(3);
                         }
+                        detailsListVo.setIsType(list4.get(0).getType());
                     }
 
                 } else {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
index 9fb040b..547367d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
@@ -56,6 +56,7 @@
     @ResponseBody
     @PostMapping("/coursePackageScheduling/editCoursePackageScheduling")
     public void editCoursePackageScheduling(@RequestBody CoursePackageScheduling coursePackageScheduling){
+        coursePackageScheduling.setCoursePackageId(null);
         coursePackageSchedulingService.updateById(coursePackageScheduling);
     }
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index 2bd56b6..41aa1b0 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -107,7 +107,9 @@
     @ResponseBody
     public List<SelectDto> getSelect(@RequestParam("payId")Long payId){
 
-        List<Integer> studentIds = paymentService.getStudentIds(payId);
+        TCoursePackagePayment byId = paymentService.getById(payId);
+
+        List<Integer> studentIds = paymentService.getStudentIds(payId,byId.getCoursePackageId(),byId.getAppUserId());
     System.out.println("=========studentIds=================>"+studentIds);
 
     if (studentIds.size()>0){
@@ -374,23 +376,6 @@
 
 
 
-            orinPay.setTotalClassHours(0);
-            orinPay.setLaveClassHours(0);
-            orinPay.setAppUserId(null);
-            orinPay.setStudentId(6);
-            paymentService.updateById(orinPay);
-
-
-            CourseCounsum courseCounsum = new CourseCounsum();
-            courseCounsum.setInsertTime(new Date());
-            courseCounsum.setReason("赠课");
-            courseCounsum.setNum(orinPay.getLaveClassHours());
-            courseCounsum.setChangeType(0);
-            courseCounsum.setPaymentId(orinPay.getId());
-            counsumService.save(courseCounsum);
-
-
-
             Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
             TCoursePackagePayment to = new TCoursePackagePayment();
             to.setStudentId(toClassDto.getToStudentId());
@@ -405,6 +390,28 @@
             paymentService.save(to);
 
 
+
+            orinPay.setTotalClassHours(0);
+            orinPay.setLaveClassHours(0);
+            orinPay.setAppUserId(null);
+            orinPay.setStatus(6);
+            paymentService.updateById(orinPay);
+
+
+
+
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setInsertTime(new Date());
+            courseCounsum.setReason("赠课");
+            courseCounsum.setNum(orinPay.getLaveClassHours());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setPaymentId(orinPay.getId());
+            counsumService.save(courseCounsum);
+
+
+
+
+
             CourseCounsum courseCounsum1 = new CourseCounsum();
             courseCounsum1.setInsertTime(new Date());
             courseCounsum1.setReason("赠课");
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
index 767ae15..b692440 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
@@ -72,6 +72,8 @@
     @TableField("insertTime")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
+    @TableField("type")
+    private Integer type;
 
 
     @Override
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/TAppUser.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java
similarity index 98%
rename from cloud-server-course/src/main/java/com/dsh/course/model/TAppUser.java
rename to cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java
index 4db748b..edd1d68 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/TAppUser.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java
@@ -1,4 +1,4 @@
-package com.dsh.course.model;
+package com.dsh.course.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -23,7 +23,7 @@
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @TableName("t_app_user")
-public class TAppUser {
+public class TAppUser{
 
     private static final long serialVersionUID = 1L;
 
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java
new file mode 100644
index 0000000..38e0806
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/TCoursePackagePayment1.java
@@ -0,0 +1,100 @@
+package com.dsh.course.entity.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class TCoursePackagePayment1 {
+
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 学员id
+     */
+    private Integer studentId;
+    /**
+     * 课包id
+     */
+    private Integer coursePackageId;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=玩湃币,4=积分,5=积分+微信,6=积分+支付宝)
+     */
+    private Integer payType;
+    /**
+     * 课时数
+     */
+    private Integer classHours;
+    /**
+     * 现金支付价格
+     */
+    private BigDecimal cashPayment;
+    /**
+     * 玩湃币价格/积分
+     */
+    private Integer playPaiCoin;
+    /**
+     * 总课时
+     */
+    private Integer totalClassHours;
+    /**
+     * 剩余课时
+     */
+    private Integer laveClassHours;
+    /**
+     * 缺课次数
+     */
+    private Integer absencesNumber;
+    /**
+     * 支付用户类型(1=用户,2=管理员)
+     */
+    private Integer payUserType;
+    /**
+     * 支付状态(1=待支付,2=已支付)
+     */
+    private Integer payStatus;
+    /**
+     * 第三方支付流水号
+     */
+    private String orderNumber;
+    /**
+     * 支付用户id
+     */
+    private Integer payUserId;
+    /**
+     * 课程状态(1=正常,2=已退课)
+     */
+    private Integer status;
+    /**
+     * 退课时间
+     */
+    private Date withdrawalTime;
+    /**
+     * 退课凭证
+     */
+    private String certificate;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    private Date insertTime;
+    /**
+     * 业务编号
+     */
+    private String code;
+    /**
+     * 原价
+     */
+    private Double originalPrice;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
index 10ace86..9a9704a 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java
@@ -1,5 +1,6 @@
 package com.dsh.course.feignclient.account;
 
+import com.dsh.course.entity.TAppUser;
 import com.dsh.course.entity.dto.SelectDto;
 import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java
index 11a8024..9f8687f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
 package com.dsh.course.feignclient.account.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -30,6 +31,7 @@
     /**
      * 生日
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthday;
     /**
      * 性别(1=男,2=女)
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
index 6cf9d59..03f1be1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -5,6 +5,7 @@
 import com.dsh.course.entity.TCoursePackagePayment;
 import com.dsh.course.model.QueryRegistrationRecord;
 import com.dsh.course.model.BillingRequest;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -61,7 +62,9 @@
 
     void updateUseTime(@Param("id")Long id,  @Param("date") Date date);
 
-    List<Integer> getStudentIds(@Param("id")Long payId);
+    List<Integer> getStudentIds(@Param("id")Long payId,@Param("classId")Integer classId,@Param("appId")Integer appId);
 
     boolean updateHoursById(@Param("id") Long id, @Param("i") int i);
+
+    void updateBytime(@Param("coursePackagePayment") TCoursePackagePayment coursePackagePayment);
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java b/cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java
index ba9c83a..befd7af 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java
@@ -20,4 +20,6 @@
     private Integer num;
 
     private Double money;
+
+    private Integer isType=1;
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index d5ef124..e69e432 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -10,6 +10,7 @@
 import com.dsh.course.model.vo.request.*;
 import com.dsh.course.model.vo.response.*;
 import com.dsh.course.util.ResultUtil;
+import io.swagger.models.auth.In;
 
 import java.util.Date;
 import java.util.List;
@@ -119,7 +120,7 @@
 
     void updateUseTime(Long id, Date date);
 
-    List<Integer> getStudentIds(Long payId);
+    List<Integer> getStudentIds(Long payId,Integer classId,Integer appId);
 
     boolean updateHoursById(TCoursePackagePayment byId, int i);
 
@@ -128,6 +129,8 @@
 
     int changeState(CoursePackagePayDTO dto);
 
+    void updateBytime(TCoursePackagePayment coursePackagePayment);
+
     List<RegisterOrderVO> listAllRegister(RegisterOrderQuery query);
 
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
index 7715d66..3bf1d28 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
@@ -53,11 +53,16 @@
             Long id = Long.valueOf(map.get("id").toString());
             int count = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
 //            map.put("registered", count);
-            int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("signInOrNot", 1));
-            int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("signInOrNot", 2));
+            int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1));
+            int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 0));
             map.put("registered", count2);
             map.put("actualArrival", count1);
             map.put("nonArrival", count - count1);
+//            Integer totalClassHours = (Integer) map.get("totalClassHours");
+//            Integer laveClassHours = (Integer) map.get("laveClassHours");
+//            map.put("already",totalClassHours-laveClassHours);
+
+
         }
         return list;
     }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
index ad47688..9c3a41b 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.course.entity.CoursePackageStudent;
 import com.dsh.course.entity.StudentClassInfo;
+import com.dsh.course.entity.TAppUser;
 import com.dsh.course.entity.dto.ClassListDto;
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.StudentClient;
@@ -71,7 +72,7 @@
         for (Map<String, Object> map : list) {
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer student_Id = Integer.valueOf(map.get("studentId").toString());
-            AppUser appUser = appUserClient.queryAppUser(appUserId);
+            TAppUser appUser = appUserClient.queryAppUser1(appUserId);
             Student student = studentClient.queryStudentById(student_Id);
             map.put("userName", appUser.getName());
             map.put("phone", student.getPhone());
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 1e78c40..0a0f74a 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.course.entity.*;
+import com.dsh.course.entity.TAppUser;
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.CoachClient;
 import com.dsh.course.feignclient.account.StudentClient;
@@ -33,6 +34,7 @@
 import com.dsh.course.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -130,6 +132,11 @@
             list.add(value);
         }
         return cpConfigMapper.changeState(list,dto.getPayUserName(),dto.getUserId());
+    }
+
+    @Override
+    public void updateBytime(TCoursePackagePayment coursePackagePayment) {
+        this.baseMapper.updateBytime(coursePackagePayment);
     }
 
     @Override
@@ -740,7 +747,8 @@
             Long id = Long.valueOf(map.get("id").toString());
             Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
             Integer studentId = Integer.valueOf(map.get("studentId").toString());
-            AppUser appUser = appuClient.queryAppUser(appUserId);
+
+            TAppUser appUser = appuClient.queryAppUser1(appUserId);
             map.put("userName", null != appUser ? appUser.getName() : "");
             map.put("phone", null != appUser ? appUser.getPhone() : "");
             Student student = studentClient.queryStudentById(studentId);
@@ -1003,6 +1011,7 @@
                     student1.setSignInOrNot(0);
                     student1.setReservationStatus(1);
                     student1.setInsertTime(new Date());
+                    student1.setType(1);
                     cpsMapper.insert(student1);
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -1049,8 +1058,8 @@
     }
 
     @Override
-    public List<Integer> getStudentIds(Long payId) {
-       return  this.baseMapper.getStudentIds(payId);
+    public List<Integer> getStudentIds(Long payId, Integer classId, Integer appId) {
+       return  this.baseMapper.getStudentIds(payId,classId,appId);
     }
 
     @Override
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index ee64ebb..5323555 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -143,9 +143,11 @@
             ArrayList<String> classTime = new ArrayList<>();
             String[] split = classStartTime.split(",");
             String[] split3 = classEndTime.split(",");
-            for (int i = 0; i < split.length; i++) {
-                String s = split[i] + "-" +  split3[i];
-                classTime.add(s);
+            if(ToolUtil.isNotEmpty(classStartTime)) {
+                for (int i = 0; i < split.length; i++) {
+                    String s = split[i].substring(0,5) + "-" + split3[i].substring(0,5);
+                    classTime.add(s);
+                }
             }
             coursePackageListVo.setClassStartTime(classTime);
             coursePackageListVo.setType(coursePackage.getType());
@@ -283,6 +285,7 @@
         }
         return listVos;
     }
+
 
 
     @Override
@@ -484,7 +487,11 @@
             TCoursePackage coursePackage = this.getById(id);
             CoursePackageInfo coursePackageInfo = new CoursePackageInfo();
             coursePackageInfo.setId(id);
-            coursePackageInfo.setTime(coursePackage.getStartTime()+"-"+coursePackage.getEndTime());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
+        if(coursePackage.getType()==2){
+
+            coursePackageInfo.setTime(format.format(coursePackage.getStartTime())+"-"+format.format(coursePackage.getEndTime()));
+        }
             coursePackageInfo.setCoverDrawing(coursePackage.getCoverDrawing());
             coursePackageInfo.setName(coursePackage.getName());
             Store store = storeClient.queryStoreById(coursePackage.getStoreId());
@@ -508,10 +515,13 @@
             ArrayList<String> classTime = new ArrayList<>();
             String[] split4 = classStartTime.split(",");
             String[] split3 = classEndTime.split(",");
-            for (int i = 0; i < split4.length; i++) {
-                String s = split4[i] + "-" +  split3[i];
-                classTime.add(s);
+            if(ToolUtil.isNotEmpty(classStartTime)){
+                for (int i = 0; i < split4.length; i++) {
+                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
+                    classTime.add(s);
+                }
             }
+
             coursePackageInfo.setTimes(classTime);
             coursePackageInfo.setType(coursePackage.getType());
 
@@ -662,13 +672,27 @@
         String[] students = paymentCourseVo.getStudentIds().split(";");
         for (CoursePackagePaymentConfigVo coursePackagePaymentConfigVo : list) {
             if(paymentCourseVo.getCoursePackagePaymentConfigId().compareTo(coursePackagePaymentConfigVo.getId()) == 0){
+                CoursePackagePaymentConfig byId = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
+                Double cashPayment = byId.getCashPayment();
                 Integer payType = coursePackagePaymentConfigVo.getPayType();
-                if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
-                    return ResultUtil.error("支付方式错误,请刷新后重试");
+                Integer playPaiCoin1 = byId.getPlayPaiCoin();
+                if(cashPayment!=null || cashPayment>0){
+                    payType=1;
                 }
-                if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
-                    return ResultUtil.error("支付方式错误,请刷新后重试");
+                if(playPaiCoin1!=null || playPaiCoin1>0){
+                    payType=2;
                 }
+
+                if(cashPayment!=null && cashPayment>0 && playPaiCoin1 !=null && playPaiCoin1>0){
+                }else {
+                    if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
+                        return ResultUtil.error("支付方式错误,请刷新后重试");
+                    }
+                    if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
+                        return ResultUtil.error("支付方式错误,请刷新后重试");
+                    }
+                }
+
                 Double paymentPrice = coursePackagePaymentConfigVo.getPaymentPrice();//支付价
                 paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                 Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币
@@ -1215,74 +1239,76 @@
         try {
             coursePackage.setAuditStatus(2);
             this.baseMapper.insert(coursePackage);
-            //生成排课数据
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
-            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
-            String value = coursePackage.getClassStartTime();
-            String value1 = coursePackage.getClassEndTime().trim();
 
-            String[] star = value.split(",");
-            String[] end = value1.split(",");
+            if (coursePackage.getClassStartTime()!=null&&coursePackage.getClassStartTime()!="") {
+                //生成排课数据
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
+                List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
+                String value = coursePackage.getClassStartTime();
+                String value1 = coursePackage.getClassEndTime().trim();
 
-            for (int i = 0; i < star.length; i++) {
+                String[] star = value.split(",");
+                String[] end = value1.split(",");
+
+                for (int i = 0; i < star.length; i++) {
 
 //                int index = star[i].indexOf(",");
 //
 //
 //                String result = value.substring(0, index).trim();
-                String classStartTime = star[i];
-                String[] split = classStartTime.split(":");
+                    String classStartTime = star[i];
+                    String[] split = classStartTime.split(":");
 //            String value1 = en;
-                int index1 = value1.indexOf(",");
+                    int index1 = value1.indexOf(",");
 //                String result1 = value.substring(0, index1).trim();
-                String classEndTime = end[i];
-                String[] split1 = classEndTime.split(":");
-                Calendar s = Calendar.getInstance();
-                s.setTime(date);
-                s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
-                s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
-                s.set(Calendar.SECOND, 0);
-
-                Calendar e = Calendar.getInstance();
-                e.setTime(date);
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
-                long timeInMillis = e.getTimeInMillis();
-
-                while (true){
-                    int w = s.get(Calendar.DAY_OF_WEEK);
-                    WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
-                    if(list.contains(weekEnum.getChineseName())){
-                        Calendar classDate = Calendar.getInstance();
-                        classDate.setTime(s.getTime());
-                        classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
-                        classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
-                        classDate.set(Calendar.SECOND, 0);
-
-                        Calendar endDate = Calendar.getInstance();
-                        endDate.setTime(s.getTime());
-                        endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
-                        endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
-                        endDate.set(Calendar.SECOND, 0);
-
-                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-                        coursePackageScheduling.setCoursePackageId(coursePackage.getId());
-                        coursePackageScheduling.setClassDate(classDate.getTime());
-                        coursePackageScheduling.setEndDate(endDate.getTime());
-                        coursePackageScheduling.setStatus(1);
-                        coursePackageSchedulingService.save(coursePackageScheduling);
-                    }
+                    String classEndTime = end[i];
+                    String[] split1 = classEndTime.split(":");
+                    Calendar s = Calendar.getInstance();
+                    s.setTime(date);
                     s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                    if(s.getTimeInMillis() > timeInMillis){
-                        break;
+                    s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
+                    s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
+                    s.set(Calendar.SECOND, 0);
+
+                    Calendar e = Calendar.getInstance();
+                    e.setTime(date);
+                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
+                    long timeInMillis = e.getTimeInMillis();
+
+                    while (true) {
+                        int w = s.get(Calendar.DAY_OF_WEEK);
+                        WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
+                        if (list.contains(weekEnum.getChineseName())) {
+                            Calendar classDate = Calendar.getInstance();
+                            classDate.setTime(s.getTime());
+                            classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
+                            classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
+                            classDate.set(Calendar.SECOND, 0);
+
+                            Calendar endDate = Calendar.getInstance();
+                            endDate.setTime(s.getTime());
+                            endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
+                            endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
+                            endDate.set(Calendar.SECOND, 0);
+
+                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                            coursePackageScheduling.setCoursePackageId(coursePackage.getId());
+                            coursePackageScheduling.setClassDate(classDate.getTime());
+                            coursePackageScheduling.setEndDate(endDate.getTime());
+                            coursePackageScheduling.setStatus(1);
+                            coursePackageSchedulingService.save(coursePackageScheduling);
+                        }
+                        s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
+                        if (s.getTimeInMillis() > timeInMillis) {
+                            break;
+                        }
                     }
+
                 }
 
             }
-
-
 
             return coursePackage.getId();
         }catch (Exception e){
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
index fdf9e32..8f0c860 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
@@ -17,14 +17,14 @@
 
 
     <select id="queryCoursePackageSchedulingList" resultType="map">
-        select
-        CAST(id AS CHAR(20)) as id,
-        DATE_FORMAT(classDate, '%Y-%m-%d') as classDate,
-        courseId,
-        `status`,
-        cancelClasses,
-        deductClassHour,
-        integral
-        from t_course_package_scheduling where coursePackageId = #{item.coursePackageId} order by classDate desc
+        SELECT
+            CAST(id AS CHAR(20)) AS id,
+            CONCAT(DATE_FORMAT(classDate, '%Y-%m-%d %H:%i'), '-20:00') AS classDate,
+            courseId,
+            `status`,
+            cancelClasses,
+            deductClassHour,
+            integral
+        FROM t_course_package_scheduling where coursePackageId = #{item.coursePackageId} order by classDate desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
index 74a7466..78a72a0 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -132,16 +132,14 @@
     <select id="getStudentIds" resultType="java.lang.Integer">
         SELECT studentId
         FROM t_course_package_payment
-        WHERE appUserId = (
-            SELECT appUserId
-            FROM t_course_package_payment
-            WHERE id = #{id}
-        ) AND id != #{id} and coursePackageId=(
-				 SELECT coursePackageId
-            FROM t_course_package_payment
-            WHERE id = #{id}
-				)
+        WHERE appUserId = #{appId} AND id != #{id} and coursePackageId=#{classId}
 
 
     </select>
+
+    <update id="updateBytime">
+        update  t_course_package_payment
+            set laveClassHours = #{coursePackagePayment.laveClassHours},absencesNumber=#{coursePackagePayment.absencesNumber}
+        where id = #{coursePackagePayment.id}
+    </update>
 </mapper>
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
index eb65fd2..8d09904 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -6,10 +6,7 @@
 import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
 import com.dsh.guns.modular.system.model.*;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
@@ -75,7 +72,7 @@
      * @return
      */
     @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById")
-    TCoursePackagePayment queryCoursePackagePaymentById(Long id);
+    TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id")Long id);
 
 
     /**
@@ -85,6 +82,9 @@
     @PostMapping("/coursePackagePayment/editCoursePackagePayment")
     void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment);
 
+    @PostMapping("/coursePackagePayment/editCoursePackagePayment1")
+    void editCoursePackagePayment1(@RequestBody TCoursePackagePayment coursePackagePayment);
+
 
     @PostMapping("/coursePackagePayment/CountqueryByClassId")
     Integer queryByClassId(Integer id);
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 d7a784b..b29cf19 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
@@ -231,6 +231,10 @@
 
 
         System.out.println("========couponIds=========>"+list4.get(0).getCouponIds());
+
+        model.addAttribute("cashPayment", list4.get(0).getCashPayment() == 0 ? false : true);
+        model.addAttribute("playPaiCoin", list4.get(0).getPlayPaiCoin() == 0 ? false : true);
+
         model.addAttribute("couponIds", list4.get(0).getCouponIds());
         model.addAttribute("coursePackagePaymentConfig", list4.remove(0));
         for (int i = 0; i < list4.size(); i++) {
@@ -239,13 +243,14 @@
 
         model.addAttribute("coursePackagePaymentConfigs", list4);
         model.addAttribute("index", 1);
+                if (list4.size()!=0) {
         CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
-//        if (list4.size()!=0) {
+
             model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
             model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
             System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
 //        model.addAttribute("couponIds", "3,2");
-//        }
+        }
         return PREFIX + "coursePackage_edit.html";
     }
 
@@ -324,6 +329,10 @@
 
 
         System.out.println("========couponIds=========>"+list4.get(0).getCouponIds());
+
+        model.addAttribute("cashPayment", list4.get(0).getCashPayment() == 0 ? false : true);
+        model.addAttribute("playPaiCoin", list4.get(0).getPlayPaiCoin() == 0 ? false : true);
+
         model.addAttribute("couponIds", list4.get(0).getCouponIds());
         model.addAttribute("coursePackagePaymentConfig", list4.remove(0));
         for (int i = 0; i < list4.size(); i++) {
@@ -332,13 +341,14 @@
 
         model.addAttribute("coursePackagePaymentConfigs", list4);
         model.addAttribute("index", 1);
-        CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
-//        if (list4.size()!=0) {
-        model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
-        model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
-        System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
+        if (list4.size()!=0) {
+            CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0);
+
+            model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true);
+            model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true);
+            System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
 //        model.addAttribute("couponIds", "3,2");
-//        }
+        }
         return PREFIX + "coursePackage_info.html";
     }
 
@@ -460,7 +470,39 @@
         model.addAttribute("times", strings);
         model.addAttribute("counts", counts);
 
+
         return PREFIX + "classRecord.html";
+    }
+
+    /**
+     * 假期跳转到上课记录列表页
+     * @param model
+     * @param id
+     * @return
+     */
+    @GetMapping("/openClassRecord1")
+    public String openClassRecord1(Model model, Integer id){
+        TCoursePackage tCoursePackage = coursePackageClient.queryById(id);
+        String[] start = tCoursePackage.getClassStartTime().split(",");
+        String[] end = tCoursePackage.getClassEndTime().split(",");
+        Integer counts = packagePaymentClient.queryByClassId(id);
+
+
+        List<String> strings = new ArrayList<>();
+        for (int i = 0; i <start.length ; i++) {
+            String outTime = start[i] +"-" +end[0];
+            strings.add(outTime);
+        }
+
+        TStore store = storeService.getById(tCoursePackage.getStoreId());
+        Coach coach = coachClient.queryCoachById(tCoursePackage.getCoachId());
+        model.addAttribute("item", tCoursePackage);
+        model.addAttribute("store", store);
+        model.addAttribute("coach", coach);
+        model.addAttribute("times", strings);
+        model.addAttribute("counts", counts);
+
+        return PREFIX + "classRecord2.html";
     }
 
 
@@ -682,8 +724,9 @@
             String jsonString = jsonArray.getString(i);
             String[] split = jsonString.split(" - ");
             first.add(split[0]);
-            second.add(split[1]);
-
+            if (split.length>1) {
+                second.add(split[1]);
+            }
         }
         String firstString = String.join(",",first);
         String secondString = String.join(",",second);
@@ -928,13 +971,14 @@
 
     /**
      * 补课操作
-     * @param coursePackagePaymentId
+     * @param id
      * @return
      */
     @ResponseBody
     @PostMapping("/makeUpMissedLessons")
-    public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId){
-        return coursePackageService.makeUpMissedLessons(coursePackagePaymentId);
+    public ResultUtil makeUpMissedLessons(Long id){
+        System.out.println("==========coursePackage补课PaymentId======"+id);
+        return coursePackageService.makeUpMissedLessons(id);
     }
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index 3598333..e9d7090 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -119,6 +119,14 @@
         String roleid = UserExt.getUser().getRoleid();
         return PREFIX + "TShop_edit_three.html";
     }
+    @RequestMapping("/tShop_add_two1")
+    public String tCompetitionAddTwo1(Integer id,Model model) {
+        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+        model.addAttribute("list",list);
+        model.addAttribute("id",id);
+        String roleid = UserExt.getUser().getRoleid();
+        return PREFIX + "TShop_add_two.html";
+    }
 
 
     /**
@@ -127,20 +135,27 @@
     @RequestMapping("/tShop_update/{id}")
     public String tCityUpdate(@PathVariable Integer id, Model model) {
         TStore byId = storeService.getById(id);
+        System.out.println("======byId========="+byId);
         model.addAttribute("item",byId);
         List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
 
 //        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
         TOperatorCity one = operatorCityService.getOne(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1));
         List<TOperatorCity> ones = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, byId.getOperatorId()).eq(TOperatorCity::getType, 1));
-        model.addAttribute("list",ones);
-        List<TOperatorCity> list3 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, one.getId()).eq(TOperatorCity::getType, 2));
-        if(list3.size()>0){
+
+        if(ones.size()>0){
+            model.addAttribute("list",ones);
+            List<TOperatorCity> list3 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, one.getId()).eq(TOperatorCity::getType, 2));
             model.addAttribute("list1",list3);
+            System.out.println("===list3======="+list3);
+
         }else {
+            List<TCity> list2 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+            model.addAttribute("list",list2);
             TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
             List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one1.getId()));
             model.addAttribute("list1",list1);
+            System.out.println("===list1======="+list1);
         }
         CityListQuery cityListQuery = new CityListQuery();
         cityListQuery.setOffset(1);
@@ -289,25 +304,48 @@
 
     @RequestMapping(value = "/add")
     @ResponseBody
-    public Object list(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) {
+    public Object list(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon,String pCode1,String cCode1) {
         try {
-            if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
-                TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
-                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
-                tStore.setProvince(one.getName());
-                tStore.setProvinceCode(one.getCode());
-                List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
-                if(list.size()>0){
-                    TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
-                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
-                    tStore.setCity(one1.getName());
-                    tStore.setCityCode(one1.getCode());
+            if(yyId==null){
+                yyId=0;
+            }
+            if(yyId!=0) {
+                List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, yyId));
+                if(list1.size()>0){
+                    if (ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
+                        TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
+                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
+                        tStore.setProvince(one.getName());
+                        tStore.setProvinceCode(one.getCode());
+                        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
+                        if (list.size() > 0) {
+                            TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
+                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                            tStore.setCity(one1.getName());
+                            tStore.setCityCode(one1.getCode());
+                        } else {
+                            TCity byId1 = cityService.getById(tStore.getCityCode());
+                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                            tStore.setCity(one1.getName());
+                            tStore.setCityCode(one1.getCode());
+                        }
+                    }
                 }else {
-                    TCity byId1 = cityService.getById(tStore.getCityCode());
-                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                    TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
+                    tStore.setProvince(one.getName());
+                    tStore.setProvinceCode(one.getCode());
+                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
                     tStore.setCity(one1.getName());
                     tStore.setCityCode(one1.getCode());
                 }
+
+            }else {
+                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, pCode1));
+                tStore.setProvince(one.getName());
+                tStore.setProvinceCode(one.getCode());
+                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cCode1));
+                tStore.setCity(one1.getName());
+                tStore.setCityCode(one1.getCode());
             }
             tStore.setStartTime(time.split(" - ")[0]);
             tStore.setEndTime(time.split(" - ")[1]);
@@ -351,27 +389,53 @@
 
     @RequestMapping(value = "/update")
     @ResponseBody
-    public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon) {
+    public Object update(TStore tStore,String time,String userName,String userPhone,String ids,Integer type,Integer yyId,String lat,String lon,String pCode1,String cCode1) {
         try {
-            TStore byId = storeService.getById(tStore.getId());
+            TStore byIdc = storeService.getById(tStore.getId());
 
-            if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
-                TOperatorCity tOperatorCity = operatorCityService.getById(tStore.getProvinceCode());
-                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tOperatorCity.getCode()));
-                tStore.setProvince(one.getName());
-                tStore.setProvinceCode(one.getCode());
-                List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, tOperatorCity.getId()).eq(TOperatorCity::getType, 2));
-                if(list.size()>0){
-                    TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
-                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
-                    tStore.setCity(one1.getName());
-                    tStore.setCityCode(one1.getCode());
+            if(yyId==null){
+                yyId=0;
+            }
+            if(tStore.getType()==1){
+                yyId=0;
+            }
+            if(yyId!=0) {
+                List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, yyId));
+                if(list1.size()>0){
+                    if (ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
+                        TOperatorCity byId = operatorCityService.getById(tStore.getProvinceCode());
+                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getCode()));
+                        tStore.setProvince(one.getName());
+                        tStore.setProvinceCode(one.getCode());
+                        List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, byId.getId()).eq(TOperatorCity::getType, 2));
+                        if (list.size() > 0) {
+                            TOperatorCity byId1 = operatorCityService.getById(tStore.getCityCode());
+                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                            tStore.setCity(one1.getName());
+                            tStore.setCityCode(one1.getCode());
+                        } else {
+                            TCity byId1 = cityService.getById(tStore.getCityCode());
+                            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                            tStore.setCity(one1.getName());
+                            tStore.setCityCode(one1.getCode());
+                        }
+                    }
                 }else {
-                    TCity byId1 = cityService.getById(tStore.getCityCode());
-                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId1.getCode()));
+                    TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
+                    tStore.setProvince(one.getName());
+                    tStore.setProvinceCode(one.getCode());
+                    TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
                     tStore.setCity(one1.getName());
                     tStore.setCityCode(one1.getCode());
                 }
+
+            }else {
+                        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getProvinceCode()));
+                tStore.setProvince(one.getName());
+                tStore.setProvinceCode(one.getCode());
+                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, tStore.getCityCode()));
+                tStore.setCity(one1.getName());
+                tStore.setCityCode(one1.getCode());
             }
             tStore.setStartTime(time.split(" - ")[0]);
             tStore.setEndTime(time.split(" - ")[1]);
@@ -379,9 +443,9 @@
             tStore.setType(type);
             tStore.setOperatorId(yyId);
             if(ToolUtil.isEmpty(tStore.getCoverDrawing())){
-                tStore.setCoverDrawing(byId.getCoverDrawing());
+                tStore.setCoverDrawing(byIdc.getCoverDrawing());
             }
-            User user = userMapper.selectById(byId.getStoreStaffId());
+            User user = userMapper.selectById(byIdc.getStoreStaffId());
             List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone).ne(User::getId,tStore.getStoreStaffId()));
             if(users.size()>0){
                 return "5001";
@@ -479,7 +543,13 @@
     public Object onChange1(Integer oneId) {
         try {
             List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1));
-            return list;
+            if(list.size()==0){
+                List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+                return list1;
+            }else {
+
+                return list;
+            }
         }catch (Exception e){
             e.printStackTrace();
             return ERROR;
@@ -492,6 +562,13 @@
         try {
             List<TOperatorCity> list1 = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 1));
             List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getPid, oneId).eq(TOperatorCity::getType, 2));
+
+            // 若是全国 为空 去找这个省下面的市
+            if(list1.size()==0){
+                TCity byId = cityService.getById(oneId);
+                List<TCity> list2 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, byId.getId()));
+                return list2;
+            }
             if(list.size()==0){
                 TOperatorCity tOperatorCity = list1.get(0);
                 Integer code = tOperatorCity.getCode();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
index 2883638..4ff330d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -189,13 +189,12 @@
             }
         }
         User user = userService.getByAccount(username);
-        // todo 记得该回去!!!!!!!!!!
-//        password = AESUtils.decrypt(password);
-//        String s = MD5.md5(password);
-//        if(!user.getPassword().equals(s)){
-//            model.addAttribute("tips", "账号密码错误");
-//            return "/login.html";
-//        }
+        password = AESUtils.decrypt(password);
+        String s = MD5.md5(password);
+        if(!user.getPassword().equals(s)){
+            model.addAttribute("tips", "账号密码错误");
+            return "/login.html";
+        }
 
 
         GetTokenRequest tokenRequest = new GetTokenRequest();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
index 7ac3954..4af6710 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -194,6 +194,9 @@
             payment.setId(Long.valueOf(tCoursePackage.getId()));
 
             BigDecimal cashPayment = payment.getCashPayment();
+            if (cashPayment==null){
+                cashPayment = BigDecimal.ZERO;
+            }
             Integer totalClassHours = payment.getTotalClassHours();
             BigDecimal result =  new BigDecimal(0);
             if (totalClassHours!=0) {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java
index 61424c4..505f15b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/GiftSearchDto.java
@@ -7,5 +7,5 @@
 public class GiftSearchDto {
     String name;
     String phone;
-    Integer id;
+    Long id;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
index 0916ff1..26908f5 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
@@ -4,6 +4,6 @@
 
 @Data
 public class SelectDto {
-    Integer id;
+    Long id;
     String value;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
index 91de37d..1f11123 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -356,7 +356,6 @@
         return coursePackageStudentClient.queryCoursePackageStudentList(queryCoursePackageStudentList);
     }
 
-
     /**
      * 取消预约
      * @param id
@@ -368,9 +367,19 @@
         if(coursePackageStudent.getSignInOrNot() == 1){
             return ResultUtil.error("无法取消预约");
         }
+//        TCoursePackagePayment payment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
+//        payment.setAbsencesNumber(payment.getAbsencesNumber()+1);
+//        coursePackagePaymentClient.editCoursePackagePayment(payment);
+
+
         coursePackageStudent = new CoursePackageStudent();
         coursePackageStudent.setId(id);
         coursePackageStudent.setReservationStatus(0);
+
+
+
+        coursePackageStudent.getCoursePackagePaymentId();
+
         coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
         return ResultUtil.success();
     }
@@ -462,17 +471,19 @@
             }
             TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
 
-            if(tCoursePackagePayment.getLaveClassHours() - deductClassHour<0){
-                coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
-                continue;
+            if (deductClassHour!=null) {
+                if (tCoursePackagePayment.getLaveClassHours() - deductClassHour < 0) {
+                    coursePackageStudentClient.editCoursePackageStudent(coursePackageStudent);
+                    continue;
+                }
+                tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
             }
-            tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - deductClassHour);
-
 
             if(coursePackageStudent.getSignInOrNot() == 0){
                 tCoursePackagePayment.setAbsencesNumber(tCoursePackagePayment.getAbsencesNumber() + 1);
             }
-            coursePackagePaymentClient.editCoursePackagePayment(tCoursePackagePayment);
+            System.out.println("====tCoursePackagePayment====="+tCoursePackagePayment);
+            coursePackagePaymentClient.editCoursePackagePayment1(tCoursePackagePayment);
 
             CancelledClasses cancelledClasses = new CancelledClasses();
             cancelledClasses.setType(1);
@@ -480,7 +491,8 @@
             cancelledClasses.setCoursePackagePaymentId(coursePackageStudent.getCoursePackagePaymentId());
             cancelledClasses.setCoursePackageSchedulingId(coursePackageStudent.getCoursePackageSchedulingId());
             cancelledClasses.setVoucher(cancelClasses);
-            cancelledClasses.setCancelledClassesNumber(deductClassHour);
+            if (deductClassHour!=null) {
+            cancelledClasses.setCancelledClassesNumber(deductClassHour);}
             cancelledClasses.setInsertTime(new Date());
             cancelledClassesClient.addCancelledClasses(cancelledClasses);
         }
@@ -587,6 +599,7 @@
     @Override
     public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId) {
         TCoursePackagePayment coursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackagePaymentId);
+        System.out.println("=========coursePackagePayment=====>"+coursePackagePayment);
         if(coursePackagePayment.getStatus() == 2){
             return ResultUtil.error("该学员已退课");
         }
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index 7a8774c..3b40dc0 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -17,8 +17,7 @@
     </delete>
 
     <select id="listAll" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
-        select t1.*,t2.name userName,t2.phone userPhone from t_store t1 left join sys_user t2 on t1.storeStaffId = t2.id
-
+        select t1.*,t2.name userName,t2.phone userPhone,t3.name yysName from t_store t1 left join sys_user t2 on t1.storeStaffId = t2.id left  join t_operator t3 on t1.operatorId = t3.id
         where 1=1
         <if test="provinceCode !=null and provinceCode !=''">
             and t1.provinceCode = #{provinceCode}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html
index 38673a9..7e6c1c8 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord.html
@@ -46,7 +46,7 @@
                             <#button name="发布课后练习" icon="fa-refresh" clickFun="ClassRecord.afterClassExercises()" space="true"/>
                             <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord(${item.codeTime})" space="true"/>
                             <#button name="查看消课记录" icon="fa-refresh" clickFun="ClassRecord.lookCancellationRecord()" space="true"/>
-                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>
+<!--                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>-->
                         </div>
                         <#table id="managerTable"/>
                     </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html
new file mode 100644
index 0000000..f400693
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/classRecord2.html
@@ -0,0 +1,68 @@
+@layout("/common/_container.html"){
+<link rel="stylesheet" href="${ctxPath}/layui/css/layui.css"  media="all">
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <h3>课包信息</h3>
+                            <input type="hidden" id="id" value="${item.id}">
+                            <input type="hidden" id="codeTime" value="${item.codeTime}">
+
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;">所属门店:</label>
+                                <span class="col-sm-2" style="text-align: left;">${store.name}</span>
+                            </div>
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;">课包名称:</label>
+                                <span class="col-sm-1" style="text-align: left;" id="name">${item.name}</span>
+                            </div>
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;">授课教师:</label>
+                                <span class="col-sm-2" style="text-align: left;">${coach.name!}</span>
+                            </div>
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;">已报名学员:</label>
+                                <span class="col-sm-2" style="text-align: left;">${counts}</span>
+                            </div>
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;">上课时间:</label>
+                                <span class="col-sm-2" style="text-align: left;">${item.classWeeks}</span>
+                            </div>
+
+                            @for(time in times){
+                            <div class="form-group" style="height: 10px;">
+                                <label class="col-sm-1 control-label" style="text-align: right;"></label>
+                                <span class="col-sm-2" style="text-align: left;">${time}</span>
+                            </div>
+                            @}
+
+                        </div>
+                        <div class="hidden-xs" id="managerTableToolbar" role="group">
+                            <#button name="查看学员" icon="fa-plus" clickFun="ClassRecord.classRecord()"/>
+                            <#button name="取消本次" icon="fa-edit" clickFun="ClassRecord.cancelClassSchedule()" space="true"/>
+                            <#button name="发布课后练习" icon="fa-refresh" clickFun="ClassRecord.afterClassExercises()" space="true"/>
+                            <#button name="上传消课记录" icon="fa-refresh" clickFun="ClassRecord.cancellationRecord(${item.codeTime})" space="true"/>
+                            <#button name="查看消课记录" icon="fa-refresh" clickFun="ClassRecord.lookCancellationRecord()" space="true"/>
+<!--                            <#button name="手动预约" icon="fa-refresh" clickFun="ClassRecord.manualReservation()" space="true"/>-->
+                        </div>
+                        <#table id="managerTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/coursePackage/classRecord2.js"></script>
+<script src="${ctxPath}/layui/layui.js" charset="utf-8"></script>
+<script>
+    laydate.render({
+        elem: '#beginTime'
+    });
+    laydate.render({
+        elem: '#endTime'
+    });
+</script>
+@}
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 d2a1140..9961f04 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
@@ -193,9 +193,9 @@
                     </div>
                 </div>
                 <div class="form-group">
-                    <label class="col-sm-3 control-label">*课时有效期:</label>
-                    <div class="col-sm-4">
-                        购买后 <input id="validDays" name="validDays" type="number" min="0" placeholder="天数" style="width: 80px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 天内有效
+                    <label class="col-sm-3 control-label"${type == 2||type == 3 ? 'hidden=hidden' : ''}>*课时有效期:</label>
+                    <div class="col-sm-4" ${type == 2||type == 3 ? 'hidden=hidden' : ''}>
+                        购买后 <input id="validDays" name="validDays" type="number" min="0" placeholder="天数" style="width: 80px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;" > 天内有效
                     </div>
                 </div>
                 <div id="price">
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 9f4d080..c9d8e1b 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
@@ -241,7 +241,7 @@
                                 @}
                             </span>
                             <input type="hidden" id="counpons${obj.id}" value="${obj.couponIds}" class="counpons">                            <#button btnCss="info" name="优惠卷" id="ensure" icon="fa-check" clickFun="CoursePackageInfo.openDia(${obj.id})"/>
-                            <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(4, this)"></i>
+                            <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>
                         </div>
                     </div>
                     @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html
index 0c3bf46..7c08efb 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord.html
@@ -7,7 +7,7 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
                         <div class="row">
-                            <input type="text" id="type" value="${type}">
+                            <input type="hidden" id="type" value="${type}">
                             <input type="hidden" id="id" value="${item.id}">
                             <input type="hidden" id="name" value="${item.name}">
                             <div class="col-lg-10 col-sm-9">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html
index 4a22f03..5b260a5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord2.html
@@ -7,7 +7,7 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
                         <div class="row">
-                            <input type="text" id="type" value="${type}">
+                            <input type="hidden" id="type" value="${type}">
                             <input type="hidden" id="id" value="${item.id}">
                             <input type="hidden" id="name" value="${item.name}">
                             <div class="col-lg-10 col-sm-9">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html
index 5f422d4..8b9a709 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/registrationRecord3.html
@@ -7,7 +7,7 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
                         <div class="row">
-                            <input type="text" id="type" value="${type}">
+                            <input type="hidden" id="type" value="${type}">
                             <input type="hidden" id="id" value="${item.id}">
                             <input type="hidden" id="name" value="${item.name}">
                             <div class="col-lg-10 col-sm-9">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html
index 8d065f1..eecc8ce 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html
@@ -52,7 +52,8 @@
                 </div>
             </div>
             @if(role=='1'){
-            <div class="form-group" id="yys" hidden >
+            <div id="yys" hidden>
+            <div class="form-group"   >
                 <label class="col-sm-3 control-label">所属运营商:</label>
                 <div class="col-sm-9">
                     <select class="form-control" id="account" name="account" onchange="TCarInfoDlg.oneChange1(this)">
@@ -76,6 +77,30 @@
                     <select class="form-control" id="cCode" name="cCode" >
                         <option value="">选择市</option>
                     </select>
+                </div>
+            </div>
+            </div>
+
+
+            <div id="yys1" >
+                <div class="form-group" id="provinceCode1">
+                    <label class="col-sm-3 control-label">所在省:</label>
+                    <div class="col-sm-9">
+                        <select class="form-control" id="pCode1" name="pCode1" onchange="TCarInfoDlg.oneChange(this)">
+                            <option value="">选择省</option>
+                            @for(i in list){
+                              <option value="${i.code}">${i.name}</option>
+                            @}
+                        </select>
+                    </div>
+                </div>
+                <div class="form-group" id="cityCode1">
+                    <label class="col-sm-3 control-label">所在市:</label>
+                    <div class="col-sm-9">
+                        <select class="form-control" id="cCode1" name="cCode1" >
+                            <option value="">选择市</option>
+                        </select>
+                    </div>
                 </div>
             </div>
 
@@ -193,8 +218,10 @@
     function updateType(o) {
         if(o==1){
             $("#yys").hide()
+            $("#yys1").show()
         }else {
             $("#yys").show()
+            $("#yys1").hide()
 
         }
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
index c793baf..8c459a6 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
@@ -100,7 +100,7 @@
                 <!-- 创建地图容器-->
                 <div id="container" style="height: 500px;" ></div>
             </div>
-            <#input id="time" name="营业时间" type="text" value="${time}"/>
+            <#input id="time" name="营业时间" type="text" value="${time}"/>v
             <div class="form-group">
                 <label class="col-sm-3 control-label">门店介绍:</label>
                 <div class="col-sm-9">
@@ -223,7 +223,6 @@
             $("#yys").hide()
         }else {
             $("#yys").show()
-            queryStudentData
         }
 
     }
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
index 229b1df..3795524 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
@@ -1228,16 +1228,14 @@
                                         "valueField": "id"
                                       }
                                     ],
-                                    "messages": {
-                                    },
+                                    "messages": {},
                                     "loadingConfig": {
-                                      "show": true
+                                      "show": false
                                     },
                                     "api": {
                                       "url": "/tStudent/giftSelect",
                                       "method": "post",
-                                      "messages": {
-                                      },
+                                      "messages": {},
                                       "requestAdaptor": "",
                                       "adaptor": "",
                                       "dataType": "form-data",
@@ -1246,7 +1244,8 @@
                                         "phone": "$phone",
                                         "id": "$id"
                                       }
-                                    }
+                                    },
+                                    "initFetch": false
                                   },
                                   {
                                     "type": "input-text",
@@ -1316,12 +1315,10 @@
                                   "method": "post",
                                   "requestAdaptor": "",
                                   "adaptor": "",
-                                  "messages": {
-                                  },
+                                  "messages": {},
                                   "dataType": "form-data"
                                 },
-                                "actions": [
-                                ],
+                                "actions": [],
                                 "onEvent": {
                                   "submitSucc": {
                                     "weight": 0,
@@ -1341,8 +1338,7 @@
                               {
                                 "id": "u:59d68a32f7fd",
                                 "type": "container",
-                                "body": [
-                                ],
+                                "body": [],
                                 "style": {
                                   "position": "static",
                                   "display": "block"
@@ -1354,8 +1350,7 @@
                             "showLoading": true,
                             "className": "app-popover",
                             "id": "u:552bd1b3464d",
-                            "actions": [
-                            ],
+                            "actions": [],
                             "canAccessSuperData": false
                           }
                         }
@@ -1389,8 +1384,7 @@
                                     "api": {
                                       "url": "/tStudent/changelist/$id",
                                       "method": "post",
-                                      "messages": {
-                                      },
+                                      "messages": {},
                                       "requestAdaptor": "",
                                       "adaptor": "",
                                       "dataType": "form"
@@ -1408,7 +1402,11 @@
                                         "name": "changeType",
                                         "label": "变更类型",
                                         "type": "mapping",
-                                        "id": "u:e2b292dd63d0"
+                                        "id": "u:e2b292dd63d0",
+                                        "map": {
+                                          "0": "减少",
+                                          "1": "增加"
+                                        }
                                       },
                                       {
                                         "type": "text",
@@ -1423,10 +1421,8 @@
                                         "id": "u:8ba95bfd5e56"
                                       }
                                     ],
-                                    "bulkActions": [
-                                    ],
-                                    "itemActions": [
-                                    ],
+                                    "bulkActions": [],
+                                    "itemActions": [],
                                     "features": [
                                       "filter"
                                     ],
@@ -1532,8 +1528,7 @@
                                     "perPageAvailable": [
                                       10
                                     ],
-                                    "messages": {
-                                    },
+                                    "messages": {},
                                     "perPageField": "size"
                                   },
                                   {
@@ -1588,12 +1583,10 @@
                                   "method": "post",
                                   "requestAdaptor": "",
                                   "adaptor": "",
-                                  "messages": {
-                                  },
+                                  "messages": {},
                                   "dataType": "form-data"
                                 },
-                                "actions": [
-                                ]
+                                "actions": []
                               }
                             ],
                             "showCloseButton": true,
@@ -1601,8 +1594,7 @@
                             "showLoading": true,
                             "className": "",
                             "id": "u:f66fa4de8251",
-                            "actions": [
-                            ],
+                            "actions": [],
                             "canAccessSuperData": false,
                             "wrapWithPanel": false,
                             "size": "xl",
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html
index b348230..d02be05 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEditTTT.html
@@ -60,7 +60,8 @@
                   "name": "id",
                   "id": "u:d038053014ca",
                   "mode": "horizontal",
-                  "size": "md"
+                  "size": "md",
+                  "hidden": true
                 },
                 {
                   "type": "input-text",
@@ -68,7 +69,8 @@
                   "name": "ids",
                   "id": "u:223b7f2a1a5b",
                   "mode": "horizontal",
-                  "size": "md"
+                  "size": "md",
+                  "hidden": true
                 },
                 {
                   "label": "换课课程:",
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html
index f7e742c..f37055a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/trans.html
@@ -61,7 +61,8 @@
                   "name": "id",
                   "id": "u:d038053014ca",
                   "mode": "horizontal",
-                  "size": "md"
+                  "size": "md",
+                  "hidden": true
                 },
                 {
                   "type": "input-text",
@@ -69,7 +70,8 @@
                   "name": "ids",
                   "id": "u:223b7f2a1a5b",
                   "mode": "horizontal",
-                  "size": "md"
+                  "size": "md",
+                  "hidden": true
                 },
                 {
                   "label": "换课课程:",
diff --git a/cloud-server-management/src/main/webapp/static/img/index4.png b/cloud-server-management/src/main/webapp/static/img/index4.png
index 89dd226..6cfa09b 100644
--- a/cloud-server-management/src/main/webapp/static/img/index4.png
+++ b/cloud-server-management/src/main/webapp/static/img/index4.png
Binary files differ
diff --git a/cloud-server-management/src/main/webapp/static/img/logo.png b/cloud-server-management/src/main/webapp/static/img/logo.png
index ce23f65..6cfa09b 100644
--- a/cloud-server-management/src/main/webapp/static/img/logo.png
+++ b/cloud-server-management/src/main/webapp/static/img/logo.png
Binary files differ
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
index fe7937e..79f80b2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
@@ -19,7 +19,7 @@
         {title: '请假学员', field: 'registered', align: 'center', valign: 'middle'},
         {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle',
             formatter: function (v, row) {
-                if (row.absencesNumber === undefined) {
+                if (row.cancelClasses === undefined) {
                     return 0;
                 } else {
                     return v;
@@ -59,7 +59,7 @@
             }
         },
         {title: '扣除课时', field: 'deductClassHour', align: 'center', valign: 'middle'},
-        {title: '取消记录', field: 'absencesNumber', align: 'center', valign: 'middle',
+        {title: '消课凭证', field: 'cancelClasses', align: 'center', valign: 'middle',
             formatter: function (v) {
                 if (typeof v === "undefined") {
                     return '未上传';
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js
new file mode 100644
index 0000000..2a643d8
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord2.js
@@ -0,0 +1,440 @@
+/**
+ * 系统管理--用户管理的单例对象
+ */
+let ClassRecord = {
+    id: "managerTable",//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1,
+    courseList: null
+};
+/**
+ * 初始化表格的列
+ */
+ClassRecord.initColumn = function () {
+    let columns = [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '日期', field: 'classDate', align: 'center', valign: 'middle'},
+        {title: '请假学员', field: 'registered', align: 'center', valign: 'middle'},
+        {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle',
+            formatter: function (v, row) {
+                if (row.absencesNumber === undefined) {
+                    return 0;
+                } else {
+                    return v;
+                }
+            }
+        },
+        {title: '未到学员', field: 'nonArrival', align: 'center', valign: 'middle',
+            formatter: function (v, row) {
+                if (row.absencesNumber === undefined) {
+                    return 0;
+                } else {
+                    return v;
+                }
+            }
+        },
+        {title: '课后练习', field: 'courseId', align: 'center', valign: 'middle',
+            formatter: function (v) {
+                if (typeof v === "undefined") {
+                    return '未布置';
+                } else {
+                    return '已布置';
+                }
+            }
+        },
+        {title: '状态', field: 'status', align: 'center', valign: 'middle',
+            formatter: function (v) {
+                switch (v) {
+                    case 1:
+                        return '未开始';
+                    case 2:
+                        return '已开始';
+                    case 3:
+                        return '已结束';
+                    case 4:
+                        return '已取消';
+                }
+            }
+        },
+        {title: '扣除课时', field: 'deductClassHour', align: 'center', valign: 'middle'},
+        {title: '消课凭证', field: 'cancelClasses', align: 'center', valign: 'middle',
+            formatter: function (v) {
+                if (typeof v === "undefined") {
+                    return '未上传';
+                } else {
+                    return '已上传';
+                }
+            }
+        },
+    ];
+    return columns;
+};
+
+/**
+ * 检查是否选中
+ */
+ClassRecord.check = function () {
+    let selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        ClassRecord.seItem = selected[0];
+        return true;
+    }
+};
+
+
+
+/**
+ * 点击修改按钮时
+ * @param userId 管理员id
+ */
+ClassRecord.classRecord = function () {
+    if (this.check()) {
+        let index = layer.open({
+            type: 2,
+            title: '查看学员',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/coursePackage/openCoursePackageStudent?id=' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+
+
+/**
+ * 删除用户
+ */
+ClassRecord.cancelClassSchedule = function () {
+    if (this.check()) {
+        let operation = function(){
+            let ajax = new $ax(Feng.ctxPath + "/coursePackage/cancelClassSchedule", function (res) {
+                if(res.code == 200){
+                    Feng.success("取消成功!");
+                    ClassRecord.table.refresh();
+                }else{
+                    Feng.error(res.msg);
+                }
+            }, function (data) {
+                Feng.error("取消失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("id", ClassRecord.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("确定取消本次",operation);
+    }
+};
+
+
+
+ClassRecord.afterClassExercises = function () {
+    if (this.check()) {
+        var ajax = new $ax(Feng.ctxPath + "/course/queryCourseByType", function (data) {
+            ClassRecord.courseList = data;
+            let htmlStr =
+                '<div class="form-horizontal">' +
+                '   <div class="col-sm-11" style="padding: 20px;">' +
+                '       <div class="form-group">\n' +
+                '           <label class="col-sm-3 control-label">视频类型:</label>\n' +
+                '           <div class="col-sm-9" style="margin-top: 6px;">\n' +
+                '               <span>课后练习</span>' +
+                '           </div>\n' +
+                '       </div>' +
+                '       <div class="form-group">\n' +
+                '           <label class="col-sm-3 control-label">视频名称:</label>\n' +
+                '           <div class="col-sm-9">\n' +
+                '               <select class="form-control" id="courseId">' +
+                '                   <option value="">请选择</option>';
+            for (let i = 0; i < data.length; i++) {
+                htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
+            }
+            htmlStr += '        </select>' +
+            '               </div>\n' +
+            '           </div>' +
+                '       <div class="form-group">\n' +
+                '           <label class="col-sm-3 control-label">视频封面:</label>\n' +
+                '           <div class="col-sm-9">\n' +
+                '               <img src="" style="height: 150px;" id="coverDrawing"/>' +
+                '           </div>\n' +
+                '       </div>' +
+                '       <div class="form-group">\n' +
+                '           <label class="col-sm-3 control-label">视频简介:</label>\n' +
+                '           <div class="col-sm-9">\n' +
+                '               <textarea class="form-control" id="introduce" style="height: 200px;"></textarea>' +
+                '           </div>\n' +
+                '       </div>' +
+                '       <div class="form-group">\n' +
+                '           <label class="col-sm-3 control-label">可获得积分:</label>\n' +
+                '           <div class="col-sm-9">\n' +
+                '               <input class="form-control" id="integral" type="number" min="0">' +
+                '           </div>\n' +
+                '       </div>' +
+            '       </div>' +
+            '</div>';
+            layer.open({
+                type: 1
+                , title: '选择课程'
+                , area: ['50%', '90%']
+                , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+                , id: 'layerDemo' //防止重复弹出cge
+                , content: htmlStr
+                , btn: ['保存', '关闭']
+                , btnAlign: 'c' //按钮居中
+                , shade: 0.5 //不显示遮罩
+                , yes: function () {
+                    let courseId = $('#courseId').val();
+                    let integral = $('#integral').val();
+                    if(null == courseId || '' == courseId){
+                        Feng.error("请选择有效的课程");
+                        return
+                    }
+                    if(null == integral || '' == integral){
+                        Feng.error("请输入有效的积分");
+                        return
+                    }
+                    let ajax = new $ax(Feng.ctxPath + "/coursePackage/afterClassExercises", function (res) {
+                        if(res.code == 200){
+                            Feng.success("保存成功!");
+                            layer.closeAll();
+                            RegistrationRecord.table.refresh();
+                        }else{
+                            Feng.error(res.msg);
+                        }
+                    }, function (data) {
+                        Feng.error("保存失败!" + data.responseJSON.message + "!");
+                    });
+                    ajax.set("id", ClassRecord.seItem.id);
+                    ajax.set("courseId", courseId);
+                    ajax.set("integral", integral);
+                    ajax.start();
+                },
+            });
+
+            $('#courseId').change(function () {
+                let id = $(this).val();
+                for (let i = 0; i < ClassRecord.courseList.length; i++) {
+                    if(ClassRecord.courseList[i].id == id){
+                        $('#coverDrawing').attr("src", ClassRecord.courseList[i].coverDrawing);
+                        $('#introduce').text(ClassRecord.courseList[i].introduce);
+                    }
+                }
+            })
+
+            $('#courseId').val(ClassRecord.seItem.courseId);
+            $('#integral').val(ClassRecord.seItem.integral);
+
+        }, function (data) {
+            Feng.error("获取失败!" + data.responseJSON.message + "!");
+        });
+        ajax.set('type', 1);
+        ajax.start();
+    }
+};
+
+
+ClassRecord.cancellationRecord = function(i){
+    if(this.check()){
+        let htmlStr =
+
+        '<div class="form-horizontal">' +
+            '   <div class="col-sm-11" style="padding: 20px;">' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-2"></label>'+
+            '           <label class="col-sm-8 control-label" style="text-align: left;">课程名称:' + $("#name").text() + '</label>\n' +
+            '       </div>' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-2"></label>'+
+            '           <label class="col-sm-8 control-label" style="text-align: left;">*上传凭证(请上传小于5张图片):</label>\n' +
+            '       </div>' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-2"></label>'+
+            '           <div class="col-sm-8" style="min-height: 200px;">\n' +
+            '               <div id="cancelClasses"></div>' +
+            '               <input type="file" id="file" style="display: none;"/>' +
+            '               <button onclick="uploadImgs()" style="width: 60px;padding: 10px; color: white;background-color: #0d8ddb;border-radius: 5px;border: none;bottom: 50%;position: absolute;"> 上传 </button>' +
+            '           </div>\n' +
+            '       </div>' +
+            '       </div>' +
+            '</div>';
+        layer.open({
+            type: 1
+            , title: '上传消课记录'
+            , area: ['80%', '90%']
+            , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+            , id: 'layerDemo' //防止重复弹出cge
+            , content: htmlStr
+            , btn: ['保存', '关闭']
+            , btnAlign: 'c' //按钮居中
+            , shade: 0.5 //不显示遮罩
+            , yes: function () {
+                let cancelClasses = $('#cancelClasses').html();
+                let deductClassHour = $('#deductClassHour').val();
+                if(null == cancelClasses || '' == cancelClasses){
+                    Feng.error("请上传凭证图片");
+                    return
+                }
+                // if(null == deductClassHour || '' == deductClassHour){
+                //     Feng.error("请输入有效的扣除课时数");
+                //     return
+                // }
+                let div_array = $('#cancelClasses').find('div');
+                let str = '';
+                for (let i = 0; i < div_array.length; i++) {
+                    let v = $($(div_array[i]).find('img')[0]).attr('src');
+                    str += v + ";";
+                }
+
+                let ajax = new $ax(Feng.ctxPath + "/coursePackage/cancellationRecord", function (res) {
+                    if(res.code == 200){
+                        Feng.success("保存成功!");
+                        layer.closeAll();
+                        RegistrationRecord.table.refresh();
+                    }else{
+                        Feng.error(res.msg);
+                    }
+                }, function (data) {
+                    Feng.error("保存失败!" + data.responseJSON.message + "!");
+                });
+                ajax.set("id", ClassRecord.seItem.id);
+                ajax.set("cancelClasses", str.substring(0, str.length - 1));
+                ajax.set("deductClassHour", deductClassHour);
+                ajax.start();
+            },
+        });
+
+        $('#file').on('change', function () {
+            var formData = new FormData()  //创建一个forData
+            formData.append('file', $('#file')[0].files[0]) //把file添加进去  name命名为img
+            layer.load(); //上传loading
+            $.ajax({
+                url: Feng.ctxPath + '/mgr/uploadImg',
+                data: formData,
+                type: "POST",
+                async: true,
+                cache: false,
+                contentType: false,
+                processData: false,
+                success: function(res) {
+                    layer.closeAll('loading'); //关闭loading
+                    $('#file').val('');
+                    $('#cancelClasses').append('' +
+                        '<div style="float: left; margin: 10px; width: 200px;">' +
+                        '   <i class="fa fa-close" style="font-size:24px;color: red;position: relative;top: 10px;right: -190px" onclick="removeImg(this)"></i>' +
+                        '   <div style="width: 100%;"><img src="' + res + '" style="width: 100%;"/></div>' +
+                        '</div>')
+                }
+            })
+        })
+    }
+}
+
+
+ClassRecord.lookCancellationRecord = function(){
+    if(this.check()){
+        if(ClassRecord.seItem.cancelClasses == '' || ClassRecord.seItem.cancelClasses == null){
+            Feng.error("请先上传消课凭证");
+            return
+        }
+        let imgs = ClassRecord.seItem.cancelClasses.split(";");
+        let htmlStr =
+            '<div class="form-horizontal">' +
+            '   <div class="col-sm-11" style="padding: 20px;">' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-8 control-label">课程名称:' + $("#name").text() + '</label>\n' +
+            '       </div>' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-8 control-label">*上传凭证(请上传小于5张图片):</label>\n' +
+            '       </div>' +
+            '       <div class="form-group">\n' +
+            '           <div class="col-sm-8" style="min-height: 200px;">\n' +
+            '               <div id="cancelClasses">';
+
+        for (let i = 0; i < imgs.length; i++) {
+            htmlStr += '<div><img src="' + imgs[i] + '" style="height: 150px;"/></div>&nbsp;&nbsp;&nbsp;&nbsp;';
+        }
+
+        htmlStr += '</div>' +
+            '           </div>\n' +
+            '       </div>' +
+            '       <div class="form-group">\n' +
+            '           <label class="col-sm-3 control-label">扣除课时数:</label>\n' +
+            '           <div class="col-sm-9">\n' +
+            '               <input class="form-control" id="deductClassHour" value="' + ClassRecord.seItem.deductClassHour + '" type="number" min="0">' +
+            '           </div>\n' +
+            '       </div>' +
+            '       </div>' +
+            '</div>';
+        layer.open({
+            type: 1
+            , title: '查看消课记录'
+            , area: ['50%', '90%']
+            , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+            , id: 'layerDemo' //防止重复弹出cge
+            , content: htmlStr
+            , btnAlign: 'c' //按钮居中
+            , shade: 0.5 //不显示遮罩
+            , yes: function () {
+            },
+        });
+    }
+}
+
+ClassRecord.manualReservation = function(){
+    if(this.check()){
+        let index = layer.open({
+            type: 2,
+            title: '手动预约',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/coursePackage/openManualReservation?id=' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+}
+
+function uploadImgs(){
+    let num = $('#cancelClasses>div').length;
+    if(num >= 5){
+        Feng.error("最多只能上传5张图片");
+        return;
+    }
+    $('#file').click();
+}
+
+
+function removeImg(e){
+    $(e).parent('div').remove();
+}
+
+
+
+
+ClassRecord.resetSearch = function () {
+    ClassRecord.search();
+}
+
+ClassRecord.search = function () {
+    let queryData = {};
+    queryData['id'] = $('#id').val();
+    ClassRecord.table.refresh({query: queryData});
+}
+
+
+$(function () {
+    let defaultColunms = ClassRecord.initColumn();
+    let table = new BSTable(ClassRecord.id, "/coursePackage/queryClassRecord", defaultColunms);
+    // 设置物理分页server(逻辑分页client)
+    table.setPaginationType("server");
+    table.setQueryParams({
+        id: $('#id').val()
+    })
+    ClassRecord.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js
index c52d5aa..abd40bf 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js
@@ -119,22 +119,22 @@
         Feng.error("授课教师不能为空");
         return
     }
-    if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
-        Feng.error("最多预约人数不能为空");
-        return
-    }
+    // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
+    //     Feng.error("最多预约人数不能为空");
+    //     return
+    // }
     // if(null == codeTime || '' == codeTime){
     //     Feng.error("扣除课时数不能为空不能为空");
     //     return
     // }
-    if(null == classStartTime || '' == classStartTime){
-        Feng.error("上课时间不能为空");
-        return
-    }
-    if(null == classWeeks || '' == classWeeks){
-        Feng.error("上课时间不能为空");
-        return
-    }
+    // if(null == classStartTime || '' == classStartTime){
+    //     Feng.error("上课时间不能为空");
+    //     return
+    // }
+    // if(null == classWeeks || '' == classWeeks){
+    //     Feng.error("上课时间不能为空");
+    //     return
+    // }
     classWeeks = classWeeks.substring(0, classWeeks.length - 1);
 
     if(null == coverDrawing || '' == coverDrawing){
@@ -149,10 +149,10 @@
         Feng.error("课包介绍不能为空");
         return
     }
-    if(null == validDays || '' == validDays){
-        Feng.error("课时有效期不能为空");
-        return
-    }
+    // if(null == validDays || '' == validDays){
+    //     Feng.error("课时有效期不能为空");
+    //     return
+    // }
 
     let obj = {
         province: province,
@@ -276,21 +276,22 @@
         Feng.error("授课教师不能为空");
         return
     }
-    if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
-        Feng.error("最多预约人数不能为空");
-        return
-    }  if(null == codeTime || '' == codeTime){
-        Feng.error("扣除课时不能为空");
-        return
-    }
-    if(null == classStartTime || '' == classStartTime){
-        Feng.error("上课时间不能为空");
-        return
-    }
-    if(null == classWeeks || '' == classWeeks){
-        Feng.error("上课时间不能为空");
-        return
-    }
+    // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
+    //     Feng.error("最多预约人数不能为空");
+    //     return
+    // }
+    // if(null == codeTime || '' == codeTime){
+    //     Feng.error("扣除课时不能为空");
+    //     return
+    // }
+    // if(null == classStartTime || '' == classStartTime){
+    //     Feng.error("上课时间不能为空");
+    //     return
+    // }
+    // if(null == classWeeks || '' == classWeeks){
+    //     Feng.error("周不能为空");
+    //     return
+    // }
     classWeeks = classWeeks.substring(0, classWeeks.length - 1);
 
     if(null == coverDrawing || '' == coverDrawing){
@@ -305,10 +306,10 @@
         Feng.error("课包介绍不能为空");
         return
     }
-    if(null == validDays || '' == validDays){
-        Feng.error("课时有效期不能为空");
-        return
-    }
+    // if(null == validDays || '' == validDays){
+    //     Feng.error("课时有效期不能为空");
+    //     return
+    // }
 
     let obj = {
         id: id,
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js
index 991e711..caba542 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord.js
@@ -20,25 +20,53 @@
         {title: '购课学员', field: 'studentName', align: 'center', valign: 'middle'},
         {title: '报名时间', field: 'insertTime', align: 'center', valign: 'middle'},
         {title: '总课时数', field: 'totalClassHours', align: 'center', valign: 'middle'},
-        {title: '剩余课时数', field: 'laveClassHours', align: 'center', valign: 'middle',rowStyle: function(row, index) {
-                // 参数说明:
-                //row, 行,row.xxx,能获取某个字段的值
-                //index,索引,第几行
-
-                // 逻辑判断
-                // .....
-                return  {"background-color":'rgba(208,9,9,0.7)'};
+        {
+            title: '剩余课时数',
+            field: 'laveClassHours',
+            align: 'center',
+            valign: 'middle',
+            formatter: function (value, row) {
+                if (value < 3) {
+                    return '<div style="color: red;">' + value + '</div>';
+                } else {
+                    return value;
+                }
             }
         },
-        {title: '已上课时数', field: 'already', align: 'center', valign: 'middle'},
+        {
+            title: '已上课时数',
+            field: 'already',
+            align: 'center',
+            valign: 'middle',
+            formatter: function (value, row) {
+                var totalClassHours = row.totalClassHours;
+                var laveClassHours = row.laveClassHours;
+                var alreadyClassHours = totalClassHours - laveClassHours;
+                return alreadyClassHours;
+            }
+        },
         {title: '请假次数', field: 'absencesNumber', align: 'center', valign: 'middle'},
-        {title: '状态', field: 'status', align: 'center', valign: 'middle',
+        {
+            title: '状态',
+            field: 'status',
+            align: 'center',
+            valign: 'middle',
             formatter: function (v) {
                 switch (v) {
                     case 1:
                         return '正常';
                     case 2:
-                        return '<a href="#" onclick="">已退课-查看凭证</a>';
+                        return '已退课';
+                    case 3:
+                        return '换课中';
+                    case 4:
+                        return '申请退费中';
+                    case 5:
+                        return '已转移';
+                    case 6:
+                        return '已赠课';
+                    default:
+                        return '';
                 }
             }
         }
@@ -51,8 +79,21 @@
  */
 RegistrationRecord.check = function () {
     let selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length > 1) {
+        Feng.info("只能选中表格中的一条记录!");
+        return false;
+    } else {
+        RegistrationRecord.seItem = selected[0];
+        RegistrationRecord.seItem1 = selected;
+
+        return true;
+    }
+};
+
+RegistrationRecord.check1 = function () {
+    let selected = $('#' + this.id).bootstrapTable('getSelections');
     if (selected.length == 0) {
-        Feng.info("请先选中表格中的某一记录!");
+        Feng.info("必须选中表格中的某一记录!");
         return false;
     } else {
         RegistrationRecord.seItem = selected[0];
@@ -79,7 +120,7 @@
 
 
 RegistrationRecord.holiClass = function () {
-    if (this.check()) {
+    if (this.check1()) {
         var ids = RegistrationRecord.seItem1.map(function(item) {
             return item.id;
         }).join(",");
@@ -215,8 +256,8 @@
 RegistrationRecord.makeUpMissedLessons = function () {
     if (this.check()) {
         let operation = function(){
-            let ajax = new $ax(Feng.ctxPath + "/coursePackage/makeUpMissedLessons", function () {
-                Feng.success("补课成功!");
+            let ajax = new $ax(Feng.ctxPath + "/coursePackage/makeUpMissedLessons", function (data) {
+                Feng.success(data.msg);
                 RegistrationRecord.table.refresh();
             }, function (data) {
                 Feng.error("补课失败!" + data.responseJSON.message + "!");
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js
index e7b35e4..34e71bc 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/registrationRecord2.js
@@ -72,7 +72,7 @@
         area: ['100%', '100%'], //宽高
         fix: false, //不固定
         maxmin: true,
-        content: Feng.ctxPath + '/coursePackage/openClassRecord?id=' + $('#id').val()
+        content: Feng.ctxPath + '/coursePackage/openClassRecord1?id=' + $('#id').val()
     });
     this.layerIndex = index;
 };
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
index 77cc6f7..95565b7 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
@@ -21,7 +21,7 @@
 
             }
         },
-        {title: '所属运营商', field: 'province', visible: role==1?true:false, align: 'center', valign: 'middle'
+        {title: '所属运营商', field: 'yysName', visible: role==1?true:false, align: 'center', valign: 'middle'
         },
         {title: '省', field: 'province', visible: role==1?true:false, align: 'center', valign: 'middle'
         },
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js
index 6d13e5c..cc9d44b 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOtherOne.js
@@ -101,7 +101,7 @@
         area: ['100%', '100%'], //宽高
         fix: false, //不固定
         maxmin: true,
-        content: Feng.ctxPath + '/tShop/tShop_add_two?id='+$("#id").val()
+        content: Feng.ctxPath + '/tShop/tShop_add_two1?id='+$("#id").val()
     });
     this.layerIndex = index;
 };
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
index 8dd039a..790c8fa 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
@@ -176,16 +176,26 @@
     }
     let pCode = $("#pCode").val()
     let cCode = $("#cCode").val()
+    let pCode1 = $("#pCode1").val()
+    let cCode1 = $("#cCode1").val()
 
 
     let name = $("#name").val()
     let phone = $("#phone").val()
 
-    if(pCode=='' && $("#role")=="1"){
+    if(pCode=='' && $("#role")=="1" && OBJradio==2){
         Feng.info("请选择省")
         return;
     }
-    if(cCode=='' && $("#role")=="1"){
+    if(cCode=='' && $("#role")=="1" && OBJradio==2){
+        Feng.info("请选择市")
+        return;
+    }
+    if(pCode1=='' && $("#role")=="1" && OBJradio==1){
+        Feng.info("请选择省")
+        return;
+    }
+    if(cCode1=='' && $("#role")=="1" && OBJradio==12){
         Feng.info("请选择市")
         return;
     }
@@ -288,6 +298,8 @@
     ajax.set("ids",$("#ids").val());
     ajax.set("type",OBJradio);
     ajax.set("yyId",$("#account").val());
+    ajax.set("pCode1",pCode1);
+    ajax.set("cCode1",cCode1);
     ajax.start();
 }
 var  map = new AMap.Map('container', {
@@ -400,6 +412,8 @@
 
     let pCode = $("#pCode").val()
     let cCode = $("#cCode").val()
+    let cCode1 = $("#cCode1").val()
+    let pCode1 = $("#pCode1").val()
     let account = $("#account").val()
     var OBJradio= $("input[name='type']:checked").val();
     if(OBJradio==2){
@@ -413,13 +427,20 @@
     let name = $("#name").val()
     let phone = $("#phone").val()
 
-    if(pCode=='' && $("#role")=="1"){
+    if(pCode=='' && $("#role")=="1" && OBJradio==2){
         Feng.info("请选择省")
         return;
     }
-    if(cCode=='' && $("#role")=="1"){
+    if(cCode=='' && $("#role")=="1" && OBJradio==2){
         Feng.info("请选择市")
         return;
+    }
+    if(pCode1=='' && $("#role")=="1" && OBJradio==1){
+        Feng.info("请选择省")
+        return;
+    }
+    if(cCode1=='' && $("#role")=="1" && OBJradio==12) {
+        Feng.info("请选择市")
     }
     if(name==''){
         Feng.info("门店名称不能为空")
@@ -481,8 +502,7 @@
     var ajax = new $ax(Feng.ctxPath + "/tShop/update", function(data){
         if(data=="5001"){
             Feng.error("该店长手机号已经存在!")
-        }else
-        if(data.code == 200){
+        }else if(data.code == 200){
             if(language==1){
                 Feng.success("修改成功!");
             }else if(language==2){
@@ -498,6 +518,7 @@
     },function(data){
         Feng.error("修改失败!" + data.responseJSON.message + "!");
     });
+
     ajax.set("provinceCode",pCode);
     ajax.set("cityCode",cCode);
     ajax.set("name",name);
@@ -516,6 +537,8 @@
     ajax.set("ids",$("#ids").val());
     ajax.set("type",OBJradio);
     ajax.set("yyId",$("#account").val());
+    ajax.set("pCode1",pCode1);
+    ajax.set("cCode1",cCode1);
     ajax.start();
 }
 
@@ -574,7 +597,7 @@
             $.each(data, function(k,v) {
                 content += "<option value='"+v.code+"'>"+v.name+"</option>";
             });
-            $("#cCode").empty().append(content);
+            $("#cCode1").empty().append(content);
         }
     });
     ajax.set("oneId",oneId);
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java
index 57398e4..9b9576a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java
@@ -1,5 +1,6 @@
 package com.dsh.other.feignclient.account.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.util.Date;
@@ -30,6 +31,7 @@
     /**
      * 生日
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date birthday;
     /**
      * 性别(1=男,2=女)

--
Gitblit v1.7.1