From d09828cdec78a160f4530a8ab245216ed8671c27 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 20 九月 2023 18:43:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html                          |    1 
 cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java                               |   15 
 cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml                               |   16 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                    |  108 ++
 cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java                                 |   12 
 cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml                                |   36 
 cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java                             |   28 
 cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java                             |    6 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                    |   12 
 cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java                     |    9 
 .idea/workspace.xml                                                                                         |  414 +------
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java     |    6 
 cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java                               |    6 
 cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java                              |   17 
 cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java                              |   18 
 cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java                                   |   20 
 cloud-server-account/src/main/resources/mapper/TStudentMapper.xml                                           |    9 
 cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java                                       |    9 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java         |   15 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java                   |   29 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java                      |    4 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java         |   10 
 cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java                                  |   23 
 cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java                                  |    9 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html                      | 1245 +++++++++++++++++------
 cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java                                  |    7 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java |  254 +++-
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java  |   21 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java                     |    3 
 cloud-server-other/src/main/resources/mapper/BannerMapper.xml                                               |   18 
 cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js                          |   22 
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java                        |   28 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java             |    3 
 .idea/modules.xml                                                                                           |    6 
 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java                  |    4 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java          |   22 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html                |  362 ++++++
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                        |    8 
 cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java                   |   10 
 cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java                               |   23 
 cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java                                 |   18 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java                 |   13 
 cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java                                     |    8 
 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java                    |    5 
 cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java                        |   15 
 cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java                                 |   20 
 cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java                          |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java                  |    9 
 cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java                                    |   20 
 cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java                               |    3 
 cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java                          |   13 
 cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml                                           |   10 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                    |    7 
 cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java                                |   20 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java           |   62 +
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                             |    3 
 56 files changed, 2,337 insertions(+), 761 deletions(-)

diff --git a/.idea/modules.xml b/.idea/modules.xml
index 64989aa..7931019 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -3,12 +3,8 @@
   <component name="ProjectModuleManager">
     <modules>
       <module fileurl="file://$PROJECT_DIR$/.idea/PlayPai.iml" filepath="$PROJECT_DIR$/.idea/PlayPai.iml" />
-      <module fileurl="file://$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" filepath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" />
-      <module fileurl="file://$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" filepath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" />
-      <module fileurl="file://$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" filepath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" />
-      <module fileurl="file://$PROJECT_DIR$/cloud-server-competition/mb-cloud-competition.iml" filepath="$PROJECT_DIR$/cloud-server-competition/mb-cloud-competition.iml" />
       <module fileurl="file://$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" filepath="$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" />
-      <module fileurl="file://$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" filepath="$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" />
+      <module fileurl="file://$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" filepath="$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" />
     </modules>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e79fe1b..e8767ab 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -22,323 +22,44 @@
     <select />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="后台代码">
-      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__c3p0_c3p0_0_9_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_hutool_hutool_all_4_5_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_hutool_hutool_all_5_3_7.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_api_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_cache_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_core_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_data_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_feign_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_idempotent_1_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_job_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_log_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_sentinel_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_mb_cloud_mb_cloud_common_swagger_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cn_rongcloud_im_server_sdk_java_3_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_alibaba_sentinel_datasource_2_2_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_circuitbreaker_sentinel_2_2_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_config_2_2_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_nacos_discovery_2_2_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_cloud_spring_cloud_starter_alibaba_sentinel_2_2_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_annotation_aspectj_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_client_default_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_common_default_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_cluster_server_default_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_core_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_datasource_extension_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_parameter_flow_control_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_reactor_adapter_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webflux_adapter_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_spring_webmvc_adapter_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_common_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_csp_sentinel_transport_simple_http_1_7_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_druid_1_1_22.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_druid_spring_boot_starter_1_1_22.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_41.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_58.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_nacos_nacos_api_1_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_nacos_nacos_client_1_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_nacos_nacos_common_1_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_spring_spring_context_support_1_0_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_transmittable_thread_local_2_10_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_2_5_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_kaptcha_spring_boot_starter_1_1_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_classmate_1_5_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_3_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_penggle_kaptcha_2_3_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_04.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_annotations_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_core_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_spring_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_spring_boot_autoconfigure_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_spring_boot_starter_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_xiaoymin_knife4j_spring_ui_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_guava_guava_20_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_maps_google_maps_services_2_0_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_googlecode_concurrentlinkedhashmap_concurrentlinkedhashmap_lru_1_4_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_ibeetl_beetl_3_3_0_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_ibeetl_beetl_framework_starter_1_2_31_Beetl_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_jhlabs_filters_2_0_235_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_midtrans_java_library_3_1_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_18.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_netflix_servo_servo_core_0_12_21.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_okhttp3_logging_interceptor_3_14_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_14_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_okio_okio_1_17_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_2_6_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_retrofit2_retrofit_mock_2_6_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_xml_bind_jaxb_core_2_3_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_3_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_11_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_xuxueli_xxl_job_core_2_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_5.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_codec_commons_codec_1_14.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_fileupload_commons_fileupload_1_3_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_httpclient_commons_httpclient_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_io_commons_io_2_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__de_codecentric_spring_boot_admin_client_2_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__de_codecentric_spring_boot_admin_starter_client_2_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_github_openfeign_feign_core_10_10_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_10_10_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_10_10_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_github_openfeign_form_feign_form_3_8_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_github_openfeign_form_feign_form_spring_3_8_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_grpc_grpc_context_1_33_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_lettuce_lettuce_core_5_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_micrometer_micrometer_core_1_5_7.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_micrometer_micrometer_registry_prometheus_1_5_7.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_all_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_buffer_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_codec_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_common_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_handler_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_resolver_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_transport_4_1_54_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_opencensus_opencensus_api_0_30_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_projectreactor_reactor_core_3_3_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_prometheus_simpleclient_0_5_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_prometheus_simpleclient_common_0_8_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_bean_validators_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_22.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_swagger_swagger_models_1_5_22.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_undertow_undertow_core_2_1_4_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_undertow_undertow_servlet_2_1_4_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_undertow_undertow_websockets_jsr_2_1_4_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jakarta_servlet_jakarta_servlet_api_4_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jakarta_validation_jakarta_validation_api_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jakarta_xml_bind_jakarta_xml_bind_api_2_3_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_inject_javax_inject_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_servlet_javax_servlet_api_4_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_13_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_22.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_10_18.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_10_18.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_sf_ezmorph_ezmorph_1_0_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_sf_json_lib_json_lib_jdk15_2_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_7_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_8_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_13_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_13_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_13_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_3_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_39.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_39.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjrt_1_9_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_assertj_assertj_core_3_16_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_59.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_59.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_groovy_groovy_2_5_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_flywaydb_flyway_core_6_4_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_freemarker_freemarker_2_3_30.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_glassfish_jakarta_el_3_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_1_6_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_javassist_javassist_3_25_0_GA.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_4_1_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_3_spec_2_0_1_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_spec_javax_websocket_jboss_websocket_api_1_1_spec_2_0_0_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_threads_jboss_threads_3_1_0_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_xnio_xnio_api_3_8_0_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_xnio_xnio_nio_3_8_0_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jdom_jdom_1_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jolokia_jolokia_core_1_6_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_json_json_20190722.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_5_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_params_5_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_junit_vintage_junit_vintage_engine_5_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mockito_mockito_core_3_3_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mockito_mockito_junit_jupiter_3_3_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_3_5_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_projectlombok_lombok_1_18_16.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_quartz_scheduler_quartz_2_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_30.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_30.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_undertow_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_archaius_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_ribbon_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_openfeign_core_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_security_2_2_4_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_bootstrap_3_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_oauth2_2_2_4_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_2_2_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_security_2_2_4_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_oauth_boot_spring_security_oauth2_autoconfigure_2_1_2_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_oauth_spring_security_oauth2_2_3_6_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_config_5_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_core_5_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_jwt_1_0_10_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_9_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_security_spring_security_web_5_3_5_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_aop_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_beans_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_support_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_core_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_expression_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jcl_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jdbc_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_oxm_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_test_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_tx_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_web_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_webmvc_5_2_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_wildfly_client_wildfly_client_config_1_0_1_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_wildfly_common_wildfly_common_1_5_2_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_7_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_yaml_snakeyaml_1_26.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__stax_stax_api_1_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
+    <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="9.15.1">
+      <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-competition/mb-cloud-competition.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-competition/mb-cloud-competition.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/mb-cloud-course.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/mb-cloud-management.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.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/service/CoursePackageStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.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/CoursePackageStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.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/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/account/AppUserClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.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/service/ITStudentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java" 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/tStudent/tStudent.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -348,8 +69,8 @@
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
-        <option value="Interface" />
         <option value="HTML File" />
+        <option value="Interface" />
         <option value="Class" />
       </list>
     </option>
@@ -376,45 +97,48 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
-    &quot;RequestMappingsPanelOrder0&quot;: &quot;0&quot;,
-    &quot;RequestMappingsPanelOrder1&quot;: &quot;1&quot;,
-    &quot;RequestMappingsPanelWidth0&quot;: &quot;75&quot;,
-    &quot;RequestMappingsPanelWidth1&quot;: &quot;75&quot;,
-    &quot;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:/ttt/java/PlayPai/cloud-server-management/src/main/webapp/static&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;spring.configuration.checksum&quot;: &quot;7fb6c6ffe49cf7315145a28a96be3d8f&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "DefaultHtmlFileTemplate": "HTML File",
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "WebServerToolWindowFactoryState": "false",
+    "git-widget-placeholder": "master",
+    "ignore.virus.scanning.warn.message": "true",
+    "last_opened_file_path": "D:/ttt/java/PlayPai/cloud-server-other/src/main/resources/mapper",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "project.structure.last.edited": "模块",
+    "project.structure.proportion": "0.15",
+    "project.structure.side.proportion": "0.54367816",
+    "spring.configuration.checksum": "7fb6c6ffe49cf7315145a28a96be3d8f",
+    "vue.rearranger.settings.migration": "true"
   }
-}</component>
+}]]></component>
   <component name="ReactorSettings">
     <option name="notificationShown" value="true" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\ttt\java\PlayPai\cloud-server-other\src\main\resources\mapper" />
+      <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" />
       <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\static" />
       <recent name="D:\ttt\java\PlayPai\cloud-server-parent" />
       <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\resources\mapper" />
-      <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\tStudent" />
-      <recent name="D:\ttt\java\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\tStudent" />
     </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="D:\ttt\java\PlayPai\cloud-server-parent" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
-      <recent name="com.dsh.account.dto" />
+      <recent name="com.dsh.course.entity.dto" />
+      <recent name="com.dsh.course.feignClient.other" />
       <recent name="com.dsh.course.dto" />
+      <recent name="com.dsh.account.dto" />
       <recent name="com.dsh.course.mapper" />
-      <recent name="com.dsh.guns.modular.system.model" />
-      <recent name="com.dsh.guns.modular.system.service.impl" />
     </key>
   </component>
   <component name="RunDashboard">
@@ -510,8 +234,8 @@
     </configuration>
     <list>
       <item itemvalue="Spring Boot.GatewayApplication" />
-      <item itemvalue="Spring Boot.ManagementApplication" />
       <item itemvalue="Spring Boot.AccountApplication" />
