luoyisheng
2023-09-19 9c6740ce3038e1041979537ecbe7d801c21d0559
9.19
36个文件已修改
21个文件已添加
3103 ■■■■ 已修改文件
.idea/modules.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/workspace.xml 414 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/TStudentMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java 254 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ITStudentService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/TStudentServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ResultUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html 1245 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html 362 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tStudent/tStudent.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/BannerMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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>
.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" />
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;
    }
}
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;
    }
}
cloud-server-account/src/main/java/com/dsh/account/dto/CreateHistoryDto.java
New file
@@ -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;
}
cloud-server-account/src/main/java/com/dsh/account/dto/GetHistoryDto.java
New file
@@ -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;
}
cloud-server-account/src/main/java/com/dsh/account/dto/SelectDto.java
New file
@@ -0,0 +1,9 @@
package com.dsh.account.dto;
import lombok.Data;
@Data
public class SelectDto {
    Integer id;
    String value;
}
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);
}
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();
}
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;
@@ -139,4 +140,6 @@
    List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time, String longitude, String latitude);
    List<QueryAppUserVO> listAll(QueryAppUser query);
    List<SelectDto> getSelects(List<Integer> studentIds);
}
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();
}
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;
@@ -151,6 +152,12 @@
    public List<QueryAppUserVO> listAll(QueryAppUser query) {
       return appUserMapper.listAll(query);
    }
    @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);
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();
    }
}
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>
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>
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
New file
@@ -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;
    }
}
cloud-server-course/src/main/java/com/dsh/course/entity/StudentClassInfo.java
New file
@@ -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;
}
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -100,9 +100,7 @@
    private Integer absencesNumber;
    /**
     * 退课课时
     */
    @TableField("dropoutsNumber")
    private Integer dropoutsNumber;
    /**
     * 支付用户类型(1=用户,2=管理员)
     */
@@ -151,4 +149,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;
}
cloud-server-course/src/main/java/com/dsh/course/entity/dto/ClassListDto.java
New file
@@ -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;
}
cloud-server-course/src/main/java/com/dsh/course/entity/dto/SelectDto.java
New file
@@ -0,0 +1,9 @@
package com.dsh.course.entity.dto;
import lombok.Data;
@Data
public class SelectDto {
    Integer id;
    String value;
}
cloud-server-course/src/main/java/com/dsh/course/entity/dto/updateTimeDto.java
New file
@@ -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;
}
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);
}
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);
}
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);
}
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);
}
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);
}
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;
    }
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -910,5 +910,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);
    }
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1,5 +1,6 @@
package com.dsh.course.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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>
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>
cloud-server-management/src/main/java/com/dsh/course/dto/ClassListDto.java
New file
@@ -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;
}
cloud-server-management/src/main/java/com/dsh/course/dto/CreateHistoryDto.java
New file
@@ -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;
}
cloud-server-management/src/main/java/com/dsh/course/dto/GetHistoryDto.java
New file
@@ -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;
}
cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
New file
@@ -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;
}
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();
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseStuddentClient.java
New file
@@ -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);
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/StudentClassInfo.java
New file
@@ -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;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/HistoryClient.java
New file
@@ -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);
}
cloud-server-management/src/main/java/com/dsh/course/model/dto/StudentClassInfo.java
New file
@@ -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;
}
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,"");
    }
}
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);
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/SelectDto.java
New file
@@ -0,0 +1,9 @@
package com.dsh.guns.modular.system.model.dto;
import lombok.Data;
@Data
public class SelectDto {
    Integer id;
    String value;
}
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);
}
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);
    }
}
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;
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"/>
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);
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html
New file
@@ -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>
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;
    }
};
/**
 * 删除
 */
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);
    }
}
cloud-server-other/src/main/java/com/dsh/other/entity/CreateHistoryDto.java
New file
@@ -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;
}
cloud-server-other/src/main/java/com/dsh/other/entity/GetHistoryDto.java
New file
@@ -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;
}
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);
}
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);
}
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);
    }
}
cloud-server-other/src/main/resources/mapper/BannerMapper.xml
New file
@@ -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>