+      <item itemvalue="Spring Boot.ManagementApplication" />
       <item itemvalue="Spring Boot.CourseApplication" />
       <item itemvalue="Spring Boot.OtherApplication" />
       <item itemvalue="Spring Boot.UserApplication" />
@@ -539,6 +263,11 @@
       <workItem from="1694576808030" duration="31000" />
       <workItem from="1694578995783" duration="17340000" />
       <workItem from="1694652961834" duration="2402000" />
+      <workItem from="1694749027815" duration="287000" />
+      <workItem from="1694826312367" duration="136000" />
+      <workItem from="1694826468892" duration="22165000" />
+      <workItem from="1694931109193" duration="31686000" />
+      <workItem from="1695084815207" duration="29663000" />
     </task>
     <task id="LOCAL-00001" summary="后台代码删除">
       <created>1690249807612</created>
@@ -631,7 +360,15 @@
       <option name="project" value="LOCAL" />
       <updated>1690364506501</updated>
     </task>
-    <option name="localTasksCounter" value="14" />
+    <task id="LOCAL-00014" summary="9.15">
+      <option name="closed" value="true" />
+      <created>1694749099246</created>
+      <option name="number" value="00014" />
+      <option name="presentableId" value="LOCAL-00014" />
+      <option name="project" value="LOCAL" />
+      <updated>1694749099246</updated>
+    </task>
+    <option name="localTasksCounter" value="15" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -651,17 +388,18 @@
   <component name="VcsManagerConfiguration">
     <MESSAGE value="后台代码删除" />
     <MESSAGE value="后台代码" />
-    <option name="LAST_COMMIT_MESSAGE" value="后台代码" />
+    <MESSAGE value="9.15" />
+    <option name="LAST_COMMIT_MESSAGE" value="9.15" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <breakpoints>
-        <line-breakpoint enabled="true" type="java-line">
+        <line-breakpoint type="java-line">
           <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java</url>
           <line>145</line>
           <option name="timeStamp" value="1" />
         </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
+        <line-breakpoint type="java-line">
           <url>file://$PROJECT_DIR$/cloud-server-auth/src/main/java/cn/mb/cloud/auth/service/UserDetailsServiceImpl.java</url>
           <line>111</line>
           <option name="timeStamp" value="2" />
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index 3625888..78b9786 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.dsh.account.dto.SelectDto;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.entity.TCourseInfoRecord;
 import com.dsh.account.model.*;
@@ -404,4 +405,11 @@
         boolean save = courseInfoRecordService.save(tCourseInfoRecord);
         return save;
     }
+
+    @PostMapping("/appUser/getSelects")
+    public List<SelectDto> getSelects(@RequestBody List<Integer> studentIds){
+        List<SelectDto> selectDtos =    appUserService.getSelects(studentIds);
+        System.out.println("=======selectDtos======>"+selectDtos);
+        return selectDtos;
+    }
 }
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 b567478..e3b035a 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
@@ -1,6 +1,8 @@
 package com.dsh.account.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.account.dto.CreateHistoryDto;
+import com.dsh.account.dto.GetHistoryDto;
 import com.dsh.account.dto.StudentSearch;
 import com.dsh.account.dto.TStudentDto;
 import com.dsh.account.entity.TStudent;
@@ -160,4 +162,30 @@
         System.out.println("===?==》"+id);
         return studentService.listOne(id);
     }
+
+    @ResponseBody
+    @PostMapping("/student/update")
+    public  void update(@RequestBody TStudent tStudent){
+        System.out.println("======tStudent======"+tStudent);
+        studentService.updateById(tStudent);
+    }
+
+    @ResponseBody
+    @PostMapping("/student/createHistory")
+    public  void createHistory(@RequestBody CreateHistoryDto createHistoryDto){
+        createHistoryDto.setDate(new Date());
+        studentService.createHistory(createHistoryDto);
+
+
+    }
+
+
+    @ResponseBody
+    @PostMapping("/student/getHisory")
+    public  List<GetHistoryDto> getHisory(){
+
+        List<GetHistoryDto> getHistoryDtos =  studentService.getHistory();
+
+        return getHistoryDtos;
+    }
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java b/cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java
new file mode 100644
index 0000000..6a19be6
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java
@@ -0,0 +1,20 @@
+package com.dsh.account.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CreateHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private Integer createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java b/cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java
new file mode 100644
index 0000000..1bf5931
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java
@@ -0,0 +1,20 @@
+package com.dsh.account.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GetHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+}
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
new file mode 100644
index 0000000..28cac4b
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
@@ -0,0 +1,9 @@
+package com.dsh.account.dto;
+
+import lombok.Data;
+
+@Data
+public class SelectDto {
+    Integer id;
+    String value;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
index 165be48..2563388 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
@@ -1,6 +1,7 @@
 package com.dsh.account.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.account.dto.SelectDto;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.model.query.appUserQuery.QueryAppUser;
 import com.dsh.account.model.vo.QueryAppUserVO;
@@ -28,4 +29,6 @@
     void membershipEnd();
 
     List<QueryAppUserVO> listAll(@Param("query") QueryAppUser query);
+
+    List<SelectDto> getSelects(@Param("studentIds") List<Integer> studentIds);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
index 18c4266..2830077 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
@@ -1,6 +1,8 @@
 package com.dsh.account.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.account.dto.CreateHistoryDto;
+import com.dsh.account.dto.GetHistoryDto;
 import com.dsh.account.dto.StudentSearch;
 import com.dsh.account.dto.TStudentDto;
 import com.dsh.account.entity.TStudent;
@@ -24,4 +26,8 @@
     List<TStudentDto> selectAll(@Param("item") StudentSearch search);
 
     TStudentDto selectWebOne(@Param("id") Integer id);
+
+    void createHistory(@Param("createHistoryDto") CreateHistoryDto createHistoryDto);
+
+    List<GetHistoryDto> getHistory();
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index d59f757..1d4aa55 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -1,6 +1,7 @@
 package com.dsh.account.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.account.dto.SelectDto;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.model.AddAppUserVo;
 import com.dsh.account.model.JoinPlayPaiVo;
@@ -144,4 +145,6 @@
 
     Map<String,Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId,String lon,String lat);
 
+
+    List<SelectDto> getSelects(List<Integer> studentIds);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index 0c4f69a..008f808 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -1,6 +1,8 @@
 package com.dsh.account.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.account.dto.CreateHistoryDto;
+import com.dsh.account.dto.GetHistoryDto;
 import com.dsh.account.dto.StudentSearch;
 import com.dsh.account.dto.TStudentDto;
 import com.dsh.account.entity.TStudent;
@@ -107,4 +109,8 @@
     List<TStudentDto> listAll( StudentSearch search);
 
     TStudentDto listOne(Integer id);
+
+    void createHistory(CreateHistoryDto createHistoryDto);
+
+    List<GetHistoryDto> getHistory();
 }
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 007a6a5..656063c 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
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.account.dto.SelectDto;
 import com.dsh.account.entity.*;
 import com.dsh.account.enums.RechargeRecordEnum;
 import com.dsh.account.feignclient.activity.IntroduceRewardsClient;
@@ -161,6 +162,12 @@
         return map;
     }
 
+
+    @Override
+    public List<SelectDto> getSelects(List<Integer> studentIds) {
+        return this.baseMapper.getSelects(studentIds);
+    }
+
     @Override
     public ClassInfoVo queryUserOfStus(Integer id) {
         TAppUser tAppUser = this.baseMapper.selectById(id);
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 25ade80..3d66997 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
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.account.dto.CreateHistoryDto;
+import com.dsh.account.dto.GetHistoryDto;
 import com.dsh.account.dto.StudentSearch;
 import com.dsh.account.dto.TStudentDto;
 import com.dsh.account.entity.Coach;
@@ -824,5 +826,15 @@
         return this.baseMapper.selectWebOne(id);
     }
 
+    @Override
+    public void createHistory(CreateHistoryDto createHistoryDto) {
+         this.baseMapper.createHistory(createHistoryDto);
+    }
+
+    @Override
+    public List<GetHistoryDto> getHistory() {
+        return this.baseMapper.getHistory();
+    }
+
 
 }
diff --git a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
index 4b5cfd9..39c9f71 100644
--- a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
@@ -57,4 +57,14 @@
             and t1.state != 3
         </where>
     </select>
+    <select id="getSelects" resultType="com.dsh.account.dto.SelectDto">
+        SELECT ts.id ,ts.`name` as value
+        FROM t_student ts
+        <where>
+            ts.id in
+            <foreach collection="studentIds" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </where>
+    </select>
 </mapper>
diff --git a/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml b/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml
index 09bab21..2450b6c 100644
--- a/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/TStudentMapper.xml
@@ -21,6 +21,11 @@
         <result column="isDefault" property="isDefault" />
 
     </resultMap>
+    <insert id="createHistory">
+        insert into t_usetime_history (createBy,pleasePic,passPic,insertTime)
+
+            value(#{createHistoryDto.createBy},#{createHistoryDto.pleasePic},#{createHistoryDto.passPic},#{createHistoryDto.date})
+    </insert>
 
     <select id="selectAll" resultType="com.dsh.account.dto.TStudentDto">
         SELECT * FROM (
@@ -60,5 +65,9 @@
         where o.id = #{id}
 
     </select>
+    <select id="getHistory" resultType="com.dsh.account.dto.GetHistoryDto">
+        SELECT
+
+    </select>
 
 </mapper>
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
new file mode 100644
index 0000000..e60bb31
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -0,0 +1,108 @@
+package com.dsh.course.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.dsh.course.entity.StudentClassInfo;
+import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.entity.dto.ClassListDto;
+import com.dsh.course.entity.dto.SelectDto;
+import com.dsh.course.entity.dto.updateTimeDto;
+import com.dsh.course.feignclient.account.AppUserClient;
+import com.dsh.course.service.CoursePackageStudentService;
+import com.dsh.course.service.TCoursePackagePaymentService;
+import com.dsh.course.util.ResultUtil;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.swing.text.html.parser.Entity;
+import java.util.Date;
+import java.util.List;
+
+@Api
+@CrossOrigin
+@RestController
+@RequestMapping("/courdent")
+public class CourseStudentController {
+    @Autowired
+    CoursePackageStudentService studentService ;
+    @Autowired
+    TCoursePackagePaymentService paymentService;
+    //获取学员课时数信息
+    @RequestMapping("/getInfo")
+    @ResponseBody
+    public StudentClassInfo list(@RequestParam("tStudentId")Integer tStudentId) {
+
+//        System.out.println("------------>"+tStudentId);
+
+
+        StudentClassInfo studentClassInfo = studentService.listAll(tStudentId);
+
+//        Date maxDate = studentService.getMaxDate(tStudentId);
+        Date minDate = studentService.getMinDate(tStudentId);
+        System.out.println("===========>"+studentClassInfo);
+        Integer totalHours = studentClassInfo.getTotalHours();
+        Integer hasHours = studentClassInfo.getRestHours();
+        Integer restHours = totalHours-hasHours;
+        studentClassInfo.setHasHours(restHours);
+        studentClassInfo.setInDate(minDate);
+        return studentClassInfo;
+    }
+    //获取学员课程列表
+    @RequestMapping("/getClassList")
+    @ResponseBody
+    public List<ClassListDto> listClass(@RequestParam("tStudentId")Integer tStudentId) {
+        System.out.println("==========getClassList===tStudentId===="+tStudentId);
+    List<ClassListDto> listDtos = studentService.getClassList(tStudentId);
+    System.out.println("======listDtos======"+listDtos);
+    return  listDtos;
+
+    }
+
+    //获取学员有效期
+    @RequestMapping("/getUseTime")
+    @ResponseBody
+    public Date getUseTime(@RequestParam("tStudentId")Integer tStudentId) {
+                Date maxDate = studentService.getMaxDate(tStudentId);
+
+        return  maxDate;
+
+    }
+
+    //批量修改有效期
+    @RequestMapping("/updateUseDate")
+    @ResponseBody
+    public void updateUseDate(@RequestBody updateTimeDto updateTimeDto ){
+        System.out.println("=========updateUseDate=====>="+updateTimeDto);
+        List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", updateTimeDto.getTStudentId()));
+
+        System.out.println("=========paymentList=====>="+paymentList);
+
+        for (TCoursePackagePayment payment: paymentList) {
+//            payment.setUseTime(updateTimeDto.getDate());
+            paymentService.updateUseTime(payment.getId(),updateTimeDto.getDate());
+        }
+        System.out.println("=======updateUseDate=======>"+paymentList);
+
+
+    }
+    @Resource
+    private AppUserClient appUserClient;
+    //获取可转移学员
+    @RequestMapping("/getSelect")
+    @ResponseBody
+    public List<SelectDto> getSelect(@RequestParam("payId")Integer payId){
+
+        List<Integer> studentIds = paymentService.getStudentIds(payId);
+    System.out.println("=========studentIds=================>"+studentIds);
+
+        List<SelectDto> selectDtos =   appUserClient.getSelects(studentIds);
+
+        return selectDtos;
+    }
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java b/cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java
new file mode 100644
index 0000000..5a684a0
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java
@@ -0,0 +1,15 @@
+package com.dsh.course.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StudentClassInfo {
+    private Date inDate;
+    private Integer totalHours;
+    private Integer hasHours;
+    private Integer restHours;
+    private Integer giftHours;
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
index e1a770a..7592fa6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -151,4 +151,8 @@
     @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;
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java
new file mode 100644
index 0000000..c482bb5
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java
@@ -0,0 +1,23 @@
+package com.dsh.course.entity.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ClassListDto {
+    private Integer id;
+    private String className;
+
+    private String classType;
+
+    private Date insertTime;
+
+    private Integer hasClassHours;
+
+    private Integer totalClassHours;
+
+    private Integer laveClassHours;
+
+
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java
new file mode 100644
index 0000000..d13f6d6
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java
@@ -0,0 +1,9 @@
+package com.dsh.course.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class SelectDto {
+    Integer id;
+    String value;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java
new file mode 100644
index 0000000..0d974ac
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java
@@ -0,0 +1,17 @@
+package com.dsh.course.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class updateTimeDto {
+    @JsonFormat(pattern = "yyy-MM-dd HH:mm:ss")
+    private Date date;
+    private Integer tStudentId;
+}
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 7f68da6..12efef4 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.dto.SelectDto;
 import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -44,4 +45,6 @@
     Boolean addCourseInfoRecord(TCourseInfoRecord tCourseInfoRecord);
 
 
+    @PostMapping("/appUser/getSelects")
+    List<SelectDto> getSelects(List<Integer> studentIds);
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
index 3a6eba8..a8668aa 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
@@ -3,8 +3,11 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.entity.CoursePackageStudent;
+import com.dsh.course.entity.StudentClassInfo;
+import com.dsh.course.entity.dto.ClassListDto;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -29,4 +32,10 @@
      */
     List<Map<String, Object>> queryCoursePackageStudentList(Page<Map<String, Object>> page, @Param("coursePackageSchedulingId") Long coursePackageSchedulingId,
                                                             @Param("userId") List<Integer> userId, @Param("studentId") List<Integer> studentId);
+
+    StudentClassInfo listAll(@Param("tStudentId")Integer tStudentId);
+
+    List<ClassListDto> getClassList(@Param("tStudentId")Integer tStudentId);
+
+    Date getMaxDate(@Param("tStudentId")Integer tStudentId);
 }
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 a610fc6..e5f35fc 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
@@ -7,6 +7,7 @@
 import com.dsh.course.model.BillingRequest;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -57,4 +58,8 @@
      */
     List<Map<String, Object>> queryWalkInStudentList(Page<Map<String, Object>> page, @Param("coursePackageId") Integer coursePackageId, @Param("coursePackagePaymentId") List<Long> coursePackagePaymentId,
                                                      @Param("userIds") List<Integer> userIds, @Param("studentIds") List<Integer> studentIds);
+
+    void updateUseTime(@Param("id")Long id,  @Param("date") Date date);
+
+    List<Integer> getStudentIds(@Param("id")Integer payId);
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
index 817ccc0..af73f12 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
@@ -3,8 +3,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.course.entity.CoursePackageStudent;
+import com.dsh.course.entity.StudentClassInfo;
+import com.dsh.course.entity.dto.ClassListDto;
 import com.dsh.course.model.QueryCoursePackageStudentList;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -26,4 +29,11 @@
      */
     List<Map<String, Object>> queryCoursePackageStudentList(Page<Map<String, Object>> page, QueryCoursePackageStudentList queryCoursePackageStudentList);
 
+    StudentClassInfo listAll(Integer tStudentId);
+
+    List<ClassListDto> getClassList(Integer tStudentId);
+
+    Date getMaxDate(Integer tStudentId);
+
+    Date getMinDate(Integer tStudentId);
 }
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 17f21f8..f659ea8 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
@@ -13,6 +13,7 @@
 import com.dsh.course.model.vo.response.*;
 import com.dsh.course.util.ResultUtil;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -118,4 +119,7 @@
     ResultUtil payCourse(PayCourseReq req, Integer userId);
 
 
+    void updateUseTime(Long id, Date date);
+
+    List<Integer> getStudentIds(Integer payId);
 }
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 c420f00..0178d52 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
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.dto.ClassListDto;
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.StudentClient;
 import com.dsh.course.feignclient.account.model.AppUser;
@@ -79,4 +81,24 @@
         }
         return list;
     }
+
+    @Override
+    public StudentClassInfo listAll(Integer tStudentId) {
+        return this.baseMapper.listAll(tStudentId);
+    }
+
+    @Override
+    public List<ClassListDto> getClassList(Integer tStudentId) {
+        return this.baseMapper.getClassList(tStudentId);
+    }
+
+    @Override
+    public Date getMaxDate(Integer tStudentId) {
+        return this.baseMapper.getMaxDate(tStudentId);
+    }
+
+    @Override
+    public Date getMinDate(Integer tStudentId) {
+        return null;
+    }
 }
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 58c31cd..e352998 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
@@ -1009,5 +1009,15 @@
 
     }
 
+    @Override
+    public void updateUseTime(Long id, Date date) {
+        this.baseMapper.updateUseTime(id,date);
+    }
+
+    @Override
+    public List<Integer> getStudentIds(Integer payId) {
+       return  this.baseMapper.getStudentIds(payId);
+    }
+
 
 }
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
index 3b900eb..2c7eee1 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
@@ -26,4 +26,40 @@
         </if>
         order by insertTime desc
     </select>
+
+    <select id="listAll" resultType="com.dsh.course.entity.StudentClassInfo">
+        SELECT
+            SUM( py.totalClassHours ) AS totalHours,
+            SUM( py.laveClassHours ) AS restHours,
+            SUM( py.giftClassHours ) as giftHours
+        FROM
+            t_course_package_payment  py
+
+           where  py.studentId = #{tStudentId}
+
+    </select>
+
+    <select id="getClassList" resultType="com.dsh.course.entity.dto.ClassListDto">
+
+        SELECT
+            *,
+            pg.NAME AS className,
+            ty.`name` AS classType
+        FROM
+            t_course_package_payment py
+                LEFT JOIN t_course_package pg ON py.coursePackageId = pg.id
+                LEFT JOIN t_course_package_type ty ON pg.type = ty.id
+
+        <where>
+            <if test="null != tStudentId">
+                py.studentId = #{tStudentId}
+            </if>
+        </where>
+    </select>
+    <select id="getMaxDate" resultType="java.util.Date">
+        SELECT
+            MAX(useTime)
+        FROM t_course_package_payment py
+        where py.studentId = #{tStudentId}
+    </select>
 </mapper>
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
index f39a410..2b2bb8f 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -25,6 +25,11 @@
         <result column="state" property="state" />
         <result column="insertTime" property="insertTime" />
     </resultMap>
+    <update id="updateUseTime">
+        update t_course_package_payment
+        set useTime = #{date}
+        where id = #{id}
+    </update>
 
 
     <select id="queryCountNumber" resultType="int">
@@ -116,4 +121,15 @@
         </if>
         order by insertTime desc
     </select>
+    <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};
+
+
+    </select>
 </mapper>
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java
new file mode 100644
index 0000000..dffe07c
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java
@@ -0,0 +1,23 @@
+package com.dsh.course.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ClassListDto {
+    private Integer id;
+    private String className;
+
+    private String classType;
+
+    private Date insertTime;
+
+    private Integer hasClassHours;
+
+    private Integer totalClassHours;
+
+    private Integer laveClassHours;
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java
new file mode 100644
index 0000000..1d68539
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java
@@ -0,0 +1,18 @@
+package com.dsh.course.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CreateHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private Integer createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+
+    private Integer studentId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java
new file mode 100644
index 0000000..6427461
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java
@@ -0,0 +1,20 @@
+package com.dsh.course.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GetHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
new file mode 100644
index 0000000..82a9b46
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
@@ -0,0 +1,12 @@
+package com.dsh.course.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+@AllArgsConstructor
+public class updateTimeDto {
+    private Date date;
+    private Integer tStudentId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
index 5de948c..beea36f 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
@@ -1,5 +1,7 @@
 package com.dsh.course.feignClient.account;
 
+import com.dsh.course.dto.CreateHistoryDto;
+import com.dsh.course.dto.GetHistoryDto;
 import com.dsh.course.feignClient.account.model.QueryAppUser;
 import com.dsh.course.feignClient.account.model.QueryAppUserVO;
 
@@ -44,4 +46,15 @@
 
     @PostMapping("/student/webOneStudent")
     TStudentDto queryOneWebUser(@RequestParam("id") Integer id);
+
+    @PostMapping("/student/update")
+    void updateStudent(TStudent tStudent);
+
+
+    @PostMapping("/student/createHistory")
+    void createHistory(CreateHistoryDto historyDto);
+
+
+    @PostMapping("/student/getHisory")
+    List<GetHistoryDto> getHisory();
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
new file mode 100644
index 0000000..8ea647a
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
@@ -0,0 +1,62 @@
+package com.dsh.course.feignClient.course;
+
+import com.dsh.course.dto.ClassListDto;
+import com.dsh.course.dto.updateTimeDto;
+import com.dsh.course.model.dto.StudentClassInfo;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient("mb-cloud-course")
+public interface CourseStuddentClient {
+
+
+    /**
+     * 拿到学运信息
+     * @param tStudentId
+     * @return
+     */
+    @RequestMapping("/courdent/getInfo")
+    StudentClassInfo getInfo(@RequestParam("tStudentId")Integer tStudentId);
+
+
+    /**
+     * 拿到学员课程列表
+     * @param tStudentId
+     * @return
+     */
+    @RequestMapping("/courdent/getClassList")
+
+    List<ClassListDto> listClass(@RequestParam("tStudentId") Integer tStudentId);
+
+    /**
+     * 拿到学有效期
+     * @param tStudentId
+     * @return
+     */
+    @RequestMapping("/courdent/getUseTime")
+    Date getUseTime(@RequestParam("tStudentId") Integer tStudentId);
+
+
+    /**
+     * 批量修改有效期
+     * @param updateTimeDto
+     * @return
+     */
+    @RequestMapping("/courdent/updateUseDate")
+    void updateUseDate(@RequestBody updateTimeDto updateTimeDto);
+
+
+    /**
+     * 获取可以转移的学员
+     * @param payId
+     * @return
+     */
+    @RequestMapping("/courdent/getSelect")
+    List<SelectDto> getSelect(@RequestParam("payId") Integer payId);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java
new file mode 100644
index 0000000..0d92a9e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java
@@ -0,0 +1,15 @@
+package com.dsh.course.feignClient.course.model;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StudentClassInfo {
+    private Date inDate;
+    private Integer totalHours;
+    private Integer hasHours;
+    private Integer restHours;
+    private Integer giftHours;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java
new file mode 100644
index 0000000..06d2662
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java
@@ -0,0 +1,29 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.dto.CreateHistoryDto;
+import com.dsh.course.dto.GetHistoryDto;
+import com.dsh.guns.modular.system.model.Store;
+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 java.util.List;
+
+/**
+ * 常见问题
+ */
+@FeignClient(value = "mb-cloud-other")
+public interface HistoryClient {
+
+
+    @RequestMapping("base/site/getStoreByStoreStaffId")
+    List<Store> getStoreByStoreStaffId(@RequestBody Integer id);
+
+    @PostMapping("/class/hisotory")
+    void createHistory(CreateHistoryDto historyDto);
+
+
+    @PostMapping("/class/gethisotory")
+    List<GetHistoryDto> getHisory(@RequestBody Integer studentId);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java b/cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java
new file mode 100644
index 0000000..c32d7de
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java
@@ -0,0 +1,15 @@
+package com.dsh.course.model.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StudentClassInfo {
+    private Date inDate;
+    private Integer totalHours;
+    private Integer hasHours;
+    private Integer restHours;
+    private Integer giftHours;
+
+}
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 91685e1..47961f2 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
@@ -1,19 +1,32 @@
 package com.dsh.guns.modular.system.controller.system;
 
 
-import com.dsh.course.dto.StudentSearch;
-import com.dsh.course.dto.TStudentDto;
+import com.dsh.course.dto.*;
+import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.feignClient.course.CourseStuddentClient;
+import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
+import com.dsh.course.feignClient.other.HistoryClient;
+import com.dsh.course.model.dto.StudentClassInfo;
+import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.modular.system.model.TStudent;
+import com.dsh.guns.modular.system.model.User;
+import com.dsh.guns.modular.system.model.dto.SelectDto;
 import com.dsh.guns.modular.system.service.ITStudentService;
 import com.dsh.guns.modular.system.util.ResultUtil;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 控制器
@@ -28,6 +41,17 @@
     private String PREFIX = "/system/tStudent/";
     @Autowired
     private ITStudentService itStudentService;
+
+    @Resource
+    private CourseStuddentClient courseStuddentClient;
+
+    @Resource
+    private HistoryClient historyClient;
+
+
+
+
+
 
     /**
      * 跳转到首页
@@ -50,12 +74,87 @@
      */
     @RequestMapping("/tStudent_update/{tStudentId}")
     public String tStudentUpdate(@PathVariable("tStudentId") Integer tStudentId, Model model) {
+
+
         System.out.println("======>t"+tStudentId);
+        //查询学员信息
         TStudentDto tStudentDto = itStudentService.listOne(tStudentId);
-        model.addAttribute("item",tStudentDto);
+        model.addAttribute("item", tStudentDto);
+        if (tStudentDto.getLateralSurface()!=null) {
+            String[] pics = tStudentDto.getLateralSurface().split(";");
+            model.addAttribute("pic1", pics[0]);
+            System.out.println("=====pic1==" + pics[0]);
+            if (pics.length > 1) {
+                model.addAttribute("pic2", pics[1]);
+                System.out.println("=====pic2==" + pics[1]);
+            }
+            if (pics.length > 3) {
+                model.addAttribute("pic3", pics[2]);
+                System.out.println("=====pic3==" + pics[2]);
+            }
+        }
+
+
+        //查询课时信息
+       StudentClassInfo studentClassInfo = courseStuddentClient.getInfo(tStudentId);
+        model.addAttribute("studentClassInfo", studentClassInfo);
+
+        //查询课程列表
+        List<ClassListDto> classListDtos = courseStuddentClient.listClass(tStudentId);
+        model.addAttribute("classListDtos", classListDtos);
+
+
+        return PREFIX + "tStudentEdit_first.html";
+    }
+
+    @RequestMapping("/tStudent_info/{tStudentId}")
+    public String tStudentInfo(@PathVariable("tStudentId") Integer tStudentId, Model model) {
+        System.out.println("======>t"+tStudentId);
+        //查询学员信息
+        TStudentDto tStudentDto = itStudentService.listOne(tStudentId);
+        model.addAttribute("item", tStudentDto);
+        if (tStudentDto.getLateralSurface()!=null) {
+            String[] pics = tStudentDto.getLateralSurface().split(";");
+            model.addAttribute("pic1", pics[0]);
+            System.out.println("=====pic1==" + pics[0]);
+            if (pics.length > 1) {
+                model.addAttribute("pic2", pics[1]);
+                System.out.println("=====pic2==" + pics[1]);
+            }
+            if (pics.length > 3) {
+                model.addAttribute("pic3", pics[2]);
+                System.out.println("=====pic3==" + pics[2]);
+            }
+        }
+
+
+        //查询课时信息
+        StudentClassInfo studentClassInfo = courseStuddentClient.getInfo(tStudentId);
+        model.addAttribute("studentClassInfo", studentClassInfo);
+
+
+        System.out.println("=======controller====studentClassInfo==="+studentClassInfo);
         return PREFIX + "tStudentEdit.html";
     }
+
+
+
+
 //
+
+    /**
+     * 获取有效期
+     */
+    @RequestMapping("/getUseTime/{tStudentId}")
+    @ResponseBody
+    public ResultUtil getMax(@PathVariable("tStudentId") Integer tStudentId) {
+        Date useTime = courseStuddentClient.getUseTime(tStudentId);
+        Map<String, Date> map = new HashMap<>();
+        map.put("useTime",useTime);
+
+        return new ResultUtil<>(0,0,null,map,null);
+    }
+
     /**
      * 获取列表
      */
@@ -67,6 +166,19 @@
         return itStudentService.listAll(search);
     }
 
+    /**
+     * 获取列表
+     */
+    @RequestMapping("/classList/{tStudentId}")
+    @ResponseBody
+    public ResultUtil listClass(@PathVariable("tStudentId") Integer tStudentId) {
+        List<ClassListDto> classListDtos = courseStuddentClient.listClass(tStudentId);
+        Map<String,List<ClassListDto>> map = new HashMap<>();
+        map.put("items",classListDtos);
+        return new ResultUtil<>(0,0,null,map,null);
+    }
+
+
 
     @RequestMapping("/ttt")
     @ResponseBody
@@ -75,55 +187,87 @@
         System.out.println("============学员查询接口=========");
         return ResultUtil.success();
     }
-//    /**
-//     * 获取一个用户信息
-//     */
-//    @RequestMapping("/list")
-//    @ResponseBody
-//    public TStudentDto listOne(Integer id) {
-//
-//        System.out.println("============学员查询接口=========");
-//        return itStudentService.listOne(id);
-//    }
+
+    /**
+     * 学员修改
+     */
+    @RequestMapping(value = "/update")
+    @ResponseBody
+
+    public ResultUtil update(@RequestBody TStudent tStudent, String image1, String image2, String image3 ) {
+        String lateralSurface = image1+";"+image2+";"+image3;
+        tStudent.setLateralSurface(lateralSurface);
+        System.out.println("学员体测表的值"+lateralSurface);
+        itStudentService.update(tStudent);
+//        appUserClient.updateStudent(tStudent);
+        return new ResultUtil(0,0,"编辑成功");
+    }
+
+    @Resource
+    private AppUserClient appUserClient;
+    /**
+     * 学员详情修改有效期
+     */
+
+    @RequestMapping("/updateClassTime")
+    @ResponseBody
+    public ResultUtil updateClassTime(@RequestParam("date") String date, @RequestParam("id")Integer id, String passPic, String pleasePic ){
+
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Date date1;
+        try {
+            date1 = dateFormat.parse(date);
+        } catch (ParseException e) {
+            // 处理日期转换异常
+            e.printStackTrace();
+            return ResultUtil.error("日期格式错误");
+        }
 
 
-//
-//    /**
-//     * 新增
-//     */
-//    @RequestMapping(value = "/add")
-//    @ResponseBody
-//    public Object add(TStudent tStudent) {
-//        tStudentService.insert(tStudent);
-//        return SUCCESS_TIP;
-//    }
-//
-//    /**
-//     * 删除
-//     */
-//    @RequestMapping(value = "/delete")
-//    @ResponseBody
-//    public Object delete(@RequestParam Integer tStudentId) {
-//        tStudentService.deleteById(tStudentId);
-//        return SUCCESS_TIP;
-//    }
-//
-//    /**
-//     * 修改
-//     */
-//    @RequestMapping(value = "/update")
-//    @ResponseBody
-//    public Object update(TStudent tStudent) {
-//        tStudentService.updateById(tStudent);
-//        return SUCCESS_TIP;
-//    }
-//
-//    /**
-//     * 详情
-//     */
-//    @RequestMapping(value = "/detail/{tStudentId}")
-//    @ResponseBody
-//    public Object detail(@PathVariable("tStudentId") Integer tStudentId) {
-//        return tStudentService.selectById(tStudentId);
-//    }
+        updateTimeDto updateTimeDto =new updateTimeDto(date1,id);
+        System.out.println("======updateTimeDto=====>"+updateTimeDto);
+        courseStuddentClient.updateUseDate(updateTimeDto);
+
+
+        CreateHistoryDto historyDto = new CreateHistoryDto();
+        historyDto.setPleasePic(pleasePic);
+        historyDto.setPassPic(passPic);
+        User user = UserExt.getUser();
+        historyDto.setCreateBy(user.getId());
+        historyDto.setStudentId(id);
+
+//        appUserClient.createHistory(historyDto);
+        historyClient.createHistory(historyDto);
+
+
+        return ResultUtil.success();
+
+    }
+
+
+    /**
+     * 查询有效期记录
+     */
+    @RequestMapping(value = "/getHisory/{id}")
+    @ResponseBody
+    public ResultUtil getHisory(@PathVariable("id") Integer studentId) {
+       List<GetHistoryDto> getHistoryDtos =  historyClient.getHisory(studentId);
+        Map<String,List<GetHistoryDto>> map = new HashMap<>();
+        map.put("items",getHistoryDtos);
+
+        return new ResultUtil(0,0,"编辑成功",map,"");
+    }
+
+    /**
+     * 查询有效期记录
+     */
+    @RequestMapping(value = "/getUserSlect/{id}")
+    @ResponseBody
+    public ResultUtil getUserSlect(@PathVariable("id") Integer payId) {
+
+       List<SelectDto>  selectDtos =  courseStuddentClient.getSelect(payId);
+        Map<String,List<SelectDto>> map = new HashMap<>();
+        map.put("options",selectDtos);
+        return new ResultUtil(0,0,"编辑成功",map,"");
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
index b82646f..ee71eca 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -19,7 +19,6 @@
 import com.dsh.guns.core.exception.GunsException;
 import com.dsh.guns.core.log.LogObjectHolder;
 import com.dsh.guns.core.util.SinataUtil;
-import com.dsh.guns.core.util.ToolUtil;
 import com.dsh.guns.modular.system.controller.util.MD5;
 import com.dsh.guns.modular.system.factory.UserFactory;
 import com.dsh.guns.modular.system.model.Role;
@@ -28,6 +27,7 @@
 import com.dsh.guns.modular.system.service.IUserService;
 import com.dsh.guns.modular.system.transfer.UserDto;
 import com.dsh.guns.modular.system.util.OssUploadUtil;
+import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -36,12 +36,9 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.naming.NoPermissionException;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.io.File;
-import java.util.Date;
-import java.util.Map;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * 系统管理员控制器
@@ -382,14 +379,18 @@
      */
     @RequestMapping(method = RequestMethod.POST, path = "/uploadImg")
     @ResponseBody
-    public String uploadImg(@RequestPart("file") MultipartFile picture) {
-        String pictureName = "";
+    public ResultUtil uploadImg(@RequestPart("file") MultipartFile picture, HttpServletResponse response) {
+        String value = "";
         try {
-            pictureName = OssUploadUtil.ossUpload("img/", picture);
+            value = OssUploadUtil.ossUpload("img/", picture);
         }catch (Exception e){
             e.printStackTrace();
         }
-        return pictureName;
+        System.out.println("图片返回地址-------"+value);
+        Map<String, String> map = new HashMap<>();
+        map.put("value",value);
+//        return  ResultUtil.success(0,map);
+        return  ResultUtil.getResult(0,null,null,map);
     }
 
 
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
new file mode 100644
index 0000000..0916ff1
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
@@ -0,0 +1,9 @@
+package com.dsh.guns.modular.system.model.dto;
+
+import lombok.Data;
+
+@Data
+public class SelectDto {
+    Integer id;
+    String value;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java
index 31f28d3..3fb2ac1 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java
@@ -3,6 +3,7 @@
 
 import com.dsh.course.dto.StudentSearch;
 import com.dsh.course.dto.TStudentDto;
+import com.dsh.guns.modular.system.model.TStudent;
 
 import java.util.List;
 
@@ -19,4 +20,6 @@
     List<TStudentDto> listAll(StudentSearch search);
 
     TStudentDto listOne(Integer id);
+
+    void update(TStudent tStudent);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java
index da883d7..8fcfd25 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java
@@ -3,6 +3,7 @@
 import com.dsh.course.dto.StudentSearch;
 import com.dsh.course.dto.TStudentDto;
 import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.guns.modular.system.model.TStudent;
 import com.dsh.guns.modular.system.service.ITStudentService;
 import org.springframework.stereotype.Service;
 
@@ -32,4 +33,9 @@
     public TStudentDto listOne(Integer id) {
         return appUserClient.queryOneWebUser(id);
     }
+
+    @Override
+    public void update(TStudent tStudent) {
+        appUserClient.updateStudent(tStudent);
+    }
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java
index 4d76814..ef54622 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java
@@ -46,7 +46,7 @@
         return code;
     }
 
-    private ResultUtil(Integer status, Integer code, String msg) {
+    public ResultUtil(Integer status, Integer code, String msg) {
         this.status = status;
         this.code = code;
         this.msg = msg;
@@ -59,7 +59,7 @@
         this.data = data;
     }
 
-    private ResultUtil(Integer status, Integer code, String msg, T data, String str) {
+    public ResultUtil(Integer status, Integer code, String msg, T data, String str) {
         this.status = status;
         this.code = code;
         this.msg = msg;
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html
index e61e1a4..1c0bba5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html
@@ -34,6 +34,7 @@
                             @}
 
                                 <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/>
+                            <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/>
 
                             @if(shiro.hasPermission("/tStudent/delete")){
                                 <#button name="删除" icon="fa-remove" clickFun="TStudent.delete()" space="true"/>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
index 0c8b15d..68e832b 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
@@ -36,402 +36,955 @@
     let amis = amisRequire('amis/embed');
     // 通过替换下面这个配置来生成不同页面
     let amisJSON = {
-      "type": "page",
+      "type": "form",
+      "title": "编辑",
       "body": [
         {
-          "type": "page",
-          "api": {
-            "method": "post",
-            "url": "/api/v1/sys/user/v2/add",
-            "messages": {
+          "type": "grid",
+          "id": "u:747bced162da",
+          "columns": [
+          ]
+        }, {
+          "type": "input-text",
+          "id": "u:32cb99df3eb8",
+          "label": "id",
+          "name": "id",
+          "size": "md",
+          "mode": "horizontal",
+          "hidden": true,
+          "value":`${item.id!}`
+        },
+        {
+          "type": "input-text",
+          "id": "u:32cb99df3eb8",
+          "label": "id",
+          "name": "id",
+          "size": "md",
+          "mode": "horizontal",
+          "hidden": false
+        },
+        {
+          "type": "tpl",
+          "id": "u:2dd6bf52bf62",
+          "tpl": "学员信息",
+          "inline": true,
+          "wrapperComponent": "h2"
+        },
+        {
+          "type": "input-text",
+          "label": "所属用户",
+          "id": "u:b60e636c6098",
+          "name": "userName",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "disabled": true
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp姓名",
+          "id": "u:0b2463bbffe8",
+          "name": "name",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true
+        },
+        {
+          "type": "input-date",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp生日",
+          "name": "birthday",
+          "id": "u:9fe564fc31fc",
+          "size": "md",
+          "mode": "horizontal",
+          "embed": false,
+          "format": "YYYY-MM-DD hh:mm:ss",
+          "inputFormat": "YYYY-MM-DD",
+          "required": true
+        },
+        {
+          "type": "select",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp性别",
+          "name": "sex",
+          "id": "u:196a32204b25",
+          "size": "md",
+          "mode": "horizontal",
+          "options": [
+            {
+              "label": "男",
+              "value": "1"
+            },
+            {
+              "label": "女",
+              "value": "2"
             }
+          ],
+          "multiple": false,
+          "required": true
+        },
+        {
+          "type": "input-text",
+          "label": "联系电话",
+          "name": "phone",
+          "id": "u:e7cf50e4f755",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "isPhoneNumber": "请输入正确的手机号"
           },
+          "validateOnChange": true,
+          "validations": {
+            "isPhoneNumber": true
+          }
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp身高",
+          "name": "height",
+          "id": "u:c69b5e6ae298",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "maximum": "请输入正确的身高",
+            "isNumeric": "请输入数字"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "maximum": 250,
+            "isNumeric": true
+          },
+          "addOn": {
+            "label": "cm",
+            "type": "text"
+          }
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp体重",
+          "name": "weight",
+          "id": "u:e1e5d1a95e71",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "addOn": {
+            "label": "kg",
+            "type": "text"
+          },
+          "validationErrors": {
+            "maximum": "请输入正确的身高",
+            "isNumeric": "请输入数字"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "maximum": 250,
+            "isNumeric": true
+          }
+        },
+        {
+          "type": "input-text",
+          "id": "u:75a1f3f0c491",
+          "label": "身份证号",
+          "name": "idCard",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "isId": "请输入正确的身份证号"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "isId": true
+          }
+        },
+        {
+          "type": "tpl",
+          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp体测表:",
+          "inline": true,
+          "wrapperComponent": "",
+          "id": "u:8224ab367da8"
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image1",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline"
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image2",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline"
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image3",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline"
+        },
+        {
+          "type": "container",
           "body": [
             {
-              "type": "grid",
-              "id": "u:747bced162da",
-              "columns": [
-              ]
-            },
-            {
               "type": "tpl",
-              "tpl": "学员信息",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
               "inline": true,
-              "wrapperComponent": "h2",
-              "id": "u:2dd6bf52bf62"
-
-            },
-            {
-              "type": "input-text",
-              "label": "所属用户",
-              "name": "userName",
-              "id": "u:b60e636c6098",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.userName}`
-            },
-            {
-              "type": "input-text",
-              "label": "姓名",
-              "name": "name",
-              "id": "u:0b2463bbffe8",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.name}`
-            },
-            {
-              "type": "input-date",
-              "label": "生日",
-              "name": "birthday",
-              "id": "u:9fe564fc31fc",
-              "embed": false,
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.birthday}`
-            },
-            {
-              "type": "select",
-              "label": "性别",
-              "name": "sex",
-              "options": [
-                {
-                  "label": "男",
-                  "value": "1"
-                },
-                {
-                  "label": "女",
-                  "value": "2"
-                }
-              ],
-              "id": "u:196a32204b25",
-              "multiple": false,
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.sex}`
-            },
-            {
-              "type": "input-text",
-              "label": "联系电话",
-              "name": "phone",
-              "id": "u:e7cf50e4f755",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.phone}`
-            },
-            {
-              "type": "input-text",
-              "label": "身高",
-              "name": "height",
-              "id": "u:c69b5e6ae298",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.height}`
-            },
-            {
-              "type": "input-text",
-              "label": "体重",
-              "name": "weight",
-              "id": "u:e1e5d1a95e71",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.weight}`
-            },
-            {
-              "type": "input-text",
-              "label": "身份证号",
-              "name": "idCard",
-              "id": "u:75a1f3f0c491",
-              "size": "md",
-              "mode": "horizontal",
-              "value" :`${item.idCard}`
-            },
-            {
-              "type": "grid",
-              "columns": [
-              ],
-              "id": "u:c54439aa7c6f"
-            },
-            {
-              "type": "tpl",
-              "tpl": "体测表:",
-              "inline": true,
-              "wrapperComponent": "",
-              "id": "u:8224ab367da8"
-            },
-            {
-              "type": "image",
-              "id": "u:9b276f60fd0f",
-              "src" :`${item.lateralSurface}`
-            },
-            {
-              "type": "divider",
-              "id": "u:c8ddd15c688d"
-            },
-            {
-              "type": "tpl",
-              "id": "u:2dd6bf52bf62",
-              "tpl": "学员信息",
-              "inline": true,
-              "wrapperComponent": "h2"
-            },
-            {
-              "type": "input-date",
-              "label": "入学时间",
-              "name": "birthday",
-              "id": "u:9fe564fc31fc",
-              "embed": false,
-              "mode": "horizontal",
-              "size": "md"
-            },
-            {
-              "type": "input-date",
-              "label": "课时有效期",
-              "name": "birthday",
-              "id": "u:fe7e8d2223a3",
-              "embed": false,
-              "mode": "inline",
-              "size": "md"
+              "wrapperComponent": ""
             },
             {
               "type": "button",
-              "label": "按钮",
+              "id": "u:783ce71739db",
+              "label": "保存",
               "onEvent": {
                 "click": {
                   "actions": [
                     {
-                      "args": {},
+                      "componentId": "u:7c5f75a3b7b5",
+                      "args": {
+                      },
+                      "outputVar": "responseResult",
+                      "actionType": "submit"
+                    },
+                    {
+                      "args": {
+                      },
+                      "script": "parent.layer.close(window.parent.TStudent.layerIndex);\n\n                    window.parent.TStudent.table.refresh();",
+                      "actionType": "custom"
+                    }
+                  ]
+                }
+              },
+              "level": "info"
+            },
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": ""
+            },
+            {
+              "type": "button",
+              "id": "u:008bc32396cc",
+              "label": "取消",
+              "onEvent": {
+                "click": {
+                  "actions": [
+                    {
+                      "args": {
+                      },
                       "script": "parent.layer.close(window.parent.TStudent.layerIndex);\nconsole.log(\"===关闭\")",
                       "actionType": "custom"
                     }
                   ]
                 }
               },
-              "id": "u:e4351e254501",
-              "block": false,
-              "size": "sm"
+              "block": false
+            }
+          ],
+          "style": {
+            "position": "static",
+            "display": "block"
+          },
+          "id": "u:59d68a32f7fd"
+        },
+        {
+          "type": "divider",
+          "id": "u:c8ddd15c688d"
+        },
+        {
+          "type": "tpl",
+          "id": "u:2dd6bf52bf62",
+          "tpl": "学员信息",
+          "inline": true,
+          "wrapperComponent": "h2"
+        },
+        {
+          "type": "input-date",
+          "id": "u:9fe564fc31fc",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp入学时间:",
+          "name": "birthday",
+          "embed": false,
+          "mode": "inline",
+          "size": "md",
+          "value":`${studentClassInfo.inDate}`
+        },
+        {
+          "type": "tpl",
+          "id": "u:8224ab367da8",
+          "tpl": "&nbsp&nbsp",
+          "inline": true,
+          "wrapperComponent": ""
+        },
+        {
+          "type": "service",
+          "id": "u:59d68a32f7fd",
+          "body": [
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": "",
+              "style": {
+                "paddingBottom": "100",
+                "marginBottom": "100"
+              }
             },
             {
-              "type": "button",
-              "label": "按钮",
-              "id":"ttt",
-              "onEvent": {
-                "click": {
-                  "actions": [
-                  ]
-                }
-              },
-              "id": "u:301c5568d984",
-              "block": false,
-              "size": "sm"
+              "type": "tpl",
+              "id": "u:6653713899d6",
+              "tpl": "课时有效期:",
+              "inline": true,
+              "wrapperComponent": "",
+              "style": {
+                "paddingBottom": "100",
+                "marginBottom": "100"
+              }
             },
             {
-              "type": "input-text",
-              "label": "总课时数",
-              "name": "idCard",
-              "id": "u:75a1f3f0c491",
-              "mode": "horizontal",
-              "size": "md"
-            },
-            {
-              "type": "input-text",
-              "label": "已学课时数",
-              "name": "idCard",
-              "id": "u:885bcd604fdd",
-              "mode": "horizontal",
-              "size": "md"
-            },
-            {
-              "type": "input-text",
-              "label": "剩余课时数",
-              "name": "idCard",
-              "id": "u:0b490e767715",
-              "mode": "horizontal",
-              "size": "md"
-            },
-            {
-              "type": "input-text",
-              "label": "赠送课时数",
-              "name": "idCard",
-              "id": "u:9c67ae2b5106",
-              "mode": "horizontal",
-              "size": "md"
+              "type": "date",
+              "id": "u:5126d1e417f2",
+              "valueFormat": "YYYY-MM-DD",
+              "format": "YYYY-MM-DD",
+              "name":"useTime"
             },
             {
               "type": "tpl",
               "id": "u:8224ab367da8",
-              "tpl": "已报名课程:",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": ""
+            },
+            {
+              "type": "button",
+              "id": "u:eb0bf26b811c",
+              "label": "更改有效期",
+              "onEvent": {
+                "click": {
+                  "actions": [
+                    {
+                      "actionType": "dialog",
+                      "dialog": {
+                        "type": "form",
+                        "title": "",
+                        "body": [
+                          {
+                            "type": "form",
+                            "title": "",
+                            "body": [
+                              {
+                                "type": "tpl",
+                                "id": "u:ad3ad29f909f",
+                                "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp更改有效期",
+                                "inline": true,
+                                "wrapperComponent": "h3"
+                              },
+                              {
+                                "type": "input-text",
+                                "label": "id",
+                                "name": "id",
+                                "id": "u:eb67fad3f986",
+                                "hidden": true
+                              },
+                              {
+                                "type": "input-date",
+                                "label": "请选择时间:",
+                                "name": "date",
+                                "id": "u:b987087f666d",
+                                "description": "",
+                                "placeholder": "请选择时间",
+                                "format": "YYYY-MM-DD",
+                                "inputFormat": "YYYY-MM-DD"
+                              },
+                              {
+                                "type": "input-image",
+                                "label": "上传申请凭证:",
+                                "name": "pleasePic",
+                                "autoUpload": true,
+                                "proxy": true,
+                                "uploadType": "fileReceptor",
+                                "imageClassName": "r w-full",
+                                "id": "u:301ea2de9546",
+                                "accept": ".jpeg, .jpg, .png, .gif",
+                                "multiple": false,
+                                "hideUploadButton": false,
+                                "receiver": {
+                                  "url": "/mgr/uploadImg",
+                                  "method": "post"
+                                },
+                                "value": "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/99325878956443d68bb835145a8dca49.png"
+                              },
+                              {
+                                "type": "input-image",
+                                "id": "u:8ead1783a724",
+                                "label": "上传申请凭证:",
+                                "name": "passPic",
+                                "autoUpload": true,
+                                "proxy": true,
+                                "uploadType": "fileReceptor",
+                                "imageClassName": "r w-full",
+                                "accept": ".jpeg, .jpg, .png, .gif",
+                                "multiple": false,
+                                "hideUploadButton": false,
+                                "receiver": {
+                                  "url": "/mgr/uploadImg",
+                                  "method": "post"
+                                },
+                                "value": "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/99325878956443d68bb835145a8dca49.png"
+                              },
+                              {
+                                "type": "container",
+                                "id": "u:59d68a32f7fd",
+                                "body": [
+                                  {
+                                    "type": "tpl",
+                                    "id": "u:8224ab367da8",
+                                    "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+                                    "inline": true,
+                                    "wrapperComponent": ""
+                                  },
+                                  {
+                                    "type": "button",
+                                    "id": "u:783ce71739db",
+                                    "label": "保存",
+                                    "onEvent": {
+                                      "click": {
+                                        "actions": [
+                                          {
+                                            "componentId": "u:044fac037276",
+                                            "actionType": "submit"
+                                          },
+                                          {
+                                            "actionType": "reload",
+                                            "componentId": "u:59d68a32f7fd",
+                                            "dataMergeMode": "merge"
+                                          }
+                                        ]
+                                      }
+                                    },
+                                    "level": "info"
+                                  },
+                                  {
+                                    "type": "tpl",
+                                    "id": "u:8224ab367da8",
+                                    "tpl": "&nbsp&nbsp&nbsp",
+                                    "inline": true,
+                                    "wrapperComponent": ""
+                                  },
+                                  {
+                                    "type": "button",
+                                    "id": "u:008bc32396cc",
+                                    "label": "取消",
+                                    "onEvent": {
+                                      "click": {
+                                        "actions": [
+                                          {
+                                            "actionType": "closeDialog"
+                                          }
+                                        ]
+                                      }
+                                    },
+                                    "block": false
+                                  }
+                                ],
+                                "style": {
+                                  "position": "static",
+                                  "display": "block"
+                                }
+                              }
+                            ],
+                            "id": "u:c2157dea4513",
+                            "api": {
+                              "url": "/tStudent/updateClassTime",
+                              "method": "post",
+                              "requestAdaptor": "",
+                              "adaptor": "",
+                              "messages": {
+                              },
+                              "dataType": "form-data"
+                            }
+                          }
+                        ],
+                        "showCloseButton": true,
+                        "showErrorMsg": true,
+                        "showLoading": true,
+                        "className": "app-popover",
+                        "id": "u:044fac037276",
+                        "closeOnEsc": false
+                      }
+                    }
+                  ]
+                }
+              },
+              "block": false,
+              "size": "xs",
+              "level": "info"
+            },
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
               "inline": true,
               "wrapperComponent": ""
             },
             {
               "type": "button",
               "id": "u:e4351e254501",
-              "label": "按钮",
+              "label": "变更记录",
               "onEvent": {
                 "click": {
                   "actions": [
-                  ]
-                }
-              },
-              "block": false,
-              "size": "sm"
-            },
-            {
-              "type": "button",
-              "id": "u:ea5e20546af6",
-              "label": "按钮",
-              "onEvent": {
-                "click": {
-                  "actions": [
-                  ]
-                }
-              },
-              "block": false,
-              "size": "sm"
-            },
-            {
-              "type": "crud",
-              "id": "u:109d99e159cd",
-              "syncLocation": false,
-              "api": {
-                "method": "get",
-                "url": ""
-              },
-              "columns": [
-                {
-                  "name": "id",
-                  "label": "ID",
-                  "type": "text",
-                  "id": "u:21721a4d89f6"
-                },
-                {
-                  "type": "text",
-                  "label": "课程名称",
-                  "id": "u:7f42dca56223"
-                },
-                {
-                  "type": "text",
-                  "label": "课程类型",
-                  "id": "u:3448716fbf69"
-                },
-                {
-                  "type": "date",
-                  "label": "报名时间",
-                  "id": "u:fabf6836f645"
-                },
-                {
-                  "type": "text",
-                  "label": "总课时数",
-                  "id": "u:29594df9f5ac"
-                },
-                {
-                  "type": "text",
-                  "label": "已上课时数",
-                  "id": "u:d5c9d7549565"
-                },
-                {
-                  "type": "text",
-                  "label": "剩余课时数",
-                  "id": "u:57f34a127f19"
-                },
-                {
-                  "type": "operation",
-                  "label": "操作",
-                  "buttons": [
                     {
-                      "type": "button",
-                      "label": "删除",
-                      "actionType": "ajax",
-                      "level": "link",
-                      "className": "text-danger",
-                      "confirmText": "确定要删除?",
-                      "api": {
-                        "method": "post",
-                        "url": ""
-                      },
-                      "id": "u:0102419e28c2"
-                    },
-                    {
-                      "label": "查看",
-                      "type": "button",
                       "actionType": "dialog",
-                      "level": "link",
                       "dialog": {
-                        "title": "查看详情",
-                        "body": {
-                          "type": "form",
-                          "api": "xxx/update",
-                          "body": [
-                            {
-                              "name": "id",
-                              "label": "ID",
-                              "type": "static"
+                        "type": "form",
+                        "title": "弹框标题",
+                        "body": [
+                          {
+                            "type": "input-text",
+                            "label": "id",
+                            "name": "id",
+                            "id": "u:0a5bc6f58ee8"
+                          },
+                          {
+                            "type": "crud",
+                            "syncLocation": false,
+                            "api": {
+                              "method": "get",
+                              "url": "/tStudent/getHisory/$id"
                             },
-                            {
-                              "name": "engine",
-                              "label": "渲染引擎",
-                              "type": "static"
+                            "columns": [
+                              {
+                                "name": "insertTime",
+                                "label": "操作时间",
+                                "type": "date",
+                                "id": "u:b652786dc9df"
+                              },
+                              {
+                                "type": "text",
+                                "label": "操作人",
+                                "name": "createBy",
+                                "id": "u:88bf448f69b0"
+                              },
+                              {
+                                "type": "image",
+                                "label": "申请凭证",
+                                "name": "picPlease",
+                                "id": "u:b22cfb737009"
+                              },
+                              {
+                                "type": "image",
+                                "label": "同意凭证",
+                                "name": "picPass",
+                                "id": "u:2a9071d0bda1"
+                              }
+                            ],
+                            "bulkActions": [
+                            ],
+                            "itemActions": [
+                            ],
+                            "id": "u:bfea49b7b171",
+                            "perPageAvailable": [
+                              10
+                            ],
+                            "messages": {
                             }
-                          ]
-                        }
-                      },
-                      "id": "u:e2e4d6c5e962"
-                    },
-                    {
-                      "label": "编辑",
-                      "type": "button",
-                      "actionType": "dialog",
-                      "level": "link",
-                      "dialog": {
-                        "title": "编辑",
-                        "body": {
-                          "type": "form",
-                          "api": "xxx/update",
-                          "body": [
-                            {
-                              "name": "id",
-                              "label": "ID",
-                              "type": "input-text"
-                            },
-                            {
-                              "name": "engine",
-                              "label": "渲染引擎",
-                              "type": "input-text"
-                            }
-                          ]
-                        }
-                      },
-                      "id": "u:5ea94f031686"
+                          }
+                        ],
+                        "showCloseButton": true,
+                        "showErrorMsg": true,
+                        "showLoading": true,
+                        "className": "app-popover",
+                        "id": "u:c4e97065bccb"
+                      }
                     }
-                  ],
-                  "id": "u:13c653566505"
+                  ]
                 }
-              ],
-              "bulkActions": [
-              ],
-              "itemActions": [
-              ],
-              "features": [
-                "delete",
-                "view",
-                "update"
+              },
+              "block": false,
+              "size": "xs",
+              "level": "info"
+            },
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": ""
+            }
+          ],
+          "style": {
+            "position": "static",
+            "display": "inline-block"
+          },
+          "isFixedHeight": false,
+          "isFixedWidth": false,
+          "wrapperComponent": "div",
+          "messages": {
+          },
+          "api": {
+            "url": "/tStudent/getUseTime/$id",
+            "method": "get"
+          }
+        },
+        {
+          "type": "input-text",
+          "id": "u:8c717c6b4700",
+          "label": "总课时数:",
+          "name": "idCard0",
+          "mode": "horizontal",
+          "size": "md",
+          "themeCss": {
+            "labelClassName": {
+              "padding-and-margin:default": {
+                "marginTop": "",
+                "marginRight": "",
+                "marginBottom": "",
+                "marginLeft": ""
+              }
+            }
+          },
+          "labelClassName": "labelClassName-49dd1bda82f4",
+          "value":`${studentClassInfo.totalHours}`
+        },
+        {
+          "type": "input-text",
+          "id": "u:885bcd604fdd",
+          "label": "已学课时数:",
+          "name": "idCard1",
+          "mode": "horizontal",
+          "size": "md",
+          "value":`${studentClassInfo.hasHours}`
+        },
+        {
+          "type": "input-text",
+          "id": "u:0b490e767715",
+          "label": "剩余课时数",
+          "name": "idCard2",
+          "mode": "horizontal",
+          "size": "md",
+          "value":`${studentClassInfo.restHours}`
+        },
+        {
+          "type": "input-text",
+          "id": "u:9c67ae2b5106",
+          "label": "赠送课时数",
+          "name": "idCard3",
+          "mode": "horizontal",
+          "size": "md",
+          "value":`${studentClassInfo.giftHours}`
+        },
+        {
+          "type": "crud",
+          "syncLocation": false,
+          "api": {
+            "method": "get",
+            "url": "/tStudent/classList/$id"
+          },
+          "columns": [
+            {
+              "name": "className",
+              "label": "课程名称",
+              "type": "text",
+              "id": "u:eff92c911684"
+            },
+            {
+              "type": "mapping",
+              "label": "课程类型",
+              "name": "classType",
+              "id": "u:2f1091a380a8",
+              "map": {
+                "*": "通配值"
+              }
+            },
+            {
+              "type": "date",
+              "label": "报名时间",
+              "name": "reportDate",
+              "id": "u:36ab5e408a48"
+            },
+            {
+              "type": "text",
+              "label": "总课时数",
+              "name": "totalTime",
+              "id": "u:fba93556fb2e"
+            },
+            {
+              "type": "text",
+              "label": "已上课时数",
+              "name": "haveTime",
+              "id": "u:b55a5ac7f49d"
+            },
+            {
+              "type": "text",
+              "label": "剩余课时数",
+              "name": "restTime",
+              "id": "u:abb78021df40"
+            },
+            {
+              "type": "operation",
+              "id": "u:bbd866281f8f",
+              "buttons": [
+                {
+                  "type": "button",
+                  "label": "转移",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "actionType": "dialog",
+                          "dialog": {
+                            "type": "form",
+                            "title": "弹框标题",
+                            "body": [
+                              {
+                                "type": "select",
+                                "label": "请选择被转移学员",
+                                "name": "select",
+                                "id": "u:80a2266885a3",
+                                "multiple": false,
+                                "mode": "horizontal",
+                                "size": "lg",
+                                "horizontal": {
+                                  "leftFixed": "lg"
+                                },
+                                "source": {
+                                  "url": "/tStudent/getUserSlect/$id",
+                                  "method": "get"
+                                },
+                                "labelField": "value",
+                                "valueField": "id"
+                              },
+                              {
+                                "type": "input-text",
+                                "label": "id",
+                                "name": "id",
+                                "id": "u:1e2c394fa299"
+                              },
+                              {
+                                "type": "tpl",
+                                "tpl": "对,你刚刚点击了",
+                                "wrapperComponent": "",
+                                "inline": false,
+                                "id": "u:7c4a5a6b60d0"
+                              }
+                            ],
+                            "showCloseButton": true,
+                            "showErrorMsg": true,
+                            "showLoading": true,
+                            "className": "app-popover",
+                            "id": "u:a612413d932d"
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "id": "u:fcd7f36c5f88",
+                  "level": "link"
+                },
+                {
+                  "type": "button",
+                  "label": "赠课",
+                  "onEvent": {
+                    "click": {
+                      "actions": [
+                        {
+                          "actionType": "dialog",
+                          "dialog": {
+                            "type": "form",
+                            "title": "弹框标题",
+                            "body": [
+                              {
+                                "type": "input-text",
+                                "label": "用户姓名:",
+                                "name": "text",
+                                "id": "u:c260d6dbc161",
+                                "mode": "horizontal"
+                              },
+                              {
+                                "type": "input-text",
+                                "label": "用户电话",
+                                "name": "phone",
+                                "id": "u:c00d1204430d",
+                                "mode": "horizontal"
+                              },
+                              {
+                                "type": "service",
+                                "id": "u:f6ab941852f1",
+                                "body": [
+                                  {
+                                    "type": "select",
+                                    "id": "u:a7766815916b",
+                                    "label": "选择学员",
+                                    "name": "select",
+                                    "multiple": false,
+                                    "mode": "horizontal",
+                                    "size": "lg",
+                                    "value": ""
+                                  }
+                                ]
+                              },
+                              {
+                                "type": "button",
+                                "label": "按钮",
+                                "onEvent": {
+                                  "click": {
+                                    "actions": [
+                                    ]
+                                  }
+                                },
+                                "id": "u:5fcf1222f6ea"
+                              },
+                              {
+                                "type": "input-text",
+                                "label": "id",
+                                "name": "id",
+                                "id": "u:fe0979ee23df"
+                              },
+                              {
+                                "type": "tpl",
+                                "tpl": "对,你刚刚点击了",
+                                "wrapperComponent": "",
+                                "inline": false,
+                                "id": "u:5fe4b4c9e423"
+                              }
+                            ],
+                            "showCloseButton": true,
+                            "showErrorMsg": true,
+                            "showLoading": true,
+                            "className": "app-popover",
+                            "id": "u:552bd1b3464d"
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "id": "u:ae1e6e73beb9",
+                  "level": "link"
+                }
               ]
             }
           ],
-          "id": "u:7c5f75a3b7b5",
-          "actions": [
-          ]
+          "bulkActions": [
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "inline": true,
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp已报名课程:",
+              "wrapperComponent": ""
+            },
+            {
+              "label": "ajax请求",
+              "type": "button",
+              "actionType": "ajax",
+              "api": {
+                "method": "get",
+                "url": "/ttt",
+                "data": {
+                  "item": "$items"
+                },
+                "id": "u:f706584d4a0c"
+              },
+              "id": "u:38a6f5402e72"
+            },
+            {
+              "label": "退费",
+              "type": "button",
+              "id": "u:4b1f37ea569c"
+            },
+            {
+              "label": "退费",
+              "type": "button",
+              "id": "u:6997f0c17d7b"
+            }
+          ],
+          "itemActions": [
+          ],
+          "features": [
+            "update",
+            "view",
+            "bulkUpdate",
+            "delete"
+          ],
+          "id": "u:88517068101f",
+          "perPageAvailable": [
+            10
+          ],
+          "messages": {
+          },
+          "headerToolbar": [
+            {
+              "type": "bulk-actions",
+              "align": "left"
+            }
+          ],
+          "columnsTogglable": false,
+          "affixHeader": true,
+          "source": ""
+        },
+        {
+          "type": "container",
+          "body": [
+          ],
+          "style": {
+            "position": "static",
+            "display": "block"
+          },
+          "id": "u:1afed7a178d1"
         }
       ],
-      "id": "u:2cb85ab1ec8c",
-      "showCloseButton": true,
-      "closeOnEsc": true,
-      "showErrorMsg": true,
-      "showLoading": true,
-      "dataMapSwitch": false,
-      "size": "md",
-      "aside": [
-      ]
+      "id": "u:7c5f75a3b7b5",
+      "api": {
+        "method": "post",
+        "url": "/tStudent/update",
+        "messages": {
+        }
+      },
+      "actions": [
+      ],
+      "mode": "normal",
+      "validateOnChange": true
     };
     let amisScoped = amis.embed('#root', amisJSON);
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html
new file mode 100644
index 0000000..41683c9
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html
@@ -0,0 +1,362 @@
+<!DOCTYPE html>
+<html lang="zh">
+<head>
+  <meta charset="UTF-8" />
+  <title>amis demo</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta
+          name="viewport"
+          content="width=device-width, initial-scale=1, maximum-scale=1"
+  />
+  <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/sdk.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/helper.css" />
+  <link rel="stylesheet" href="${ctxPath}/sdk/iconfont.css" />
+  <!-- 这是默认主题所需的,如果是其他主题则不需要 -->
+  <!-- 从 1.1.0 开始 sdk.css 将不支持 IE 11,如果要支持 IE11 请引用这个 css,并把前面那个删了 -->
+  <!-- <link rel="stylesheet" href="sdk-ie11.css" /> -->
+  <!-- 不过 amis 开发团队几乎没测试过 IE 11 下的效果,所以可能有细节功能用不了,如果发现请报 issue -->
+  <style>
+    html,
+    body,
+    .app-wrapper {
+      position: relative;
+      width: 100%;
+      height: 100%;
+      margin: 0;
+      padding: 0;
+    }
+  </style>
+</head>
+<body>
+<div id="root" class="app-wrapper"></div>
+<script src="${ctxPath}/sdk/sdk.js"></script>
+<script type="text/javascript">
+  (function () {
+    let amis = amisRequire('amis/embed');
+    // 通过替换下面这个配置来生成不同页面
+    let amisJSON = {
+      "type": "form",
+      "body": [
+        {
+          "type": "grid",
+          "id": "u:747bced162da",
+          "columns": [
+          ]
+        },
+        {
+          "type": "input-text",
+          "id": "u:32cb99df3eb8",
+          "label": "id",
+          "name": "id",
+          "size": "md",
+          "mode": "horizontal",
+          "hidden": true,
+          "value":`${item.id!}`
+        },
+
+        {
+          "type": "tpl",
+          "id": "u:2dd6bf52bf62",
+          "tpl": "学员信息",
+          "inline": true,
+          "wrapperComponent": "h2"
+        },
+        {
+          "type": "input-text",
+          "label": "所属用户",
+          "id": "u:b60e636c6098",
+          "name": "userName",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "disabled": true,
+          "value":`${item.userName!}`
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp姓名",
+          "id": "u:0b2463bbffe8",
+          "name": "name",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "value":`${item.name!}`
+        },
+        {
+          "type": "input-date",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp生日",
+          "name": "birthday",
+          "id": "u:9fe564fc31fc",
+          "size": "md",
+          "mode": "horizontal",
+          "embed": false,
+          "format": "YYYY-MM-DD hh:mm:ss",
+          "inputFormat": "YYYY-MM-DD",
+          "required": true,
+          "value":`${item.birthday!}`
+        },
+        {
+          "type": "select",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp性别",
+          "name": "sex",
+          "id": "u:196a32204b25",
+          "size": "md",
+          "mode": "horizontal",
+          "options": [
+            {
+              "label": "男",
+              "value": "1"
+            },
+            {
+              "label": "女",
+              "value": "2"
+            }
+          ],
+          "multiple": false,
+          "required": true,
+          "value":`${item.sex!}`
+        },
+        {
+          "type": "input-text",
+          "label": "联系电话",
+          "name": "phone",
+          "id": "u:e7cf50e4f755",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "isPhoneNumber": "请输入正确的手机号"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "isPhoneNumber": true
+          },
+          "value":`${item.phone!}`
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp身高",
+          "name": "height",
+          "id": "u:c69b5e6ae298",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "maximum": "请输入正确的身高",
+            "isNumeric": "请输入数字"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "maximum": 250,
+            "isNumeric": true
+          },
+          "addOn": {
+            "label": "cm",
+            "type": "text"
+          },
+          "value":`${item.height!}`
+        },
+        {
+          "type": "input-text",
+          "label": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp体重",
+          "name": "weight",
+          "id": "u:e1e5d1a95e71",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "addOn": {
+            "label": "kg",
+            "type": "text"
+          },
+          "validationErrors": {
+            "maximum": "请输入正确的身高",
+            "isNumeric": "请输入数字"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "maximum": 250,
+            "isNumeric": true
+          },
+          "value":`${item.weight!}`
+        },
+        {
+          "type": "input-text",
+          "id": "u:75a1f3f0c491",
+          "label": "身份证号",
+          "name": "idCard",
+          "size": "md",
+          "mode": "horizontal",
+          "required": true,
+          "validationErrors": {
+            "isId": "请输入正确的身份证号"
+          },
+          "validateOnChange": true,
+          "validations": {
+            "isId": true
+          },
+          "value":`${item.idCard!}`
+        },
+        {
+          "type": "tpl",
+          "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp体测表:",
+          "inline": true,
+          "wrapperComponent": "",
+          "id": "u:8224ab367da8"
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image1",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline",
+          "value":`${pic1!}`
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image2",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline",
+          "value":`${pic2!}`
+        },
+        {
+          "type": "input-image",
+          "id": "u:53e0d6a37b69",
+          "label": "",
+          "name": "image3",
+          "autoUpload": true,
+          "proxy": true,
+          "uploadType": "fileReceptor",
+          "imageClassName": "r w-full",
+          "receiver": {
+            "url": "/mgr/uploadImg",
+            "method": "post"
+          },
+          "accept": ".jpeg, .jpg, .png, .gif",
+          "multiple": false,
+          "hideUploadButton": false,
+          "fixedSize": false,
+          "mode": "inline",
+          "value":`${pic3!}`
+        },
+        {
+          "type": "container",
+          "body": [
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": ""
+            },
+            {
+              "type": "button",
+              "id": "u:783ce71739db",
+              "label": "保存",
+              "onEvent": {
+                "click": {
+                  "actions": [
+                    {
+                      "componentId": "u:7c5f75a3b7b5",
+                      "args": {
+                      },
+                      "outputVar": "responseResult",
+                      "actionType": "submit"
+                    },
+                    {
+                      "args": {
+                      },
+                      "script": "parent.layer.close(window.parent.TStudent.layerIndex);\n\n                    window.parent.TStudent.table.refresh();",
+                      "actionType": "custom"
+                    }
+                  ]
+                }
+              },
+              "level": "info"
+            },
+            {
+              "type": "tpl",
+              "id": "u:8224ab367da8",
+              "tpl": "&nbsp&nbsp&nbsp",
+              "inline": true,
+              "wrapperComponent": ""
+            },
+            {
+              "type": "button",
+              "id": "u:008bc32396cc",
+              "label": "取消",
+              "onEvent": {
+                "click": {
+                  "actions": [
+                    {
+                      "args": {
+                      },
+                      "script": "parent.layer.close(window.parent.TStudent.layerIndex);\nconsole.log(\"===关闭\")",
+                      "actionType": "custom"
+                    }
+                  ]
+                }
+              },
+              "block": false
+            }
+          ],
+          "style": {
+            "position": "static",
+            "display": "block"
+          },
+          "id": "u:59d68a32f7fd"
+        }
+      ],
+      "id": "u:7c5f75a3b7b5",
+      "api": {
+        "method": "post",
+        "url": "/tStudent/update",
+        "messages": {
+        }
+      },
+      "actions": [
+      ],
+      "title": "编辑",
+      "mode": "normal",
+      "validateOnChange": true
+    };
+    let amisScoped = amis.embed('#root', amisJSON);
+
+
+  })();
+
+  function test(){
+    console.log("测试成功")
+  }
+
+  var myButton = document.getElementById("ttt");
+  myButton.addEventListener("click",test);
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js b/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js
index 13c9571..c25024a 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js
@@ -62,7 +62,7 @@
 };
 
 /**
- * 打开查看详情
+ * 打开修改
  */
 TStudent.openTStudentDetail = function () {
     if (this.check()) {
@@ -78,6 +78,26 @@
     }
 };
 
+
+/**
+ * 打开详情
+ */
+TStudent.openTStudentDetail1 = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '详情',
+            area: ['100%', '100%'],  //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tStudent/tStudent_info/' + TStudent.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+
+
 /**
  * 删除
  */
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java
index f4d73c3..924484e 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.other.entity.Banner;
+import com.dsh.other.entity.CreateHistoryDto;
+import com.dsh.other.entity.GetHistoryDto;
 import com.dsh.other.model.BannerVo;
 import com.dsh.other.service.IBannerService;
 import com.dsh.other.util.ResultUtil;
@@ -10,12 +12,10 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -53,4 +53,24 @@
             return ResultUtil.runErr();
         }
     }
+
+
+    @ResponseBody
+    @PostMapping("/class/hisotory")
+    public  void createHistory(@RequestBody CreateHistoryDto createHistoryDto){
+        createHistoryDto.setDate(new Date());
+
+        bannerService.createHistory(createHistoryDto);
+
+
+    }
+
+    @ResponseBody
+    @PostMapping("/class/gethisotory")
+    public  List<GetHistoryDto> getHistory(@RequestBody Integer studentId){
+
+      return   bannerService.gethistory(studentId);
+
+
+    }
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java b/cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java
new file mode 100644
index 0000000..22179fd
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java
@@ -0,0 +1,18 @@
+package com.dsh.other.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CreateHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private Integer createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+    private Integer studentId;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java b/cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java
new file mode 100644
index 0000000..8124433
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java
@@ -0,0 +1,20 @@
+package com.dsh.other.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GetHistoryDto {
+
+    private String pleasePic;
+    private String passPic;
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date date;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java
index 0f3cbeb..4327a96 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java
@@ -2,10 +2,18 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.other.entity.Banner;
+import com.dsh.other.entity.CreateHistoryDto;
+import com.dsh.other.entity.GetHistoryDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
  * @date 2023/7/11 17:46
  */
 public interface BannerMapper extends BaseMapper<Banner> {
+    void createHistory(@Param("createHistoryDto") CreateHistoryDto createHistoryDto);
+
+    List<GetHistoryDto> getHistory(@Param("studentId") Integer studentId);
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java b/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java
index cf7c7d5..db12891 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java
@@ -2,10 +2,17 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.other.entity.Banner;
+import com.dsh.other.entity.CreateHistoryDto;
+import com.dsh.other.entity.GetHistoryDto;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
  * @date 2023/7/11 17:47
  */
 public interface IBannerService extends IService<Banner> {
+    void createHistory(CreateHistoryDto createHistoryDto);
+
+    List<GetHistoryDto> gethistory(Integer studentId);
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java
index 7982499..d8ecc6a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java
@@ -2,9 +2,13 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.other.entity.Banner;
+import com.dsh.other.entity.CreateHistoryDto;
+import com.dsh.other.entity.GetHistoryDto;
 import com.dsh.other.mapper.BannerMapper;
 import com.dsh.other.service.IBannerService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -12,4 +16,13 @@
  */
 @Service
 public class BannerServiceImpl extends ServiceImpl<BannerMapper, Banner> implements IBannerService {
+    @Override
+    public void createHistory(CreateHistoryDto createHistoryDto) {
+        this.baseMapper.createHistory(createHistoryDto);
+    }
+
+    @Override
+    public List<GetHistoryDto> gethistory(Integer studentId) {
+        return baseMapper.getHistory(studentId);
+    }
 }
diff --git a/cloud-server-other/src/main/resources/mapper/BannerMapper.xml b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml
new file mode 100644
index 0000000..1d2db10
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.other.mapper.BannerMapper">
+
+    <insert id="createHistory">
+        insert into t_usetime_history (createBy,pleasePic,passPic,insertTime,studentId)
+
+            value(#{createHistoryDto.createBy},#{createHistoryDto.pleasePic},#{createHistoryDto.passPic},#{createHistoryDto.date},#{createHistoryDto.studentId})
+
+    </insert>
+    <select id="getHistory" resultType="com.dsh.other.entity.GetHistoryDto">
+        SELECT hs.insertTime,hs.passPic,hs.pleasePic,us.`name`
+        from t_usetime_history hs
+                 LEFT JOIN sys_user us on hs.createBy = us.id
+        where hs.studentId = #{studentId}
+
+    </select>
+</mapper>

--
Gitblit v1.7.1