From d9dfe81a9e819d9da2d41cb57d674eff894c6605 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 05 九月 2023 11:36:21 +0800
Subject: [PATCH] 场地类型管理、场地管理、课包类型管理、教练管理、教练类型管理、福利视频分类管理、体测预约
---
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageTypeVO.java | 10
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteLockDTO.java | 35
cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java | 3
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos.html | 79
cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java | 5
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_edit.html | 91
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachSerchVO.java | 107
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java | 115
.idea/misc.xml | 8
cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java | 111
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java | 19
cloud-server-other/src/main/resources/mapper/StoreMapper.xml | 6
.idea/workspace.xml | 733 +-
cloud-server-account/mb-cloud-account.iml | 183
cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java | 4
cloud-server-other/src/main/resources/mapper/SiteMapper.xml | 72
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BodySideAppointmentMapper.java | 17
cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js | 426 +
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BodySideAppointment.java | 51
cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachChangeStateVO.java | 11
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TStoreStaff.java | 63
cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html | 133
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageTypeController.java | 127
cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js | 361 +
cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java | 105
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachTypeController.java | 75
cloud-server-management/src/main/webapp/static/js/common/ajax-object.js | 2
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BodySideAppointmentClient.java | 44
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_lock.html | 62
cloud-server-management/src/main/webapp/static/modular/system/coursePackageType/coursePackageType.js | 318 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html | 124
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackageType/CoursePackageType.html | 33
cloud-server-course/src/main/java/com/dsh/course/model/dto/TQueryBenefitsVideosDTO.java | 20
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/Site.java | 112
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java | 24
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/ExpireSiteSearchVO.java | 40
.idea/compiler.xml | 6
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSiteLock.js | 79
cloud-server-activity/mb-cloud-activity.iml | 162
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java | 45
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js | 614 ++
cloud-server-course/pom.xml | 5
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideos.java | 69
cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java | 24
cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js | 350 +
cloud-server-management/src/main/webapp/static/modular/system/tCoachType/tCoachType.js | 297 +
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBenefitsVedioVO.java | 11
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java | 20
cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java | 89
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java | 8
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html | 207
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java | 6
cloud-server-course/src/main/java/com/dsh/course/model/vo/CoursePackageTypeVO.java | 12
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java | 221
cloud-server-management/pom.xml | 4
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java | 22
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosVO.java | 26
cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/SiteSearchVO.java | 36
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java | 16
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 6
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html | 3
cloud-server-course/src/main/java/com/dsh/course/model/dto/CourseChangeStateDTO.java | 11
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_add.html | 233
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java | 3
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachTypeClient.java | 37
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteLockClient.java | 45
cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml | 33
cloud-server-account/pom.xml | 4
cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java | 51
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java | 49
cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html | 12
cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js | 3
cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html | 79
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java | 11
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java | 26
cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java | 49
cloud-server-activity/src/main/java/com/dsh/activity/model/TQueryBenefitsVO.java | 18
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html | 1
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CourseChangeStateDTO.java | 11
cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html | 21
cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java | 13
cloud-server-account/src/main/resources/mapper/CoachMapper.xml | 35
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java | 33
.idea/encodings.xml | 13
cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java | 91
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java | 19
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointmentVO.java | 34
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteDTO.java | 116
cloud-server-other/pom.xml | 6
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java | 1
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteAddDTO.java | 91
cloud-server-activity/pom.xml | 5
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java | 3
cloud-server-activity/src/main/java/com/dsh/activity/service/BodySideAppointmentService.java | 16
cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java | 8
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java | 16
cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java | 12
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java | 36
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosDTO.java | 20
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits.html | 71
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html | 247 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html | 91
cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml | 5
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_edit.html | 227
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteChangeStateVO.java | 21
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java | 243
cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html | 13
cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java | 103
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java | 11
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 7
cloud-server-auth/mb-cloud-auth.iml | 4
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_info.html | 233
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_add.html | 86
cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java | 6
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BenefitsVideoClient.java | 70
cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js | 340 +
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java | 55
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteAddDTO.java | 91
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/CityManager.java | 56
cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java | 6
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StoreStaffClient.java | 25
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 14
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java | 33
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 22
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java | 5
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java | 1
cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js | 393 +
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js | 701 +-
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 727 +-
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html | 1
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach.html | 80
cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteLockDTO.java | 39
cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java | 7
cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml | 27
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html | 59
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 57
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 42
cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js | 350 +
cloud-server-activity/src/main/java/com/dsh/activity/model/BenefitsVedioChangeStateVO.java | 12
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVedioChangeStateVO.java | 12
cloud-server-other/src/main/java/com/dsh/other/entity/Site.java | 3
.idea/vcs.xml | 1
.idea/modules.xml | 2
cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js | 1
cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js | 527 ++
cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js | 393 +
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteChangeStateVO.java | 21
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteSearchVO.java | 37
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Store.java | 139
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml | 34
cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreClient.java | 50
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVO.java | 18
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideoClassification.java | 50
cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js | 471 +
cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java | 40
cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java | 8
cloud-server-competition/pom.xml | 4
cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java | 26
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java | 20
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_add.html | 104
cloud-server-gateway/pom.xml | 5
cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java | 4
cloud-server-course/mb-cloud-course.iml | 10
cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html | 9
cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java | 9
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java | 3
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java | 13
cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java | 13
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachChangeStateVO.java | 11
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java | 7
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java | 79
cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java | 7
cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java | 8
cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java | 6
/dev/null | 327 -
cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java | 101
cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java | 3
cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml | 8
cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java | 3
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachType.java | 52
cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteDTO.java | 97
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java | 16
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoachType/TCoachType.html | 33
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java | 1
185 files changed, 13,074 insertions(+), 1,629 deletions(-)
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 4aac1ca..1048eab 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -8,10 +8,11 @@
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="mb-cloud-account" />
+ <module name="mb-cloud-gateway" />
<module name="mb-cloud-course" />
<module name="mb-cloud-management" />
- <module name="mb-cloud-competition (1)" />
<module name="mb-cloud-activity" />
+ <module name="mb-cloud-other" />
<module name="mb-cloud-competition" />
<module name="mb-cloud-auth" />
</profile>
@@ -21,9 +22,10 @@
<module name="mb-cloud-activity" target="1.8" />
<module name="mb-cloud-auth" target="1.8" />
<module name="mb-cloud-competition" target="1.8" />
- <module name="mb-cloud-competition (1)" target="1.8" />
<module name="mb-cloud-course" target="1.8" />
+ <module name="mb-cloud-gateway" target="1.8" />
<module name="mb-cloud-management" target="1.8" />
+ <module name="mb-cloud-other" target="1.8" />
<module name="mb-cloud-parent" target="1.8" />
</bytecodeTargetLevel>
</component>
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 4da5718..e49cf54 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -2,22 +2,13 @@
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/cloud-server-account" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-activity" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-auth" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-competition" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-course" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/java" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/resources" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/cloud-server-gateway" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-management" charset="UTF-8" />
- <file url="file://$PROJECT_DIR$/cloud-server-management/src/main/java" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/cloud-server-other" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/cloud-server-parent" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9fdbe42..77717a2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -6,13 +6,15 @@
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
- <option value="$PROJECT_DIR$/cloud-server-account/pom.xml" />
<option value="$PROJECT_DIR$/cloud-server-parent/pom.xml" />
+ <option value="$PROJECT_DIR$/cloud-server-other/pom.xml" />
<option value="$PROJECT_DIR$/cloud-server-management/pom.xml" />
+ <option value="$PROJECT_DIR$/cloud-server-gateway/pom.xml" />
+ <option value="$PROJECT_DIR$/cloud-server-course/pom.xml" />
+ <option value="$PROJECT_DIR$/cloud-server-competition/pom.xml" />
<option value="$PROJECT_DIR$/cloud-server-auth/pom.xml" />
<option value="$PROJECT_DIR$/cloud-server-activity/pom.xml" />
- <option value="$PROJECT_DIR$/cloud-server-competition/pom.xml" />
- <option value="$PROJECT_DIR$/cloud-server-course/pom.xml" />
+ <option value="$PROJECT_DIR$/cloud-server-account/pom.xml" />
</list>
</option>
</component>
diff --git a/.idea/modules.xml b/.idea/modules.xml
index c90d342..1229991 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -8,7 +8,9 @@
<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-gateway/mb-cloud-gateway.iml" filepath="$PROJECT_DIR$/cloud-server-gateway/mb-cloud-gateway.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-other/mb-cloud-other.iml" filepath="$PROJECT_DIR$/cloud-server-other/mb-cloud-other.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>
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index a0e52a0..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
- <mapping directory="$PROJECT_DIR$/cloud-server-parent" vcs="Git" />
</component>
</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f2ab91c..15613af 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,39 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="BranchesTreeState">
- <expand>
- <path>
- <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
- <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
- </path>
- <path>
- <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
- <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
- </path>
- <path>
- <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
- <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
- <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
- </path>
- </expand>
- <select />
- </component>
<component name="ChangeListManager">
- <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="后台代码">
- <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity.js" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js" afterDir="false" />
+ <list default="true" id="f560b179-9233-4e76-92e7-a3f41cf84d9f" name="Default Changelist" comment="">
+ <change afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BodySideAppointmentMapper.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/model/BenefitsVedioChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/model/TQueryBenefitsVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/BodySideAppointmentService.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/CourseChangeStateDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/dto/TQueryBenefitsVideosDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/vo/CoursePackageTypeVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachTypeClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StoreStaffClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachSerchVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachType.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TStoreStaff.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BenefitsVideoClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BodySideAppointmentClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVedioChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideoClassification.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideos.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BodySideAppointment.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBenefitsVedioVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointmentVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CourseChangeStateDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageTypeVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteLockClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/Site.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteAddDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteLockDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachTypeController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageTypeController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/ExpireSiteSearchVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteSearchVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Store.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_add.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_info.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_add.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_edit.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackageType/CoursePackageType.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_add.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_edit.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoachType/TCoachType.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_lock.html" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/coursePackageType/coursePackageType.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCoachType/tCoachType.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSiteLock.js" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/CityManager.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteAddDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteChangeStateVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteLockDTO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java" afterDir="false" />
+ <change afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/SiteSearchVO.java" afterDir="false" />
+ <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/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.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/CityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/CoachMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper/CoachMapper.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-activity/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/Store.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/Store.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-competition/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-competition/pom.xml" 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-course/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-gateway/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-gateway/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tCar/tCar_info.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_add.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_edit.html" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_img.html" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_imgAll.html" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/electricFence.js" beforeDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/pom.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/SiteMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/SiteMapper.xml" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/StoreMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-other/src/main/resources/mapper/StoreMapper.xml" afterDir="false" />
</list>
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -42,37 +203,18 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
- <option value="Interface" />
+ <option value="HTML File" />
<option value="Class" />
+ <option value="mybatis-mapper" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
- <component name="JsFlowSettings">
- <service-enabled>true</service-enabled>
- <exe-path />
- <other-services-enabled>true</other-services-enabled>
- <auto-save>true</auto-save>
- </component>
- <component name="MavenImportPreferences">
- <option name="generalSettings">
- <MavenGeneralSettings>
- <option name="mavenHome" value="D:/apache-maven/apache-maven-3.6.1" />
- <option name="userSettingsFile" value="D:\apache-maven\apache-maven-3.6.1\conf\settings.xml" />
- </MavenGeneralSettings>
- </option>
- </component>
- <component name="ProjectId" id="2T0poWYlZShlnPso29uxjn4gQQo" />
- <component name="ProjectLevelVcsManager" settingsEditedManually="true">
- <ConfirmationsSetting value="1" id="Add" />
- </component>
- <component name="ProjectViewState">
- <option name="hideEmptyMiddlePackages" value="true" />
- <option name="showLibraryContents" value="true" />
- </component>
+ <component name="ProjectId" id="2Tjw32TibW9vX8W0bRu35zUVftR" />
<component name="PropertiesComponent">
+ <property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="ExpandSpringBootJavaOptionsPanel" value="true" />
<property name="RequestMappingsPanelOrder0" value="0" />
<property name="RequestMappingsPanelOrder1" value="1" />
@@ -80,33 +222,28 @@
<property name="RequestMappingsPanelWidth1" value="75" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
- <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1686656087610" />
- <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-management/src/main/webapp/static/modular/system" />
- <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
- <property name="nodejs_npm_path_reset_for_default_project" value="true" />
- <property name="project.structure.last.edited" value="Global Libraries" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment" />
+ <property name="nodejs_package_manager_path" value="npm" />
+ <property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
- <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
- <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
- </component>
- <component name="ReactorSettings">
- <option name="notificationShown" value="true" />
+ <property name="restartRequiresConfirmation" value="false" />
+ <property name="settings.editor.selected.configurable" value="MavenSettings" />
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
- <recent name="com.dsh.course.feignClient.account.model" />
- <recent name="com.dsh.account.mapper" />
- <recent name="com.dsh.account.service.impl" />
- <recent name="com.dsh.account.service" />
- <recent name="com.dsh.account.controller" />
+ <recent name="com.dsh.activity.feignclient.other.model" />
+ <recent name="com.dsh.course.feignClient.activity" />
+ <recent name="com.dsh.guns.modular.system.controller.code" />
+ <recent name="com.dsh.course.feignClient.activity.model" />
+ <recent name="com.dsh.activity.model" />
</key>
<key name="CopyFile.RECENT_KEYS">
- <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\static\modular\system" />
- <recent name="F:\code\PlayPai\cloud-server-account\src\main\resources\mapper" />
- <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system" />
- <recent name="F:\code\PlayPai\cloud-server-competition\src\main\java\com\dsh" />
- <recent name="F:\code\PlayPai\cloud-server-management\src\main\resources\mapper" />
+ <recent name="E:\IdeaProjects\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\bodySideAppointment" />
+ <recent name="E:\IdeaProjects\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\bodySideAppointment" />
+ <recent name="E:\IdeaProjects\PlayPai\cloud-server-management\src\main\java\com\dsh\course\feignClient\activity\model" />
+ <recent name="E:\IdeaProjects\PlayPai\cloud-server-management\src\main\webapp\static\modular\system\benefits" />
+ <recent name="E:\IdeaProjects\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system\benefits" />
</key>
</component>
<component name="RunDashboard">
@@ -115,8 +252,18 @@
<option value="SpringBootApplicationConfigurationType" />
</set>
</option>
+ <option name="ruleStates">
+ <list>
+ <RuleState>
+ <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+ </RuleState>
+ <RuleState>
+ <option name="name" value="StatusDashboardGroupingRule" />
+ </RuleState>
+ </list>
+ </option>
</component>
- <component name="RunManager" selected="Spring Boot.AccountApplication">
+ <component name="RunManager" selected="Spring Boot.ManagementApplication">
<configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="mb-cloud-account" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" />
@@ -126,17 +273,11 @@
<option name="Make" enabled="true" />
</method>
</configuration>
- <configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
- <module name="mb-cloud-account" />
- <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <method v="2">
- <option name="Make" enabled="true" />
- </method>
- </configuration>
<configuration name="ActivityApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="mb-cloud-activity" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ActivityApplication" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
<method v="2">
<option name="Make" enabled="true" />
</method>
@@ -158,8 +299,17 @@
</method>
</configuration>
<configuration name="CourseApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
- <module name="mb-cloud-competition (1)" />
+ <module name="mb-cloud-course" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CourseApplication" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration name="GatewayApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+ <module name="mb-cloud-gateway" />
+ <option name="SPRING_BOOT_MAIN_CLASS" value="cn.mb.cloud.gateway.GatewayApplication" />
<method v="2">
<option name="Make" enabled="true" />
</method>
@@ -167,380 +317,153 @@
<configuration name="ManagementApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="mb-cloud-management" />
<option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ManagementApplication" />
- <option name="ENABLE_JMX_AGENT" value="false" />
- <option name="ALTERNATIVE_JRE_PATH" />
- <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
- <configuration name="UserApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
- <module name="mb-cloud-user" />
- <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.UserApplication" />
+ <configuration name="OtherApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
+ <module name="mb-cloud-other" />
+ <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.OtherApplication" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
- <item itemvalue="Spring Boot.UserApplication" />
- <item itemvalue="Spring Boot.ManagementApplication" />
- <item itemvalue="Spring Boot.AuthApplication" />
<item itemvalue="Spring Boot.AccountApplication" />
<item itemvalue="Spring Boot.ActivityApplication" />
+ <item itemvalue="Spring Boot.AuthApplication" />
<item itemvalue="Spring Boot.CompetitionApplication" />
<item itemvalue="Spring Boot.CourseApplication" />
+ <item itemvalue="Spring Boot.GatewayApplication" />
+ <item itemvalue="Spring Boot.ManagementApplication" />
+ <item itemvalue="Spring Boot.OtherApplication" />
</list>
+ </component>
+ <component name="ServiceViewManager">
+ <option name="allServicesViewState">
+ <serviceView>
+ <treeState>
+ <expand>
+ <path>
+ <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
+ <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@e758ef9a" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+ </path>
+ <path>
+ <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
+ <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@e758ef9a" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+ <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@872283ff" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+ </path>
+ <path>
+ <item name="services root" type="e789fda9:ObjectUtils$Sentinel" />
+ <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@e758ef9a" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+ <item name="com.intellij.execution.services.ServiceModel$ServiceGroupNode@69458c78" type="7427dc5b:ServiceModel$ServiceGroupNode" />
+ </path>
+ </expand>
+ <select />
+ </treeState>
+ </serviceView>
+ </option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
- <changelist id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="" />
- <created>1686653431962</created>
+ <changelist id="f560b179-9233-4e76-92e7-a3f41cf84d9f" name="Default Changelist" comment="" />
+ <created>1691569594609</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
- <updated>1686653431962</updated>
- <workItem from="1686653433491" duration="2267000" />
- <workItem from="1690190039038" duration="16883000" />
- <workItem from="1690333209172" duration="26986000" />
+ <updated>1691569594609</updated>
+ <workItem from="1691569596751" duration="65000" />
+ <workItem from="1691569675100" duration="270000" />
+ <workItem from="1691569964197" duration="5608000" />
+ <workItem from="1691628065563" duration="26776000" />
+ <workItem from="1691714824948" duration="32278000" />
+ <workItem from="1691752453575" duration="55000" />
+ <workItem from="1691974807017" duration="29112000" />
+ <workItem from="1692060742194" duration="20502000" />
+ <workItem from="1692087400805" duration="8025000" />
+ <workItem from="1692146436177" duration="23500000" />
+ <workItem from="1692233067279" duration="10090000" />
+ <workItem from="1692252017276" duration="7536000" />
+ <workItem from="1692260089826" duration="8503000" />
+ <workItem from="1692319933611" duration="26839000" />
+ <workItem from="1692578769161" duration="28170000" />
+ <workItem from="1692665038696" duration="13077000" />
+ <workItem from="1692684619085" duration="13291000" />
+ <workItem from="1692751172028" duration="28054000" />
+ <workItem from="1692837854502" duration="6293000" />
+ <workItem from="1692844552907" duration="8241000" />
+ <workItem from="1692859160967" duration="13015000" />
+ <workItem from="1692924469163" duration="21622000" />
+ <workItem from="1692954633621" duration="995000" />
+ <workItem from="1692955658907" duration="4758000" />
+ <workItem from="1693183363744" duration="30378000" />
+ <workItem from="1693269664223" duration="20846000" />
+ <workItem from="1693296305848" duration="948000" />
+ <workItem from="1693297281055" duration="121000" />
+ <workItem from="1693297534980" duration="7686000" />
+ <workItem from="1693356090840" duration="27477000" />
+ <workItem from="1693442643841" duration="24243000" />
+ <workItem from="1693528994907" duration="29480000" />
+ <workItem from="1693566786046" duration="243000" />
+ <workItem from="1693567041762" duration="123000" />
+ <workItem from="1693623395574" duration="598000" />
+ <workItem from="1693643198935" duration="776000" />
+ <workItem from="1693705892630" duration="12000" />
+ <workItem from="1693706255970" duration="1688000" />
+ <workItem from="1693879663101" duration="1191000" />
+ <workItem from="1693884719266" duration="158000" />
</task>
- <task id="LOCAL-00001" summary="后台代码删除">
- <created>1690249807612</created>
+ <task id="LOCAL-00001" summary="客服管理、荣誉管理">
+ <created>1692233310670</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
- <updated>1690249807612</updated>
+ <updated>1692233310670</updated>
</task>
- <task id="LOCAL-00002" summary="后台代码删除">
- <created>1690254629455</created>
- <option name="number" value="00002" />
- <option name="presentableId" value="LOCAL-00002" />
- <option name="project" value="LOCAL" />
- <updated>1690254629455</updated>
- </task>
- <task id="LOCAL-00003" summary="后台代码删除">
- <created>1690254749862</created>
- <option name="number" value="00003" />
- <option name="presentableId" value="LOCAL-00003" />
- <option name="project" value="LOCAL" />
- <updated>1690254749862</updated>
- </task>
- <task id="LOCAL-00004" summary="后台代码">
- <created>1690334274202</created>
- <option name="number" value="00004" />
- <option name="presentableId" value="LOCAL-00004" />
- <option name="project" value="LOCAL" />
- <updated>1690334274203</updated>
- </task>
- <task id="LOCAL-00005" summary="后台代码">
- <created>1690335913450</created>
- <option name="number" value="00005" />
- <option name="presentableId" value="LOCAL-00005" />
- <option name="project" value="LOCAL" />
- <updated>1690335913450</updated>
- </task>
- <task id="LOCAL-00006" summary="后台代码">
- <created>1690338179876</created>
- <option name="number" value="00006" />
- <option name="presentableId" value="LOCAL-00006" />
- <option name="project" value="LOCAL" />
- <updated>1690338179876</updated>
- </task>
- <task id="LOCAL-00007" summary="后台代码">
- <created>1690338325966</created>
- <option name="number" value="00007" />
- <option name="presentableId" value="LOCAL-00007" />
- <option name="project" value="LOCAL" />
- <updated>1690338325966</updated>
- </task>
- <task id="LOCAL-00008" summary="后台代码">
- <created>1690341067099</created>
- <option name="number" value="00008" />
- <option name="presentableId" value="LOCAL-00008" />
- <option name="project" value="LOCAL" />
- <updated>1690341067099</updated>
- </task>
- <task id="LOCAL-00009" summary="后台代码">
- <created>1690355617215</created>
- <option name="number" value="00009" />
- <option name="presentableId" value="LOCAL-00009" />
- <option name="project" value="LOCAL" />
- <updated>1690355617215</updated>
- </task>
- <task id="LOCAL-00010" summary="后台代码删除">
- <created>1690362658673</created>
- <option name="number" value="00010" />
- <option name="presentableId" value="LOCAL-00010" />
- <option name="project" value="LOCAL" />
- <updated>1690362658673</updated>
- </task>
- <task id="LOCAL-00011" summary="后台代码删除">
- <created>1690363462474</created>
- <option name="number" value="00011" />
- <option name="presentableId" value="LOCAL-00011" />
- <option name="project" value="LOCAL" />
- <updated>1690363462474</updated>
- </task>
- <task id="LOCAL-00012" summary="后台代码">
- <created>1690364368448</created>
- <option name="number" value="00012" />
- <option name="presentableId" value="LOCAL-00012" />
- <option name="project" value="LOCAL" />
- <updated>1690364368448</updated>
- </task>
- <task id="LOCAL-00013" summary="后台代码">
- <created>1690364506501</created>
- <option name="number" value="00013" />
- <option name="presentableId" value="LOCAL-00013" />
- <option name="project" value="LOCAL" />
- <updated>1690364506501</updated>
- </task>
- <option name="localTasksCounter" value="14" />
+ <option name="localTasksCounter" value="2" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
- <option name="version" value="2" />
+ <option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
- <State />
+ <State>
+ <option name="COLUMN_ORDER" />
+ </State>
</value>
</entry>
</map>
</option>
- <option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
- <MESSAGE value="后台代码删除" />
- <MESSAGE value="后台代码" />
- <option name="LAST_COMMIT_MESSAGE" value="后台代码" />
- </component>
- <component name="WindowStateProjectService">
- <state x="590" y="80" key="#<template>_of_Spring_Boot" timestamp="1690338437444">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="590" y="80" key="#<template>_of_Spring_Boot/0.0.1920.1032@0.0.1920.1032" timestamp="1690338437444" />
- <state x="590" y="0" width="753" height="1032" key="#AccountApplication" timestamp="1690363440283">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="590" y="0" width="753" height="1032" key="#AccountApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690363440283" />
- <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication" timestamp="1690342021698">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690342021698" />
- <state x="590" y="109" width="753" height="813" key="#ManagementApplication" timestamp="1690338483958">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="590" y="109" width="753" height="813" key="#ManagementApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690338483958" />
- <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser" timestamp="1690351593596">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1690351593596" />
- <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1690338381045">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690338381045" />
- <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1690337455729">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690337455729" />
- <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1690338847091">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes/0.0.1920.1032@0.0.1920.1032" timestamp="1690338847091" />
- <state x="703" y="346" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1" timestamp="1690363667225">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="703" y="346" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1/0.0.1920.1032@0.0.1920.1032" timestamp="1690363667225" />
- <state x="519" y="82" key="CommitChangelistDialog2" timestamp="1690364505261">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="519" y="82" key="CommitChangelistDialog2/0.0.1920.1032@0.0.1920.1032" timestamp="1690364505261" />
- <state width="464" height="466" key="DebuggerActiveHint" timestamp="1690354723383">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="464" height="466" key="DebuggerActiveHint/0.0.1920.1032@0.0.1920.1032" timestamp="1690354723383" />
- <state x="740" y="270" key="FileChooserDialogImpl" timestamp="1690249419357">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="740" y="270" key="FileChooserDialogImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1690249419357" />
- <state width="1293" height="418" key="GridCell.Tab.0.bottom" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.0.center" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.0.left" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.0.right" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.1.bottom" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.1.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.1.center" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.1.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.1.left" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.1.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.1.right" timestamp="1690366694918">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.1.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366694918" />
- <state width="1293" height="418" key="GridCell.Tab.2.bottom" timestamp="1690366555269">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.2.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" />
- <state width="1293" height="418" key="GridCell.Tab.2.center" timestamp="1690366555269">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.2.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" />
- <state width="1293" height="418" key="GridCell.Tab.2.left" timestamp="1690366555269">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.2.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" />
- <state width="1293" height="418" key="GridCell.Tab.2.right" timestamp="1690366555269">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state width="1293" height="418" key="GridCell.Tab.2.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690366555269" />
- <state x="461" y="160" key="SettingsEditor" timestamp="1690191509088">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="461" y="160" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1690191509088" />
- <state x="552" y="248" key="Vcs.Push.Dialog.v2" timestamp="1690364507500">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="552" y="248" key="Vcs.Push.Dialog.v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690364507500" />
- <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1690340014123">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" />
- <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1690340014123">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" />
- <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1690362660961">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362660961" />
- <state x="661" y="224" width="721" height="584" key="find.popup" timestamp="1690365779184">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="661" y="224" width="721" height="584" key="find.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690365779184" />
- <state x="623" y="223" width="672" height="678" key="search.everywhere.popup" timestamp="1690365810397">
- <screen x="0" y="0" width="1920" height="1032" />
- </state>
- <state x="623" y="223" width="672" height="678" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690365810397" />
+ <MESSAGE value="客服管理、荣誉管理" />
+ <option name="LAST_COMMIT_MESSAGE" value="客服管理、荣誉管理" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
- <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java</url>
- <line>145</line>
- <option name="timeStamp" value="1" />
+ <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java</url>
+ <line>148</line>
+ <option name="timeStamp" value="3" />
+ </line-breakpoint>
+ <line-breakpoint enabled="true" type="java-line">
+ <url>file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java</url>
+ <line>88</line>
+ <option name="timeStamp" value="43" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
- </component>
- <component name="masterDetails">
- <states>
- <state key="ArtifactsStructureConfigurable.UI">
- <settings>
- <artifact-editor />
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="FacetStructureConfigurable.UI">
- <settings>
- <last-edited>No facets are configured</last-edited>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="GlobalLibrariesConfigurable.UI">
- <settings>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="JdkListConfigurable.UI">
- <settings>
- <last-edited>1.8</last-edited>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="ModuleStructureConfigurable.UI">
- <settings>
- <last-edited>PlayPai</last-edited>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- <option value="0.6" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="ProjectJDKs.UI">
- <settings>
- <last-edited>1.8</last-edited>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- <state key="ProjectLibrariesConfigurable.UI">
- <settings>
- <splitter-proportions>
- <option name="proportions">
- <list>
- <option value="0.2" />
- </list>
- </option>
- </splitter-proportions>
- </settings>
- </state>
- </states>
+ <watches-manager>
+ <configuration name="SpringBootApplicationConfigurationType">
+ <watch expression="vo.data3" />
+ </configuration>
+ </watches-manager>
</component>
</project>
\ No newline at end of file
diff --git a/cloud-server-account/mb-cloud-account.iml b/cloud-server-account/mb-cloud-account.iml
index 9c5ecce..0a6f46a 100644
--- a/cloud-server-account/mb-cloud-account.iml
+++ b/cloud-server-account/mb-cloud-account.iml
@@ -28,7 +28,6 @@
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.10.1" level="project" />
- <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-data:1.1.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.6.RELEASE" level="project" />
@@ -133,6 +132,9 @@
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
@@ -147,19 +149,170 @@
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
- <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
- <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
+ <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+ <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" />
+ <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+ <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
+ <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.38.10.ALL" level="project" />
+ <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.83_noneautotype" level="project" />
+ <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
+ <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.14.9" level="project" />
+ <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
+ <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.8.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+ <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
+ <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.2" level="project" />
+ <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+ <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
+ <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
+ <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
+ <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.4.3" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
+ <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.3" level="project" />
+ <orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
+ <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.0" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
+ <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" />
+ <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" />
+ <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+ <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" />
+ <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" />
- <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" />
- <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.6" level="project" />
@@ -170,7 +323,6 @@
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
- <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" />
@@ -186,8 +338,6 @@
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
@@ -207,7 +357,6 @@
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
- <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" />
@@ -222,10 +371,10 @@
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
@@ -237,7 +386,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
diff --git a/cloud-server-account/pom.xml b/cloud-server-account/pom.xml
index 7be549d..16fac21 100644
--- a/cloud-server-account/pom.xml
+++ b/cloud-server-account/pom.xml
@@ -126,10 +126,6 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
</plugins>
</build>
<repositories>
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
index 56bb556..66cbc12 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
@@ -1,10 +1,18 @@
package com.dsh.account.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.account.entity.CityManager;
+import com.dsh.account.feignclient.other.model.Store;
import com.dsh.account.service.ICityManagerService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
/**
* @author zhibing.pu
@@ -19,6 +27,49 @@
/**
+ * 根据管理员id获取详情信息
+ */
+ @RequestMapping("/cityManager/getStoreById")
+ public CityManager getStoreById(@RequestParam Integer id){
+ return cityManagerService.getOne(new QueryWrapper<CityManager>().eq("id",id));
+ }
+ /**
+ * 获取已有城市管理的省、市
+ */
+ @RequestMapping("/cityManager/listAll")
+
+ public List<CityManager> listAll(){
+ return cityManagerService.listAll();
+ }
+ /**
+ * 选择省 展示市
+ */
+ @RequestMapping("/cityManager/getCity")
+ @ResponseBody
+ public List<CityManager> getCity(@RequestBody String province){
+ List<CityManager> province1 = cityManagerService.list(new QueryWrapper<CityManager>().eq("province", province));
+ List<CityManager> distinctCities = province1.stream()
+ .collect(Collectors.collectingAndThen(
+ Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CityManager::getCity))),
+ ArrayList::new
+ ));
+
+ return distinctCities;
+ }
+
+ /**
+ * 选择市区 展示全部账号
+ */
+ @RequestMapping("/cityManager/getAccount")
+ @ResponseBody
+ List<CityManager> getAccount(@RequestBody String city){
+ return cityManagerService.list(new QueryWrapper<CityManager>().eq("city",city).ne("state",2).ne("state",3));
+ }
+
+
+
+
+ /**
* 根据id获取数据
* @param id
* @return
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
index 03bf6a4..0f714f0 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.account.entity.Coach;
+import com.dsh.account.model.query.coachQuery.CoachQuery;
+import com.dsh.account.model.vo.CoachChangeStateVO;
+import com.dsh.account.model.vo.CoachSerchVO;
import com.dsh.account.service.CoachService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -16,6 +19,58 @@
@Autowired
private CoachService service;
+
+ /**
+ * 获取教练列表数据
+ */
+ @ResponseBody
+ @RequestMapping("/coach/listAll")
+ public List<CoachSerchVO> listAll(@RequestBody CoachQuery query){
+ List<CoachSerchVO> coachSerchVOS = service.listAll(query);
+ for (CoachSerchVO coachSerchVO : coachSerchVOS) {
+ coachSerchVO.setNameAndPhone(coachSerchVO.getAccountName()+"-"+coachSerchVO.getAccountPhone());
+ }
+ return coachSerchVOS;
+ }
+ /**
+ * 上/下架、删除常见问题 type=1为上架 2为下架
+ */
+ @RequestMapping("/coach/changeState")
+ public Object changeState(@RequestBody CoachChangeStateVO vo){
+
+ return service.changeState(vo);
+ }
+ /**
+ * 添加教练
+ * @return
+ */
+ @RequestMapping("/base/site/addCoach")
+ public Object addCoach(@RequestBody Coach coach){
+
+ if(coach.getId()!= null ){
+ return service.updateById(coach);
+ }else {
+ return service.save(coach);
+ }
+ }
+ /**
+ * 获取所有省
+ */
+ @ResponseBody
+ @PostMapping("/coach/getProvince")
+ public List<Coach> getProvince(){
+ return service.list();
+ }
+
+ /**
+ * 根据选择的省获取对应的市
+ */
+ @ResponseBody
+ @PostMapping("/coach/getCity")
+ public List<Coach> getCity(@RequestBody String city){
+ return service.list(new QueryWrapper<Coach>().eq("province",city));
+ }
+
/**
* 根据门店
* @param id
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java
new file mode 100644
index 0000000..2f8e59f
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java
@@ -0,0 +1,91 @@
+package com.dsh.account.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.account.entity.Coach;
+import com.dsh.account.entity.CoachType;
+import com.dsh.account.service.CoachService;
+import com.dsh.account.service.CoachTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 教练类型
+ */
+@RestController
+@RequestMapping("")
+public class CoachTypeController {
+
+ @Autowired
+ private CoachService service;
+ @Autowired
+ private CoachTypeService typeService;
+
+ /**
+ * 根据门店
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coachType/list")
+ public List<CoachType> list(){
+
+ return typeService.list(new QueryWrapper<CoachType>().ne("state",3));
+ }
+
+ /**
+ * 新增教练类型
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/coachType/add")
+ public Object add(@RequestBody String name){
+
+ List<CoachType> list = typeService.list(new QueryWrapper<CoachType>().eq("name", name));
+ if (list.size()!= 0){
+ return 500;
+ }else{
+ CoachType coachType = new CoachType();
+ coachType.setName(name);
+ coachType.setState(1);
+ typeService.save(coachType);
+ return 200;
+ }
+ }
+ /**
+ * 删除教练类型
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/coachType/delete")
+ public Object delete(@RequestBody Integer id){
+ CoachType coachType = new CoachType();
+ coachType.setId(id);
+ coachType.setState(3);
+ return typeService.updateById(coachType);
+ }
+
+ /**
+ * 修改教练类型
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/coachType/update")
+ public Object update(@RequestBody CoachType coachType){
+ List<CoachType> list = typeService.list(new QueryWrapper<CoachType>().eq("name", coachType.getName()));
+ if (list.size()!= 0){
+ return 500;
+ }else{
+ typeService.updateById(coachType);
+ return 200;
+
+ }
+
+ }
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java b/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java
index 3eb26f8..cbfa270 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -72,6 +73,7 @@
* 生日
*/
@TableField("birthday")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date birthday;
/**
* 性别(1=男,2=女)
@@ -127,6 +129,7 @@
* 添加时间
*/
@TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date insertTime;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java
index bf318f8..ac983cc 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/CoachMapper.java
@@ -2,6 +2,11 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.account.entity.Coach;
+import com.dsh.account.model.query.coachQuery.CoachQuery;
+import com.dsh.account.model.vo.CoachSerchVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +18,7 @@
*/
public interface CoachMapper extends BaseMapper<Coach> {
+ List<CoachSerchVO> listAll(@Param("query") CoachQuery query);
+
+ Object changeState(@Param("ids") List<Integer> ids, @Param("state") Integer state);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java b/cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java
new file mode 100644
index 0000000..b9f2593
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java
@@ -0,0 +1,13 @@
+package com.dsh.account.model.query.coachQuery;
+
+import lombok.Data;
+
+@Data
+public class CoachQuery {
+ private String province;
+ private String city;
+ private String name;
+ private String phone;
+ // 编辑页面回显使用
+ private Integer id;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachChangeStateVO.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachChangeStateVO.java
new file mode 100644
index 0000000..64f4364
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachChangeStateVO.java
@@ -0,0 +1,11 @@
+package com.dsh.account.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CoachChangeStateVO {
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java
new file mode 100644
index 0000000..352dd1b
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java
@@ -0,0 +1,105 @@
+package com.dsh.account.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 教练
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+@Data
+public class CoachSerchVO {
+ /**
+ * 主键
+ */
+ private Integer id;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 城市管理员id
+ */
+ private Integer cityManagerId;
+ private String nameAndPhone;
+ private String accountName;
+ private String accountPhone;
+ /**
+ * 教练类型id
+ */
+ private Integer coachTypeId;
+ private String coachTypeName;
+ /**
+ * 姓名
+ */
+ private String name;
+ /**
+ * 生日
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date birthday;
+ /**
+ * 性别(1=男,2=女)
+ */
+ private Integer gender;
+ /**
+ * 电话
+ */
+ private String phone;
+ /**
+ * 身份证号码
+ */
+ private String idcard;
+ /**
+ * 身高(厘米)
+ */
+ private Double height;
+ /**
+ * 体重(KG)
+ */
+ private Double weight;
+ /**
+ * 毕业院校
+ */
+ private String graduateSchool;
+ /**
+ * 毕业证照片
+ */
+ private String diploma;
+ /**
+ * 资格证书(多个逗号分隔)
+ */
+ private String certificate;
+ /**
+ * 证书照片
+ */
+ private String certificateImg;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date insertTime;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java b/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java
index 72f0772..3e5b8fc 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/CoachService.java
@@ -2,6 +2,11 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.account.entity.Coach;
+import com.dsh.account.model.query.coachQuery.CoachQuery;
+import com.dsh.account.model.vo.CoachChangeStateVO;
+import com.dsh.account.model.vo.CoachSerchVO;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +18,7 @@
*/
public interface CoachService extends IService<Coach> {
+ List<CoachSerchVO> listAll(CoachQuery query);
+
+ Object changeState(CoachChangeStateVO vo);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java b/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java
index 33699bd..e632e51 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/ICityManagerService.java
@@ -3,9 +3,13 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.account.entity.CityManager;
+import java.util.List;
+
/**
* @author zhibing.pu
* @Date 2023/8/1 17:03
*/
public interface ICityManagerService extends IService<CityManager> {
+ List<CityManager> listAll();
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java
index 82bfea9..08bc11d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityManagerServiceImpl.java
@@ -6,10 +6,16 @@
import com.dsh.account.service.ICityManagerService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* @author zhibing.pu
* @Date 2023/8/1 17:04
*/
@Service
public class CityManagerServiceImpl extends ServiceImpl<CityManagerMapper, CityManager> implements ICityManagerService {
+ @Override
+ public List<CityManager> listAll() {
+ return this.list();
+ }
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
index 01a29ad..f9f55ac 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
@@ -3,8 +3,14 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.entity.Coach;
import com.dsh.account.mapper.CoachMapper;
+import com.dsh.account.model.query.coachQuery.CoachQuery;
+import com.dsh.account.model.vo.CoachChangeStateVO;
+import com.dsh.account.model.vo.CoachSerchVO;
import com.dsh.account.service.CoachService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* <p>
@@ -16,5 +22,15 @@
*/
@Service
public class CoachServiceImpl extends ServiceImpl<CoachMapper, Coach> implements CoachService {
+ @Autowired
+ private CoachMapper coachMapper;
+ @Override
+ public List<CoachSerchVO> listAll(CoachQuery query) {
+ return coachMapper.listAll(query);
+ }
+ @Override
+ public Object changeState(CoachChangeStateVO vo) {
+ return coachMapper.changeState(vo.getIds(),vo.getState());
+ }
}
diff --git a/cloud-server-account/src/main/resources/mapper/CoachMapper.xml b/cloud-server-account/src/main/resources/mapper/CoachMapper.xml
index a428fb3..a823bc9 100644
--- a/cloud-server-account/src/main/resources/mapper/CoachMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/CoachMapper.xml
@@ -1,6 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsh.account.mapper.CoachMapper">
+ <update id="changeState">
+ update t_coach set
+ state = #{state}
+ <where>
+ <if test="ids != null and ids.size()>0">
+ AND t_coach.id IN
+ <foreach collection="ids" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </update>
+ <select id="listAll" resultType="com.dsh.account.model.vo.CoachSerchVO">
+ select t1.*,t2.name accountName,t2.phone accountPhone,t3.name coachTypeName from t_coach t1
+ left join t_city_manager t2 on t1.cityManagerId = t2.id
+ left join t_coach_type t3 on t1.coachTypeId = t3.id
+ <where>
+ <if test="query.city!=null and query.city!= ''">
+ and t1.city = #{query.city}
+ </if>
+ <if test="query.province!=null and query.province!= ''">
+ and t1.province = #{query.province}
+ </if>
+ <if test="query.name!=null and query.name!= ''">
+ AND t1.name LIKE concat('%',#{query.name},'%')
+ </if>
+ <if test="query.phone!=null and query.phone!= ''">
+ and t1.phone LIKE concat('%',#{query.phone},'%')
+ </if>
+ <if test="query.id!=null and query.id!= ''">
+ and t1.id LIKE concat('%',#{query.id},'%')
+ </if>
+ and t1.state != 3
+ </where>
+ </select>
</mapper>
diff --git a/cloud-server-activity/mb-cloud-activity.iml b/cloud-server-activity/mb-cloud-activity.iml
index 9c5ecce..424b1f4 100644
--- a/cloud-server-activity/mb-cloud-activity.iml
+++ b/cloud-server-activity/mb-cloud-activity.iml
@@ -7,6 +7,10 @@
<facet type="web" name="Web">
<configuration>
<webroots />
+ <sourceRoots>
+ <root url="file://$MODULE_DIR$/src/main/java" />
+ <root url="file://$MODULE_DIR$/src/main/resources" />
+ </sourceRoots>
</configuration>
</facet>
</component>
@@ -16,6 +20,7 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
@@ -133,6 +138,9 @@
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
@@ -147,9 +155,142 @@
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
- <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
- <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
- <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" />
+ <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" />
+ <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" />
+ <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+ <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+ <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" />
+ <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.70" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" />
+ <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
+ <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
+ <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
@@ -157,7 +298,6 @@
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" />
- <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
@@ -170,7 +310,6 @@
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
- <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" />
@@ -186,8 +325,6 @@
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
- <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
@@ -207,7 +344,6 @@
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
- <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" />
@@ -222,10 +358,10 @@
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
@@ -237,7 +373,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
diff --git a/cloud-server-activity/pom.xml b/cloud-server-activity/pom.xml
index ad3b7fc..0f8081e 100644
--- a/cloud-server-activity/pom.xml
+++ b/cloud-server-activity/pom.xml
@@ -95,10 +95,7 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
+
</plugins>
</build>
<repositories>
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
index 82ed7d6..1ad5527 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
@@ -2,11 +2,11 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.BenefitsVideoClassification;
import com.dsh.activity.entity.BenefitsVideos;
-import com.dsh.activity.model.BenefitsVideoClassificationListVo;
-import com.dsh.activity.model.BenefitsVideosInfoVo;
-import com.dsh.activity.model.BenefitsVideosListVo;
+import com.dsh.activity.model.*;
import com.dsh.activity.service.BenefitsVideosService;
+import com.dsh.activity.service.IBenefitsVideoClassificationService;
import com.dsh.activity.util.ResultUtil;
import com.dsh.activity.util.TokenUtil;
import io.swagger.annotations.ApiImplicitParam;
@@ -24,12 +24,95 @@
@Autowired
private BenefitsVideosService bfvService;
+ @Autowired
+ private IBenefitsVideoClassificationService benefitsVideoClassificationService;
@Autowired
private TokenUtil tokenUtil;
+ /**
+ * 获取所有福利视频分类
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/list")
+ public List<TQueryBenefitsVO> listAll(@RequestBody QueryBenefitsVedioVO vo){
+
+ return benefitsVideoClassificationService.listAll(vo);
+ }
+
+ /**
+ * 查看详情/编辑
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getById")
+ public BenefitsVideoClassification getById(@RequestBody Integer id){
+ return benefitsVideoClassificationService.getById(id);
+ }
+
+ /**
+ * 根据分类id查询福利视频分类下的视频
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getBenefitVideoById")
+ @ResponseBody
+ public List<BenefitsVideos> getBenefitVideoById(@RequestBody Integer id){
+ return bfvService.getBenefitVideoById(id);
+ }
+
+ /**
+ * 根据福利视频id获取福利视频信息
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getBenefitVideosById")
+ @ResponseBody
+ public BenefitsVideos getBenefitVideosById(@RequestBody Integer id){
+ return bfvService.getById(id);
+ }
+
+ /**
+ * 添加/修改福利视频分类
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/add")
+ public Object addSite(@RequestBody BenefitsVideoClassification site){
+ QueryWrapper<BenefitsVideoClassification> wrapper = new QueryWrapper<BenefitsVideoClassification>().eq("name", site.getName());
+ if (benefitsVideoClassificationService.list(wrapper).size()==0){
+ if(site.getId()!= null ){
+ benefitsVideoClassificationService.updateById(site);
+ return 200;
+ }else {
+ return benefitsVideoClassificationService.save(site);
+ }
+ }else return 500;
+ }
+
+ /**
+ * 添加/修改视频详情
+ * @return
+ */
+ @RequestMapping("/base/addBenefitsVideos")
+ public Object addBenefitsVideos(@RequestBody BenefitsVideos site){
+ // 通过分类Id和课程id 查询视频
+ List<BenefitsVideos> result = bfvService.getBybIdAndcId(site.getBenefitsVideoClassificationId(),site.getCourseId());
+ if (result.size()>0){
+ return 500;
+ }
+ if (site.getId() == null){
+ return bfvService.save(site);
+ }else {
+ return bfvService.updateById(site);
+ }
+ }
+ /**
+ * 上/下架、删除福利视频分类 type=1为上架 2为下架 3为删除
+ */
+ @RequestMapping("/base/benefitVideo/changeState")
+ public Object changeState(@RequestBody BenefitsVedioChangeStateVO vo){
+
+ return benefitsVideoClassificationService.changeState(vo);
+ }
@PostMapping("base/benefitVideo/getList")
public BenefitsVideos getVideosWithIds(@RequestBody Integer id){
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
new file mode 100644
index 0000000..8b45b7b
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
@@ -0,0 +1,101 @@
+package com.dsh.activity.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.BenefitsVideoClassification;
+import com.dsh.activity.entity.BenefitsVideos;
+import com.dsh.activity.entity.BodySideAppointment;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.Store;
+import com.dsh.activity.model.*;
+import com.dsh.activity.service.BenefitsVideosService;
+import com.dsh.activity.service.BodySideAppointmentService;
+import com.dsh.activity.service.IBenefitsVideoClassificationService;
+import com.dsh.activity.util.ResultUtil;
+import com.dsh.activity.util.TokenUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * 体测预约管理控制器
+ */
+@RestController
+@RequestMapping("")
+public class BodySideAppointmentsController {
+ @Autowired
+ private BodySideAppointmentService bodySideAppointmentService;
+ @Autowired
+ private StoreClient storeClient;
+
+ /**
+ * 获取所有体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/listAll")
+ public List<QueryBodySideAppointmentVO> listAll(@RequestBody QueryBodySideAppointment vo){
+ List<QueryBodySideAppointmentVO> queryBodySideAppointmentVOS = bodySideAppointmentService.listAll(vo);
+ List<Integer> list = new ArrayList<>();
+ for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
+ list.add(queryBodySideAppointmentVO.getStoreId());
+ }
+ list.add(1);
+ list.add(2);
+ List<Store> stores = storeClient.queryStoreByIds(list);
+ for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
+ for (Store store : stores) {
+ if (queryBodySideAppointmentVO.getStoreId() == store.getId()){
+ queryBodySideAppointmentVO.setStoreName(store.getName());
+ break;
+ }
+ }
+ }
+ return queryBodySideAppointmentVOS;
+ }
+ /**
+ * 增加/修改体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/addBodySideAppointments")
+ public Object addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo){
+ BodySideAppointment bodySideAppointment = new BodySideAppointment();
+ BeanUtils.copyProperties(vo,bodySideAppointment);
+ bodySideAppointment.setStatus(1);
+ bodySideAppointment.setState(1);
+ bodySideAppointment.setInsertTime(new Date());
+ if (vo.getId() != null){
+ return bodySideAppointmentService.updateById(bodySideAppointment);
+ }else {
+ return bodySideAppointmentService.save(bodySideAppointment);
+ }
+ }
+
+ /**
+ * 手动标记用户已经到店并完成体测
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/changeState")
+ public Object changeState(@RequestBody List<Integer> ids){
+ return bodySideAppointmentService.changeState(ids);
+ }
+
+ /**
+ * 通过id获取体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/getInfoById")
+ public BodySideAppointment getInfoById(@RequestBody Integer id){
+ return bodySideAppointmentService.getById(id);
+
+ }
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java
index f1fe293..9c7ae71 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -39,5 +40,11 @@
* 添加时间
*/
@TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date insertTime;
+ /**
+ * 状态 1=正常 2=下架 3=删除
+ */
+ @TableField("state")
+ private Integer state;
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
index 5246b77..92ef6c3 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -57,8 +58,8 @@
* 添加时间
*/
@TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date insertTime;
-
@Override
protected Serializable pkVal() {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java
new file mode 100644
index 0000000..506a14c
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java
@@ -0,0 +1,49 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+@TableName("t_body_side_appointments")
+public class BodySideAppointment {
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("province")
+ private String province;
+ @TableField("provinceCode")
+ private String provinceCode;
+ @TableField("city")
+ private String city;
+ @TableField("cityCode")
+ private String cityCode;
+ @TableField("storeId")
+ private Integer storeId;
+ @TableField("parentName")
+ private String parentName;
+ @TableField("phone")
+ private String phone;
+ @TableField("learnerName")
+ private String learnerName;
+ @TableField("learnerAge")
+ private Integer learnerAge;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @TableField("birthday")
+ private Date birthday;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField("appointmentTime")
+ private Date appointmentTime;
+ @TableField("status")
+ private Integer status;
+ @TableField("state")
+ private Integer state;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField("insertTime")
+ private Date insertTime;
+
+}
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
index 21005db..79850da 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
@@ -4,6 +4,7 @@
import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
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.RequestParam;
import java.util.List;
@@ -17,5 +18,5 @@
@PostMapping("/store/queryStoreByIds")
- List<Store> queryStoreByIds(List<Integer> ids);
+ List<Store> queryStoreByIds(@RequestBody List<Integer> ids);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java
index a7c8261..6fe48df 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java
@@ -2,10 +2,18 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.activity.entity.BenefitsVideoClassification;
+import com.dsh.activity.model.QueryBenefitsVedioVO;
+import com.dsh.activity.model.TQueryBenefitsVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author zhibing.pu
* @date 2023/7/11 17:30
*/
public interface BenefitsVideoClassificationMapper extends BaseMapper<BenefitsVideoClassification> {
+ List<TQueryBenefitsVO> listAll(@Param("query") QueryBenefitsVedioVO vo);
+
+ Object changeState(@Param("ids") List<Integer> ids,@Param("type") Integer state);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
index aec0f08..a5a0b7d 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.activity.entity.BenefitsVideos;
+import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -29,4 +30,8 @@
*/
List<Map<String, Object>> queryBenefitsVideosList(@Param("uid") Integer uid, @Param("classificationId") Integer classificationId,
@Param("ids") List<Integer> ids, @Param("pageSize") Integer pageSize, @Param("pageNo") Integer pageNo);
+
+ List<BenefitsVideos> getBenefitVideoById(@Param("id")Integer id);
+
+ List<BenefitsVideos> getBybIdAndcId(@Param("bId") Integer benefitsVideoClassificationId,@Param("cId") Integer courseId);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BodySideAppointmentMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BodySideAppointmentMapper.java
new file mode 100644
index 0000000..5c40934
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BodySideAppointmentMapper.java
@@ -0,0 +1,17 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.dsh.activity.entity.BodySideAppointment;
+import com.dsh.activity.model.QueryBodySideAppointment;
+import com.dsh.activity.model.QueryBodySideAppointmentVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BodySideAppointmentMapper extends BaseMapper<BodySideAppointment> {
+
+ List<QueryBodySideAppointmentVO> listAll(@Param("query") QueryBodySideAppointment vo);
+
+ int changeState(@Param("ids") List<Integer> ids);
+}
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/BenefitsVedioChangeStateVO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/BenefitsVedioChangeStateVO.java
new file mode 100644
index 0000000..a3dc7b3
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/BenefitsVedioChangeStateVO.java
@@ -0,0 +1,12 @@
+package com.dsh.activity.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BenefitsVedioChangeStateVO {
+
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java
new file mode 100644
index 0000000..c1240e8
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java
@@ -0,0 +1,11 @@
+package com.dsh.activity.model;
+
+import lombok.Data;
+/**
+ * 接收查询参数VO
+ */
+@Data
+public class QueryBenefitsVedioVO {
+ private Integer position;
+ private String name;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java
new file mode 100644
index 0000000..0e4dd46
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.model;
+
+import lombok.Data;
+
+/**
+ * 接收查询参数VO
+ */
+@Data
+public class QueryBodySideAppointment {
+ private String phone;
+ private String parentName;
+ // 1 = 待体测 2 = 已体测
+ private Integer state;
+ // 1=今日内预约 2=明日预约 7=七日内
+ private Integer day;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java
new file mode 100644
index 0000000..3bd4b51
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java
@@ -0,0 +1,33 @@
+package com.dsh.activity.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 体测预约管理查询VO
+ */
+@Data
+public class QueryBodySideAppointmentVO {
+ private Integer id;
+ private String province;
+ private String provinceCode;
+ private String city;
+ private String cityCode;
+ private Integer storeId;
+ private String storeName;
+ private String parentName;
+ private String phone;
+ private String learnerName;
+ private Integer learnerAge;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date birthday;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date appointmentTime;
+ private Integer status;
+ private Integer state;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+ private String provinceAndCity;
+}
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/TQueryBenefitsVO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/TQueryBenefitsVO.java
new file mode 100644
index 0000000..5cce8fb
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/TQueryBenefitsVO.java
@@ -0,0 +1,18 @@
+package com.dsh.activity.model;
+
+import lombok.Data;
+
+/**
+ * 福利视频分类列表查询返回VO
+ */
+@Data
+public class TQueryBenefitsVO {
+ private Integer id;
+ private String name;
+ // 位置(1=线上课得积分,2=看视频得奖励)
+ private Integer position;
+ private Integer sort;
+ private Integer count;
+ private Integer state;
+ private Integer courseId;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
index 6423f50..49cf43f 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
@@ -2,9 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.activity.entity.BenefitsVideos;
-import com.dsh.activity.model.BenefitsVideoClassificationListVo;
-import com.dsh.activity.model.BenefitsVideosInfoVo;
-import com.dsh.activity.model.BenefitsVideosListVo;
+import com.dsh.activity.model.*;
import java.util.List;
@@ -57,4 +55,9 @@
* @throws Exception
*/
void receiveAward(Integer uid, Integer id) throws Exception;
+
+
+ List<BenefitsVideos> getBenefitVideoById(Integer id);
+
+ List<BenefitsVideos> getBybIdAndcId(Integer benefitsVideoClassificationId, Integer courseId);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/BodySideAppointmentService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/BodySideAppointmentService.java
new file mode 100644
index 0000000..3490998
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/BodySideAppointmentService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.BodySideAppointment;
+import com.dsh.activity.model.QueryBodySideAppointment;
+import com.dsh.activity.model.QueryBodySideAppointmentVO;
+
+import java.util.List;
+
+public interface BodySideAppointmentService extends IService<BodySideAppointment> {
+
+ List<QueryBodySideAppointmentVO> listAll(QueryBodySideAppointment vo);
+
+ Object changeState(List<Integer> ids);
+}
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java
index a6b909d..ed67eef 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/IBenefitsVideoClassificationService.java
@@ -2,10 +2,18 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.activity.entity.BenefitsVideoClassification;
+import com.dsh.activity.model.BenefitsVedioChangeStateVO;
+import com.dsh.activity.model.QueryBenefitsVedioVO;
+import com.dsh.activity.model.TQueryBenefitsVO;
+
+import java.util.List;
/**
* @author zhibing.pu
* @date 2023/7/11 17:31
*/
public interface IBenefitsVideoClassificationService extends IService<BenefitsVideoClassification> {
+ List<TQueryBenefitsVO> listAll(QueryBenefitsVedioVO vo);
+
+ Object changeState(BenefitsVedioChangeStateVO vo);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java
index 9369d4e..f3bb6b9 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java
@@ -3,8 +3,14 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.activity.entity.BenefitsVideoClassification;
import com.dsh.activity.mapper.BenefitsVideoClassificationMapper;
+import com.dsh.activity.model.BenefitsVedioChangeStateVO;
+import com.dsh.activity.model.QueryBenefitsVedioVO;
+import com.dsh.activity.model.TQueryBenefitsVO;
import com.dsh.activity.service.IBenefitsVideoClassificationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @author zhibing.pu
@@ -12,4 +18,17 @@
*/
@Service
public class BenefitsVideoClassificationServiceImpl extends ServiceImpl<BenefitsVideoClassificationMapper, BenefitsVideoClassification> implements IBenefitsVideoClassificationService {
+ @Autowired
+ private BenefitsVideoClassificationMapper benefitsVideoClassificationMapper;
+ @Override
+ public List<TQueryBenefitsVO> listAll(QueryBenefitsVedioVO vo) {
+ return benefitsVideoClassificationMapper.listAll(vo);
+ }
+
+ @Override
+ public Object changeState(BenefitsVedioChangeStateVO vo) {
+ List<Integer> ids = vo.getIds();
+ Integer state = vo.getState();
+ return benefitsVideoClassificationMapper.changeState(ids,state);
+ }
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
index 81975a1..54e5111 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -10,14 +10,14 @@
import com.dsh.activity.feignclient.account.model.SaveUserIntegralChangesVo;
import com.dsh.activity.feignclient.course.CourseClient;
import com.dsh.activity.feignclient.course.model.Course;
+import com.dsh.activity.mapper.BenefitsVideoClassificationMapper;
import com.dsh.activity.mapper.BenefitsVideosMapper;
-import com.dsh.activity.model.BenefitsVideoClassificationListVo;
-import com.dsh.activity.model.BenefitsVideosInfoVo;
-import com.dsh.activity.model.BenefitsVideosListVo;
+import com.dsh.activity.model.*;
import com.dsh.activity.service.BenefitsVideosService;
import com.dsh.activity.service.IBenefitsVideoClassificationService;
import com.dsh.activity.service.IUserBenefitsVideosService;
import com.dsh.activity.util.ToolUtil;
+import org.aspectj.weaver.ast.Var;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,6 +51,10 @@
@Resource
private UserIntegralChangesClient userIntegralChangesClient;
+ @Autowired
+ private BenefitsVideoClassificationMapper benefitsVideoClassificationMapper;
+ @Autowired
+ private BenefitsVideosMapper benefitsVideosMapper;
@@ -183,4 +187,16 @@
userIntegralChangesClient.saveUserIntegralChanges(vo);
}
}
+
+ @Override
+ public List<BenefitsVideos> getBenefitVideoById(Integer id) {
+ return benefitsVideosMapper.getBenefitVideoById(id);
+ }
+
+ @Override
+ public List<BenefitsVideos> getBybIdAndcId(Integer benefitsVideoClassificationId, Integer courseId) {
+ return benefitsVideosMapper.getBybIdAndcId(benefitsVideoClassificationId,courseId);
+ }
+
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java
new file mode 100644
index 0000000..383c659
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java
@@ -0,0 +1,33 @@
+package com.dsh.activity.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.BenefitsVideos;
+import com.dsh.activity.entity.BodySideAppointment;
+import com.dsh.activity.mapper.BenefitsVideosMapper;
+import com.dsh.activity.mapper.BodySideAppointmentMapper;
+import com.dsh.activity.model.QueryBodySideAppointment;
+import com.dsh.activity.model.QueryBodySideAppointmentVO;
+import com.dsh.activity.service.BenefitsVideosService;
+import com.dsh.activity.service.BodySideAppointmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class BodySideAppointmentServiceImpl extends ServiceImpl<BodySideAppointmentMapper, BodySideAppointment> implements BodySideAppointmentService {
+ @Autowired
+ private BodySideAppointmentMapper bodySideAppointmentMapper;
+ @Override
+ public List<QueryBodySideAppointmentVO> listAll(QueryBodySideAppointment vo) {
+ return bodySideAppointmentMapper.listAll(vo);
+ }
+
+ @Override
+ public Object changeState(List<Integer> ids) {
+
+ return bodySideAppointmentMapper.changeState(ids);
+ }
+}
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml b/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml
index df28755..23af1fb 100644
--- a/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/BenefitsVideoClassificationMapper.xml
@@ -2,5 +2,32 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsh.activity.mapper.BenefitsVideoClassificationMapper">
+ <update id="changeState">
+ update t_benefits_video_classification set
+ state = #{type}
+ <where>
+ <if test="ids != null and ids.size()>0">
+ AND t_benefits_video_classification.id IN
+ <foreach collection="ids" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </update>
+ <select id="listAll" resultType="com.dsh.activity.model.TQueryBenefitsVO">
+ select t1.*,COUNT(t2.id) AS `count`,t2.courseId courseId from t_benefits_video_classification t1
+ left join t_benefits_videos t2 on t1.id = t2.benefitsVideoClassificationId
+ <where>
+ <if test="query.position!=null and query.position!= ''">
+ and t1.position = #{query.position}
+ </if>
+ <if test="query.name!=null and query.name!= ''">
+ and t1.name like concat('%',#{query.name},'%')
+ </if>
+ AND (t2.id IS NULL OR t2.state != 3 OR t2.state != 2)
+ </where>
+ GROUP BY t1.id
+ order by t1.sort DESC
+ </select>
</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
index 4a31b23..e0af730 100644
--- a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
@@ -42,5 +42,13 @@
order by insertTime desc)
) as a limit #{pageSize}, #{pageNo}
</select>
+ <select id="getBenefitVideoById" resultType="com.dsh.activity.entity.BenefitsVideos">
+ select * from t_benefits_videos where
+ t_benefits_videos.benefitsVideoClassificationId = #{id}
+ </select>
+ <select id="getBybIdAndcId" resultType="com.dsh.activity.entity.BenefitsVideos">
+ select * from t_benefits_videos
+ where benefitsVideoClassificationId=#{bId} and courseId= #{cId}
+ </select>
</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml b/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
new file mode 100644
index 0000000..0fbf1fc
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
@@ -0,0 +1,33 @@
+<?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.activity.mapper.BodySideAppointmentMapper">
+ <update id="changeState">
+ update t_body_side_appointments set
+ status = 2
+ <where>
+ <if test="ids != null and ids.size()>0">
+ AND t_body_side_appointments.id IN
+ <foreach collection="ids" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </update>
+
+ <select id="listAll" resultType="com.dsh.activity.model.QueryBodySideAppointmentVO">
+ select t1.* from t_body_side_appointments t1
+ <where>
+ <if test="query.phone!=null and query.phone!= ''">
+ and t1.phone like concat('%',#{query.phone},'%')
+ </if>
+ <if test="query.parentName!=null and query.parentName!= ''">
+ t1.parentName like concat('%',#{query.parentName},'%')
+ </if>
+ <if test="query.state!=null and query.state!= ''">
+ and t1.state = #{query.state}
+ </if>
+ </where>
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/cloud-server-auth/mb-cloud-auth.iml b/cloud-server-auth/mb-cloud-auth.iml
index 2b5f9ff..8b42c29 100644
--- a/cloud-server-auth/mb-cloud-auth.iml
+++ b/cloud-server-auth/mb-cloud-auth.iml
@@ -120,12 +120,12 @@
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-security:2.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.3.6.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+ <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-oauth2:2.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0.1" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0.1" level="project" />
- <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
- <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-jwt:1.0.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security.oauth:spring-security-oauth2:2.3.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" />
diff --git a/cloud-server-competition/pom.xml b/cloud-server-competition/pom.xml
index 59f93d3..1bdab18 100644
--- a/cloud-server-competition/pom.xml
+++ b/cloud-server-competition/pom.xml
@@ -110,10 +110,6 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
</plugins>
</build>
<repositories>
diff --git a/cloud-server-course/mb-cloud-course.iml b/cloud-server-course/mb-cloud-course.iml
index ae755d5..e5db585 100644
--- a/cloud-server-course/mb-cloud-course.iml
+++ b/cloud-server-course/mb-cloud-course.iml
@@ -9,16 +9,6 @@
<webroots />
</configuration>
</facet>
- <facet type="jpa" name="JPA">
- <configuration>
- <setting name="validation-enabled" value="true" />
- <setting name="provider-name" value="Hibernate" />
- <datasource-mapping>
- <factory-entry name="entityManagerFactory" />
- </datasource-mapping>
- <naming-strategy-map />
- </configuration>
- </facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
diff --git a/cloud-server-course/pom.xml b/cloud-server-course/pom.xml
index ec8e44b..1626e9e 100644
--- a/cloud-server-course/pom.xml
+++ b/cloud-server-course/pom.xml
@@ -129,10 +129,7 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
+
</plugins>
</build>
<repositories>
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index e171113..bb2a1fe 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -9,6 +9,9 @@
import com.dsh.course.entity.TCoursePackageType;
import com.dsh.course.feignclient.model.ExerciseVideo;
import com.dsh.course.model.*;
+import com.dsh.course.model.dto.CourseChangeStateDTO;
+import com.dsh.course.model.dto.TQueryBenefitsVideosDTO;
+import com.dsh.course.model.vo.TQueryBenefitsVideosVO;
import com.dsh.course.service.TCoursePackagePaymentService;
import com.dsh.course.service.TCoursePackageService;
import com.dsh.course.service.TCoursePackageTypeService;
@@ -60,10 +63,27 @@
@Autowired
private TCoursePackagePaymentService coursePackagePaymentService;
+ /**
+ * 上/下架 1为上架 2为下架 3为删除
+ *
+ * @return
+ */
+ @RequestMapping("/base/course/changeState")
+ @ResponseBody
+ public Object changeState(@RequestBody CourseChangeStateDTO dto){
+ return courseService.changeState(dto);
+ }
+ /**
+ * 通过课程ids获取课程
+ * @return
+ */
+ @RequestMapping("/base/course/getCourseByCourseIds")
+ public List<TQueryBenefitsVideosVO> getCourseByCourseIds(@RequestBody TQueryBenefitsVideosDTO query){
-
+ return courseService.getCourseByCourseIds(query);
+ }
@PostMapping("/base/course/queryList")
public List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds){
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java
index 2acb8e9..7211705 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java
@@ -1,13 +1,16 @@
package com.dsh.course.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.entity.TCoursePackage;
import com.dsh.course.entity.TCoursePackageType;
+import com.dsh.course.model.vo.CoursePackageTypeVO;
+import com.dsh.course.service.TCoursePackageService;
import com.dsh.course.service.TCoursePackageTypeService;
+import net.bytebuddy.asm.Advice;
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.Date;
import java.util.List;
/**
@@ -20,7 +23,72 @@
@Autowired
private TCoursePackageTypeService coursePackageTypeService;
+ @Autowired
+ private TCoursePackageService tCoursePackageService;
+
+ /**
+ * 新增课包类型
+ */
+ @ResponseBody
+ @RequestMapping("/coursePackageType/add")
+ public Object add(@RequestBody String name){
+
+ List<TCoursePackageType> list = coursePackageTypeService.list(new QueryWrapper<TCoursePackageType>().eq("name", name).ne("state",3));
+ if (list.size()!= 0){
+ return 500;
+ }else{
+ TCoursePackageType coachType = new TCoursePackageType();
+ coachType.setName(name);
+ coachType.setState(1);
+ coachType.setInsertTime(new Date());
+ coursePackageTypeService.save(coachType);
+ return 200;
+ }
+ }
+
+ /**
+ * 修改课包类型
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/coursePackageType/update")
+ public Object update(@RequestBody CoursePackageTypeVO vo){
+ List<TCoursePackageType> list = coursePackageTypeService.list(new QueryWrapper<TCoursePackageType>().eq("name", vo.getName()));
+ if (list.size()!= 0){
+ return 500;
+ }else{
+ TCoursePackageType tCoursePackageType = new TCoursePackageType();
+ tCoursePackageType.setId(vo.getId());
+ tCoursePackageType.setName(vo.getName());
+ coursePackageTypeService.updateById(tCoursePackageType);
+ return 200;
+ }
+ }
+ /**
+ * 删除课包类型
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping("/coursePackageType/delete")
+ public Object delete(@RequestBody CoursePackageTypeVO vo){
+ Integer id = vo.getId();
+ QueryWrapper<TCoursePackage> coursePackageTypeId = new QueryWrapper<TCoursePackage>().eq("coursePackageTypeId", id);
+ List<TCoursePackage> list = tCoursePackageService.list(coursePackageTypeId);
+ // 500表明当前课包类型正在被使用不能删除
+ if (list.size()>0){
+ return 500;
+ }else{
+ TCoursePackageType tCoursePackageType = new TCoursePackageType();
+ tCoursePackageType.setId(vo.getId());
+ tCoursePackageType.setName(vo.getName());
+ tCoursePackageType.setState(3);
+ coursePackageTypeService.updateById(tCoursePackageType);
+ return 200;
+ }
+ }
/**
* 获取课包所有类型
@@ -29,6 +97,7 @@
@ResponseBody
@PostMapping("/coursePackageType/queryAllCoursePackageType")
public List<TCoursePackageType> queryAllCoursePackageType(){
- return coursePackageTypeService.list();
+ QueryWrapper<TCoursePackageType> state = new QueryWrapper<TCoursePackageType>().ne("state", 3);
+ return coursePackageTypeService.list(state);
}
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java
index 0e9af58..6105a95 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java
@@ -4,6 +4,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.TCourse;
import com.dsh.course.model.QueryCourseList;
+import com.dsh.course.model.dto.CourseChangeStateDTO;
+import com.dsh.course.model.dto.TQueryBenefitsVideosDTO;
+import com.dsh.course.model.vo.TQueryBenefitsVideosVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -29,4 +32,7 @@
*/
List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, @Param("item") QueryCourseList queryCourseList);
+ List<TQueryBenefitsVideosVO> getCourseByCourseIds(@Param("query") TQueryBenefitsVideosDTO query);
+
+ int changeState(@Param("ids") List<Integer> ids ,@Param("state") Integer state);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/dto/CourseChangeStateDTO.java b/cloud-server-course/src/main/java/com/dsh/course/model/dto/CourseChangeStateDTO.java
new file mode 100644
index 0000000..b3451b9
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/dto/CourseChangeStateDTO.java
@@ -0,0 +1,11 @@
+package com.dsh.course.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CourseChangeStateDTO {
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/dto/TQueryBenefitsVideosDTO.java b/cloud-server-course/src/main/java/com/dsh/course/model/dto/TQueryBenefitsVideosDTO.java
new file mode 100644
index 0000000..8710e83
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/dto/TQueryBenefitsVideosDTO.java
@@ -0,0 +1,20 @@
+package com.dsh.course.model.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 接收视频详情列表查询参数DTO
+ */
+@Data
+public class TQueryBenefitsVideosDTO {
+ // 课程id
+ private List<Integer> coursIds;
+ // 视频名称
+ private String name;
+ // 视频类型
+ private Integer type;
+ // 1上架 2下架 3已失效
+ private Integer state;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/CoursePackageTypeVO.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/CoursePackageTypeVO.java
new file mode 100644
index 0000000..b1a8ada
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/CoursePackageTypeVO.java
@@ -0,0 +1,12 @@
+package com.dsh.course.model.vo;
+
+import lombok.Data;
+
+import javax.swing.plaf.nimbus.State;
+
+@Data
+public class CoursePackageTypeVO {
+ private Integer id;
+ private String name;
+ private Integer state;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java
new file mode 100644
index 0000000..b8e0d01
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java
@@ -0,0 +1,26 @@
+package com.dsh.course.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频详情列表查询返回VO
+ */
+@Data
+public class TQueryBenefitsVideosVO {
+ private Integer id;
+ private String name;
+ private String introduce;
+ private String coverDrawing;
+ private String introductionDrawing;
+ private String courseVideo;
+ private Integer state;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+ private Integer integral;
+ private Integer type;
+ // 福利视频ID
+ private Integer benefitsVideosId;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java
index 9f44571..e8255df 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java
@@ -4,6 +4,9 @@
import com.dsh.course.entity.TCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.course.model.QueryCourseList;
+import com.dsh.course.model.dto.CourseChangeStateDTO;
+import com.dsh.course.model.dto.TQueryBenefitsVideosDTO;
+import com.dsh.course.model.vo.TQueryBenefitsVideosVO;
import java.util.List;
import java.util.Map;
@@ -26,4 +29,8 @@
* @return
*/
List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, QueryCourseList queryCourseList);
+
+ List<TQueryBenefitsVideosVO> getCourseByCourseIds(TQueryBenefitsVideosDTO query);
+
+ Object changeState(CourseChangeStateDTO dto);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java
index 45268f5..ec3ecd4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java
@@ -4,10 +4,15 @@
import com.dsh.course.entity.TCourse;
import com.dsh.course.mapper.TCourseMapper;
import com.dsh.course.model.QueryCourseList;
+import com.dsh.course.model.dto.CourseChangeStateDTO;
+import com.dsh.course.model.dto.TQueryBenefitsVideosDTO;
+import com.dsh.course.model.vo.TQueryBenefitsVideosVO;
import com.dsh.course.service.TCourseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -22,7 +27,8 @@
*/
@Service
public class TCourseServiceImpl extends ServiceImpl<TCourseMapper, TCourse> implements TCourseService {
-
+ @Autowired
+ private TCourseMapper courseMapper;
/**
* 获取课程管理列表
@@ -34,4 +40,16 @@
public List<Map<String, Object>> queryCourseList(Page<Map<String, Object>> page, QueryCourseList queryCourseList) {
return this.baseMapper.queryCourseList(page, queryCourseList);
}
+
+ @Override
+ public List<TQueryBenefitsVideosVO> getCourseByCourseIds(TQueryBenefitsVideosDTO query) {
+
+ return courseMapper.getCourseByCourseIds(query);
+ }
+
+ @Override
+ public Object changeState(CourseChangeStateDTO dto) {
+ List<Integer> ids = dto.getIds();
+ return courseMapper.changeState(ids,dto.getState());
+ }
}
diff --git a/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml b/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml
index 10ad714..1c9dc49 100644
--- a/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCourseMapper.xml
@@ -14,7 +14,18 @@
<result column="state" property="state" />
<result column="insertTime" property="insertTime" />
</resultMap>
-
+ <update id="changeState">
+ update t_course set
+ state = #{state}
+ <where>
+ <if test="ids != null and ids.size()>0">
+ AND t_course.id IN
+ <foreach collection="ids" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </update>
<select id="queryCourseList" resultType="map">
@@ -27,4 +38,25 @@
</if>
order by insertTime desc
</select>
+
+ <select id="getCourseByCourseIds" resultType="com.dsh.course.model.vo.TQueryBenefitsVideosVO">
+ select * from t_course
+ <where>
+ <if test="query.name != null and query.name != ''">
+ AND t_course.name LIKE concat('%',#{query.name},'%')
+ </if>
+ <if test="query.type != null and query.type != '' ">
+ AND t_course.type = #{query.type}
+ </if>
+ <if test="query.state != null and query.state != '' ">
+ AND t_course.state = #{query.state}
+ </if>
+ <if test="query.coursIds != null and query.coursIds.size()>0">
+ AND t_course.id IN
+ <foreach collection="query.coursIds" separator="," item="coursId" open="(" close=")">
+ #{coursId}
+ </foreach>
+ </if>
+ </where>
+ </select>
</mapper>
diff --git a/cloud-server-gateway/pom.xml b/cloud-server-gateway/pom.xml
index a44669b..a7e6fe4 100644
--- a/cloud-server-gateway/pom.xml
+++ b/cloud-server-gateway/pom.xml
@@ -52,10 +52,7 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
+
</plugins>
</build>
diff --git a/cloud-server-management/pom.xml b/cloud-server-management/pom.xml
index 3ee8da5..85e929b 100644
--- a/cloud-server-management/pom.xml
+++ b/cloud-server-management/pom.xml
@@ -226,10 +226,6 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
</plugins>
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java
index 1cb8d71..5c2c9af 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityManagerClient.java
@@ -1,8 +1,15 @@
package com.dsh.course.feignClient.account;
import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.guns.modular.system.model.Store;
+import com.dsh.guns.modular.system.model.TStore;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
/**
* @author zhibing.pu
@@ -19,4 +26,23 @@
*/
@PostMapping("/cityManager/queryCityManagerById")
CityManager queryCityManagerById(Integer id);
+
+ /**
+ * 获取已有城市管理的省、市
+ */
+ @RequestMapping("/cityManager/listAll")
+ List<CityManager> listAll();
+
+ /**
+ * 选择省 展示市
+ */
+ @RequestMapping("/cityManager/getCity")
+ List<CityManager> getCity(@RequestBody String province);
+
+ /**
+ * 选择市区 展示全部账号
+ */
+ @RequestMapping("/cityManager/getAccount")
+ List<CityManager> getAccount(@RequestBody String city);
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java
index 84688f3..002c526 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachClient.java
@@ -1,8 +1,14 @@
package com.dsh.course.feignClient.account;
import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.account.model.CoachSerchVO;
+import com.dsh.guns.modular.system.model.CoachChangeStateVO;
+import com.dsh.guns.modular.system.model.CoachQuery;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@@ -15,6 +21,36 @@
/**
+ * 上/下架、删除常见问题 type=1为上架 2为下架 3为删除
+ */
+ @RequestMapping("/coach/changeState")
+ Object changeState(@RequestBody CoachChangeStateVO vo);
+ /**
+ * 获取教练列表数据
+ */
+ @PostMapping("/coach/listAll")
+ List<CoachSerchVO> listAll(@RequestBody CoachQuery query);
+
+
+ /**
+ * 添加教练
+ * @return
+ */
+ @RequestMapping("/base/site/addCoach")
+ Object addCoach(@RequestBody Coach coach);
+ /**
+ * 获取所有省
+ */
+ @PostMapping("/coach/getProvince")
+ List<Coach> getProvince();
+
+ /**
+ * 根据选择的省获取对应的市
+ */
+ @PostMapping("/coach/getCity")
+ List<Coach> getCity(@RequestBody String city);
+
+ /**
* 获取城市下的所有教练
* @param cityCode
* @return
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachTypeClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachTypeClient.java
new file mode 100644
index 0000000..ca06932
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CoachTypeClient.java
@@ -0,0 +1,37 @@
+package com.dsh.course.feignClient.account;
+
+import com.dsh.course.feignClient.account.model.CoachType;
+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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:58
+ */
+@FeignClient("mb-cloud-account")
+public interface CoachTypeClient {
+
+
+ @PostMapping("/coachType/list")
+ List<CoachType> list();
+
+ /**
+ * 新增教练类型
+ * @param
+ * @return
+ */
+ @RequestMapping("/coachType/add")
+ Object add(@RequestBody String name);
+
+ /**
+ * 修改教练类型
+ * @param
+ * @return
+ */
+ @RequestMapping("/coachType/update")
+ Object update(@RequestBody CoachType vo);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StoreStaffClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StoreStaffClient.java
new file mode 100644
index 0000000..b18c003
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StoreStaffClient.java
@@ -0,0 +1,25 @@
+package com.dsh.course.feignClient.account;
+
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.TStoreStaff;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:07
+ */
+@FeignClient("mb-cloud-account")
+public interface StoreStaffClient {
+
+ /**
+ * 根据id获取数据
+ * @param id
+ * @return
+ */
+ @GetMapping("/cityManager/getStoreByStoreStaffId")
+ TStoreStaff getStoreByStoreStaffId(@RequestParam("id") Integer id);
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java
index 069f593..5cf79ef 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/Coach.java
@@ -58,6 +58,7 @@
/**
* 生日
*/
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date birthday;
/**
* 性别(1=男,2=女)
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachSerchVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachSerchVO.java
new file mode 100644
index 0000000..d081f33
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachSerchVO.java
@@ -0,0 +1,107 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 教练
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+@Data
+public class CoachSerchVO {
+ /**
+ * 主键
+ */
+ private Integer id;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 城市管理员id
+ */
+ private Integer cityManagerId;
+ private String nameAndPhone;
+ private String accountName;
+ private String accountPhone;
+ /**
+ * 教练类型id
+ */
+ private Integer coachTypeId;
+ private String coachTypeName;
+ /**
+ * 姓名
+ */
+ private String name;
+ /**
+ * 生日
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date birthday;
+ /**
+ * 性别(1=男,2=女)
+ */
+ private Integer gender;
+ /**
+ * 电话
+ */
+ private String phone;
+ /**
+ * 身份证号码
+ */
+ private String idcard;
+ /**
+ * 身高(厘米)
+ */
+ private Double height;
+ /**
+ * 体重(KG)
+ */
+ private Double weight;
+ /**
+ * 毕业院校
+ */
+ private String graduateSchool;
+ /**
+ * 毕业证照片
+ */
+ private String diploma;
+ /**
+ * 资格证书(多个逗号分隔)
+ */
+ private String certificate;
+ /**
+ * 证书照片
+ */
+ private String certificateImg;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date insertTime;
+
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachType.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachType.java
new file mode 100644
index 0000000..e0accd6
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CoachType.java
@@ -0,0 +1,52 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 教练类型
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_coach_type")
+public class CoachType extends Model<CoachType> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 类型名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TStoreStaff.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TStoreStaff.java
new file mode 100644
index 0000000..8d49c11
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TStoreStaff.java
@@ -0,0 +1,63 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 门店员工
+ * </p>
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_store_staff")
+public class TStoreStaff extends Model<TStoreStaff> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 手机号
+ */
+ @TableField("phone")
+ private Integer phone;
+ /**
+ * 密码
+ */
+ @TableField("password")
+ private Integer password;
+ /**
+ * 所属门店id
+ */
+ @TableField("storeId")
+ private Integer storeId;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BenefitsVideoClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BenefitsVideoClient.java
new file mode 100644
index 0000000..081ee40
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BenefitsVideoClient.java
@@ -0,0 +1,70 @@
+package com.dsh.course.feignClient.activity;
+
+import com.dsh.course.feignClient.activity.model.BenefitsVedioChangeStateVO;
+import com.dsh.course.feignClient.activity.model.BenefitsVideoClassification;
+import com.dsh.course.feignClient.activity.model.BenefitsVideos;
+import com.dsh.course.feignClient.activity.model.QueryBenefitsVedioVO;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVO;
+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.ResponseBody;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 12:02
+ */
+@FeignClient("mb-cloud-activity")
+public interface BenefitsVideoClient {
+
+ /**
+ * 根据福利视频id获取福利视频信息
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getBenefitVideosById")
+ @ResponseBody
+ BenefitsVideos getBenefitVideosById(@RequestBody Integer id);
+
+ /**
+ * 获取所有福利视频分类
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/list")
+ List<TQueryBenefitsVO> listAll(@RequestBody QueryBenefitsVedioVO vo);
+
+ /**
+ * 查看详情/编辑
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getById")
+ BenefitsVideoClassification getById(@RequestBody Integer id);
+
+ /**
+ * 添加/修改福利视频分类
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/add")
+ Object addSite(@RequestBody BenefitsVideoClassification site);
+
+ /**
+ * 添加/修改视频详情
+ * @return
+ */
+ @RequestMapping("/base/addBenefitsVideos")
+ Object addBenefitsVideos(@RequestBody BenefitsVideos site);
+
+ /**
+ * 上/下架、删除福利视频分类 type=1为上架 2为下架 3为删除
+ */
+ @RequestMapping("/base/benefitVideo/changeState")
+ Object changeState(@RequestBody BenefitsVedioChangeStateVO vo);
+
+ /**
+ * 查看福利视频分类下视频
+ * @return
+ */
+ @RequestMapping("/base/benefitVideo/getBenefitVideoById")
+ public List<BenefitsVideos> getBenefitVideoById(@RequestBody Integer id);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BodySideAppointmentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BodySideAppointmentClient.java
new file mode 100644
index 0000000..fc236eb
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/BodySideAppointmentClient.java
@@ -0,0 +1,44 @@
+package com.dsh.course.feignClient.activity;
+
+import com.dsh.course.feignClient.activity.model.*;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVO;
+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.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 体测预约
+ */
+@FeignClient("mb-cloud-activity")
+public interface BodySideAppointmentClient {
+
+ /**
+ * 获取所有体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/listAll")
+ List<QueryBodySideAppointmentVO> listAll(@RequestBody QueryBodySideAppointment vo);
+ /**
+ * 增加/修改体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/addBodySideAppointments")
+ Object addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo);
+
+ /**
+ * 手动标记用户已经到店并完成体测
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/changeState")
+ Object changeState(@RequestBody List<Integer> ids);
+
+ /**
+ * 通过id获取体测预约记录
+ * @return
+ */
+ @RequestMapping("/base/bodySideAppointments/getInfoById")
+ BodySideAppointment getInfoById(@RequestBody Integer id);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVedioChangeStateVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVedioChangeStateVO.java
new file mode 100644
index 0000000..fd34f53
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVedioChangeStateVO.java
@@ -0,0 +1,12 @@
+package com.dsh.course.feignClient.activity.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BenefitsVedioChangeStateVO {
+
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideoClassification.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideoClassification.java
new file mode 100644
index 0000000..7ff62e7
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideoClassification.java
@@ -0,0 +1,50 @@
+package com.dsh.course.feignClient.activity.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/11 17:28
+ */
+@Data
+@TableName("t_benefits_video_classification")
+public class BenefitsVideoClassification {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 分类名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 位置(1=线上课得积分,2=看视频得奖励)
+ */
+ @TableField("position")
+ private Integer position;
+ /**
+ * 排序
+ */
+ @TableField("sort")
+ private Integer sort;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+ /**
+ * 状态 1=正常 2=下架 3=删除
+ */
+ @TableField("state")
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideos.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideos.java
new file mode 100644
index 0000000..09007fe
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BenefitsVideos.java
@@ -0,0 +1,69 @@
+package com.dsh.course.feignClient.activity.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 福利视频
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_benefits_videos")
+public class BenefitsVideos extends Model<BenefitsVideos> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 分类id
+ */
+ @TableField("benefitsVideoClassificationId")
+ private Integer benefitsVideoClassificationId;
+ /**
+ * 课程id
+ */
+ @TableField("courseId")
+ private Integer courseId;
+ /**
+ * 可得积分
+ */
+ @TableField("integral")
+ private Integer integral;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BodySideAppointment.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BodySideAppointment.java
new file mode 100644
index 0000000..7f7fd4e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/BodySideAppointment.java
@@ -0,0 +1,51 @@
+package com.dsh.course.feignClient.activity.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("t_body_side_appointments")
+public class BodySideAppointment {
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("province")
+ private String province;
+ @TableField("provinceCode")
+ private String provinceCode;
+ @TableField("city")
+ private String city;
+ @TableField("cityCode")
+ private String cityCode;
+ @TableField("storeId")
+ private Integer storeId;
+ @TableField("parentName")
+ private String parentName;
+ @TableField("phone")
+ private String phone;
+ @TableField("learnerName")
+ private String learnerName;
+ @TableField("learnerAge")
+ private Integer learnerAge;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @TableField("birthday")
+ private Date birthday;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField("appointmentTime")
+ private Date appointmentTime;
+ @TableField("status")
+ private Integer status;
+ @TableField("state")
+ private Integer state;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ @TableField("insertTime")
+ private Date insertTime;
+
+}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBenefitsVedioVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBenefitsVedioVO.java
new file mode 100644
index 0000000..93b7e16
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBenefitsVedioVO.java
@@ -0,0 +1,11 @@
+package com.dsh.course.feignClient.activity.model;
+
+import lombok.Data;
+/**
+ * 福利视频分类接收查询参数VO
+ */
+@Data
+public class QueryBenefitsVedioVO {
+ private Integer position;
+ private String name;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java
new file mode 100644
index 0000000..135cf2e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java
@@ -0,0 +1,16 @@
+package com.dsh.course.feignClient.activity.model;
+
+import lombok.Data;
+
+/**
+ * 接收查询参数VO
+ */
+@Data
+public class QueryBodySideAppointment {
+ private String phone;
+ private String parentName;
+ // 1 = 待体测 2 = 已体测
+ private Integer state;
+ // 1=今日内预约 2=明日预约 7=七日内
+ private Integer day;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointmentVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointmentVO.java
new file mode 100644
index 0000000..24756cb
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointmentVO.java
@@ -0,0 +1,34 @@
+package com.dsh.course.feignClient.activity.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 体测预约管理查询VO
+ */
+@Data
+public class QueryBodySideAppointmentVO {
+ private Integer id;
+ private String province;
+ private String provinceCode;
+ private String city;
+ private String cityCode;
+ private Integer storeId;
+ private String storeName;
+ private String parentName;
+ private String phone;
+ private String learnerName;
+ private Integer learnerAge;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ private Date birthday;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date appointmentTime;
+ private Integer status;
+ private Integer state;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+ private String provinceAndCity;
+
+}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
index 73aca6a..fe050a9 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -1,12 +1,17 @@
package com.dsh.course.feignClient.course;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
import com.dsh.course.feignClient.course.model.QueryCourseList;
import com.dsh.guns.modular.system.model.EditCourseState;
import com.dsh.guns.modular.system.model.TCourse;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVideosDTO;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVideosVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
@@ -19,6 +24,21 @@
public interface CourseClient {
/**
+ * 上/下架 1为上架 2为下架 3为删除
+ *
+ * @return
+ */
+ @RequestMapping("/base/course/changeState")
+ Object changeState(@RequestBody CourseChangeStateDTO dto);
+
+ /**
+ * 通过课程ids获取课程
+ * @return
+ */
+ @RequestMapping("/base/course/getCourseByCourseIds")
+ List<TQueryBenefitsVideosVO> getCourseByCourseIds(@RequestBody TQueryBenefitsVideosDTO query);
+
+ /**
* 获取课程管理列表
* @param queryCourseList
* @return
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java
index 3cd9e65..31b2af5 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageTypeClient.java
@@ -1,8 +1,12 @@
package com.dsh.course.feignClient.course;
+import com.dsh.course.feignClient.course.model.CoursePackageTypeVO;
import com.dsh.course.feignClient.course.model.TCoursePackageType;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@@ -15,6 +19,26 @@
/**
+ * 删除课包类型
+ * @param
+ * @return
+ */
+ @RequestMapping("/coursePackageType/delete")
+ Object delete(@RequestBody CoursePackageTypeVO coachType);
+
+ /**
+ * 修改课包类型
+ * @param
+ * @return
+ */
+ @RequestMapping("/coursePackageType/update")
+ Object update(@RequestBody CoursePackageTypeVO coachType);
+ /**
+ * 新增课包类型
+ */
+ @RequestMapping("/coursePackageType/add")
+ Object add(@RequestBody String name);
+ /**
* 获取课包所有类型
* @return
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CourseChangeStateDTO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CourseChangeStateDTO.java
new file mode 100644
index 0000000..b928b9e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CourseChangeStateDTO.java
@@ -0,0 +1,11 @@
+package com.dsh.course.feignClient.course.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CourseChangeStateDTO {
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageTypeVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageTypeVO.java
new file mode 100644
index 0000000..c0d5f04
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageTypeVO.java
@@ -0,0 +1,10 @@
+package com.dsh.course.feignClient.course.model;
+
+import lombok.Data;
+
+@Data
+public class CoursePackageTypeVO {
+ private Integer id;
+ private String name;
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
new file mode 100644
index 0000000..db55f88
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteClient.java
@@ -0,0 +1,49 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
+import com.dsh.course.feignClient.other.model.TSiteDTO;
+import com.dsh.guns.modular.system.model.ExpireSiteSearchVO;
+import com.dsh.guns.modular.system.model.SiteSearchVO;
+import com.dsh.guns.modular.system.model.TSite;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.springframework.cloud.openfeign.FeignClient;
+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 SiteClient {
+
+
+ /**
+ * 上/下架、删除常见问题 type=1为上架 2为下架 3为删除
+ */
+ @RequestMapping("/base/site/changeState")
+ Object changeState(@RequestBody SiteChangeStateVO vo);
+ /**
+ * 获取所有场地
+ * @return
+ */
+ @RequestMapping("/base/site/list")
+ List<TSiteDTO> listAll(@RequestBody SiteSearchVO vo);
+ /**
+ * 获取场地有效期在两个月内的场地列表
+ * @return
+ */
+ @RequestMapping("/base/site/listExipre")
+ List<TSiteDTO> listExipre(@RequestBody ExpireSiteSearchVO vo);
+
+ /**
+ * 添加场地管理
+ * @return
+ */
+ @RequestMapping("/base/site/addSite")
+ Object addSite(@RequestBody Site site);
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteLockClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteLockClient.java
new file mode 100644
index 0000000..d571844
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/SiteLockClient.java
@@ -0,0 +1,45 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
+import com.dsh.course.feignClient.other.model.TSiteDTO;
+import com.dsh.course.feignClient.other.model.TSiteLockDTO;
+import com.dsh.guns.modular.system.model.SiteSearchVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 常见问题
+ */
+@FeignClient(value = "mb-cloud-other")
+public interface SiteLockClient {
+
+ /**
+ * 锁定场地列表
+ * @param
+ * @return
+ */
+ @PostMapping("/siteLock/getListById/{id}")
+ public List<TSiteLockDTO> getListById(@PathVariable("id") Integer id);
+
+ /**
+ * 添加锁定场地
+ * @param
+ * @return
+ */
+ @PostMapping("/siteLock/addSiteLock")
+ public Object addSiteLock(@RequestBody TSiteLockDTO siteLock);
+
+ /**
+ * 删除锁定场地
+ * @param
+ * @return
+ */
+ @PostMapping("/siteLock/deleteSiteLock/{id}")
+ public Object deleteSiteLock(@PathVariable("id") Integer id);
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreClient.java
new file mode 100644
index 0000000..bdaa8bf
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreClient.java
@@ -0,0 +1,50 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.feignClient.other.model.FrequentlyAskedQuestions;
+import com.dsh.course.feignClient.other.model.TSiteDTO;
+import com.dsh.guns.modular.system.model.QuestionChangeStateVO;
+import com.dsh.guns.modular.system.model.SiteSearchVO;
+import com.dsh.guns.modular.system.model.Store;
+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.List;
+
+/**
+ * 常见问题
+ */
+@FeignClient(value = "mb-cloud-other")
+public interface StoreClient {
+
+ /**
+ * 选择市区 展示全部门店
+ */
+ @RequestMapping("base/store/getStore")
+ List<Store> getStore(@RequestBody String city);
+
+ /**
+ * 根据所选门店 查询经营时间
+ * @param oneId
+ * @return
+ */
+ @RequestMapping("base/store/getTime")
+ Store getTime(@RequestBody String oneId);
+
+ /**
+ * 根据门店id获取门店信息
+ */
+ @RequestMapping("base/site/getStoreById")
+ Store getStoreById(@RequestBody Integer id);
+ /**
+ * 根据城市管理员id获取门店
+ */
+ @RequestMapping("base/site/getStoreByCityManagerId")
+ List<Store> getStoreByCityManagerId(@RequestBody Integer id);
+ /**
+ * 根据员工id获取门店
+ */
+ @RequestMapping("base/site/getStoreByStoreStaffId")
+ List<Store> getStoreByStoreStaffId(@RequestBody Integer id);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/Site.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/Site.java
new file mode 100644
index 0000000..90d6814
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/Site.java
@@ -0,0 +1,112 @@
+package com.dsh.course.feignClient.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/13 15:57
+ */
+@Data
+@TableName("t_site")
+public class Site {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 门店id
+ */
+ @TableField("storeId")
+ private Integer storeId;
+ /**
+ * 场地名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 场地类型id
+ */
+ @TableField("siteTypeId")
+ private Integer siteTypeId;
+ /**
+ * 城市管理员id
+ */
+ @TableField("cityManagerId")
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ @TableField("appointmentStartTime")
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ @TableField("appointmentEndTime")
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ @TableField("cashPrice")
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ @TableField("playPaiCoin")
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ @TableField("insuranceEndTime")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ @TableField("insuranceImg")
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ @TableField("managementPlan")
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date insertTime;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteAddDTO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteAddDTO.java
new file mode 100644
index 0000000..1c047ad
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteAddDTO.java
@@ -0,0 +1,91 @@
+package com.dsh.course.feignClient.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:43
+ */
+@Data
+public class SiteAddDTO {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 门店id
+ */
+ private Integer storeId;
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 场地类型id
+ */
+ private Integer siteTypeId;
+ /**
+ * 城市管理员id
+ */
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date insertTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteChangeStateVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteChangeStateVO.java
new file mode 100644
index 0000000..7d53f1b
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/SiteChangeStateVO.java
@@ -0,0 +1,21 @@
+package com.dsh.course.feignClient.other.model;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 修改场地状态
+ */
+@Data
+public class SiteChangeStateVO {
+ /**
+ * 场地Id
+ */
+ List<Integer> siteIds;
+ /**
+ * 上/下架 删除场地 type=1 上架 2下架 3删除
+ */
+ Integer type;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteDTO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteDTO.java
new file mode 100644
index 0000000..87831ca
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteDTO.java
@@ -0,0 +1,116 @@
+package com.dsh.course.feignClient.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author 场地管理列表DTO
+ * @Date 2023/8/1 17:43
+ */
+@Data
+@TableName("t_site")
+public class TSiteDTO {
+
+ private Integer id;
+ /**
+ * 门店id
+ */
+
+ private Integer storeId;
+ /**
+ * 门店名称
+ */
+ private String storeName;
+ /**
+ * 场地名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 场地类型id
+ */
+ @TableField("siteTypeId")
+ private Integer siteTypeId;
+ /**
+ * 场地类型名称
+ */
+ @TableField("siteTypeId")
+ private String siteTypeName;
+ /**
+ * 城市管理员id
+ */
+ @TableField("cityManagerId")
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ @TableField("appointmentStartTime")
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ @TableField("appointmentEndTime")
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ @TableField("cashPrice")
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ @TableField("playPaiCoin")
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ @TableField("insuranceEndTime")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ @TableField("insuranceImg")
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ @TableField("managementPlan")
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ private Date insertTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteLockDTO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteLockDTO.java
new file mode 100644
index 0000000..3feb72e
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/model/TSiteLockDTO.java
@@ -0,0 +1,35 @@
+package com.dsh.course.feignClient.other.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 锁定场地DTO
+ */
+@Data
+public class TSiteLockDTO {
+ /**
+ * 场地id
+ */
+ private Integer id;
+ /**
+ * 场地id
+ */
+ private Integer siteId;
+ /**
+ * 锁定开始时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ private Date startTime;
+ /**
+ * 锁定结束时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ private Date endTime;
+
+ private String ssTime;
+
+ private String eeTime;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
new file mode 100644
index 0000000..e5a6959
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
@@ -0,0 +1,243 @@
+package com.dsh.guns.modular.system.controller.code;
+
+
+import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.CoachClient;
+import com.dsh.course.feignClient.account.CoachTypeClient;
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.account.model.CoachSerchVO;
+import com.dsh.course.feignClient.account.model.CoachType;
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.CoachChangeStateVO;
+import com.dsh.guns.modular.system.model.CoachQuery;
+import com.dsh.guns.modular.system.model.Store;
+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;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+/**
+ * 教练
+ */
+@Controller
+@RequestMapping("/tCoach")
+public class CoachController {
+
+ private String PREFIX = "/system/tCoach/";
+ @Autowired
+ private CoachTypeClient coachTypeClient;
+ @Autowired
+ private CoachClient coachClient;
+ @Autowired
+ private CityManagerClient cityManagerClient;
+
+ /**
+ * 跳转教练管理首页
+ */
+ @RequestMapping("")
+ public String index(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ List<Coach> list1=coachClient.getProvince();
+ CoachQuery coachQuery = new CoachQuery();
+ List<CoachSerchVO> data = coachClient.listAll(coachQuery);
+
+ List<String> province = new ArrayList<>();
+ for (Coach coach : list1) {
+ province.add(coach.getProvince());
+ }
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("data",data);
+ model.addAttribute("list",province);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ return PREFIX + "TCoach.html";
+ }
+ /**
+ * 获取教练列表
+ */
+ @RequestMapping(value = "/getCity")
+ @ResponseBody
+ public List<Coach> getCity(String province) {
+ return coachClient.getCity(province);
+ }
+
+ /**
+ * 跳转添加教练页面
+ */
+ @RequestMapping("/addCoach")
+ public String addCoach(Model model) {
+ List<CityManager> province = cityManagerClient.listAll();
+ Set<String> seenNames = new HashSet<>();
+ List<CityManager> result = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ if(!seenNames.contains(cityManager.getProvince())){
+ result.add(cityManager);
+ seenNames.add(cityManager.getProvince());
+ }
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ CoachQuery coachQuery = new CoachQuery();
+ List<CoachSerchVO> data = coachClient.listAll(coachQuery);
+ List<CoachType> list = coachTypeClient.list();
+
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("data",data);
+ model.addAttribute("list",result);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("coachType",list);
+ return PREFIX + "TCoach_add.html";
+ }
+ /**
+ * 添加教练
+ */
+ @ResponseBody
+ @RequestMapping(value = "/add")
+ public ResultUtil addCoach(@RequestBody Coach coach) {
+ Integer objectId = UserExt.getUser().getObjectId();
+ if (UserExt.getUser().getObjectType() == 2){
+ CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
+ coach.setProvince(cityManager.getProvince());
+ coach.setProvinceCode(cityManager.getProvinceCode());
+ coach.setCity(cityManager.getCity());
+ coach.setCityCode(cityManager.getCityCode());
+ coach.setCityManagerId(objectId);
+
+ }
+ if (coach.getDiploma().equals("")) coach.setDiploma(null);
+ if (coach.getCertificateImg().equals("") ){
+ coach.setCertificateImg(null);
+ }
+ if (coach.getCertificateImg()!=null){
+ coach.setCertificateImg(coach.getCertificateImg().substring(1));
+ }
+ coach.setInsertTime(new Date());
+ coach.setState(1);
+ coachClient.addCoach(coach);
+ return ResultUtil.success("添加成功");
+ }
+
+ /**
+ * 1为冻结 2为解冻
+ *
+ * @return
+ */
+ @RequestMapping("/changeState")
+ @ResponseBody
+ public Object changeState(@RequestBody CoachChangeStateVO vo){
+ coachClient.changeState(vo);
+ return ResultUtil.success();
+ }
+ /**
+ * 跳转修改教练页面
+ */
+ @RequestMapping("/updateCoach/{id}")
+ public String updateCoach(Model model, @PathVariable("id") Integer id) {
+ CoachQuery coachQuery = new CoachQuery();
+ coachQuery.setId(id);
+ List<CoachSerchVO> data = coachClient.listAll(coachQuery);
+ List<CityManager> province = cityManagerClient.listAll();
+ Set<String> seenNames = new HashSet<>();
+ List<CityManager> result = new ArrayList<>();
+ List<CityManager> city = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ if(!seenNames.contains(cityManager.getProvince())){
+ result.add(cityManager);
+ seenNames.add(cityManager.getProvince());
+ }
+ if(data.get(0).getProvince().equals(cityManager.getProvince())){
+ city.add(cityManager);
+ }
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ List<CityManager> accounts = cityManagerClient.getAccount(data.get(0).getCity());
+ List<CoachType> list = coachTypeClient.list();
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("data",data.get(0));
+ model.addAttribute("list",result);
+ model.addAttribute("city",city);
+ model.addAttribute("cityManagers",accounts);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("coachType",list);
+ // 1为查看详情
+ model.addAttribute("type",0);
+ String[] split = data.get(0).getCertificateImg().split(",");
+ List<String> pictures = new ArrayList<>(Arrays.asList(split));
+ model.addAttribute("pictures",pictures);
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ String birthday = format.format(data.get(0).getBirthday());
+ model.addAttribute("birthday",birthday);
+ return PREFIX + "TCoach_edit.html";
+ }
+ /**
+ * 跳转修改教练页面
+ */
+ @RequestMapping("/infoCoach/{id}")
+ public String infoCoach(Model model, @PathVariable("id") Integer id) {
+ CoachQuery coachQuery = new CoachQuery();
+ coachQuery.setId(id);
+ List<CoachSerchVO> data = coachClient.listAll(coachQuery);
+ List<CityManager> province = cityManagerClient.listAll();
+ Set<String> seenNames = new HashSet<>();
+ List<CityManager> result = new ArrayList<>();
+ List<CityManager> city = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ if(!seenNames.contains(cityManager.getProvince())){
+ result.add(cityManager);
+ seenNames.add(cityManager.getProvince());
+ }
+ if(data.get(0).getProvince().equals(cityManager.getProvince())){
+ city.add(cityManager);
+ }
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ List<CityManager> accounts = cityManagerClient.getAccount(data.get(0).getCity());
+ List<CoachType> list = coachTypeClient.list();
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("data",data.get(0));
+ model.addAttribute("list",result);
+ model.addAttribute("city",city);
+ model.addAttribute("cityManagers",accounts);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("coachType",list);
+ // 1为查看详情
+ model.addAttribute("type",1);
+ String[] split = data.get(0).getCertificateImg().split(",");
+ List<String> pictures = new ArrayList<>(Arrays.asList(split));
+ model.addAttribute("pictures",pictures);
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ String birthday = format.format(data.get(0).getBirthday());
+ model.addAttribute("birthday",birthday);
+ return PREFIX + "TCoach_edit.html";
+ }
+ /**
+ * 获取教练列表
+ */
+ @RequestMapping(value = "/list")
+ @ResponseBody
+ public List<CoachSerchVO> list(String province, String city, String name, String phone) {
+ CoachQuery coachQuery = new CoachQuery();
+ coachQuery.setProvince(province);
+ coachQuery.setCity(city);
+ coachQuery.setName(name);
+ coachQuery.setPhone(phone);
+ return coachClient.listAll(coachQuery);
+ }
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachTypeController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachTypeController.java
new file mode 100644
index 0000000..553ff2d
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachTypeController.java
@@ -0,0 +1,75 @@
+package com.dsh.guns.modular.system.controller.code;
+
+
+import com.dsh.course.feignClient.account.CoachTypeClient;
+import com.dsh.course.feignClient.account.model.CoachType;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.QuestionSearchVO;
+import net.bytebuddy.asm.Advice;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 教练类型
+ */
+@Controller
+@RequestMapping("/tCoachType")
+public class CoachTypeController {
+
+ private String PREFIX = "/system/tCoachType/";
+ @Autowired
+ private CoachTypeClient coachTypeClient;
+
+ /**
+ * 跳转常见问题首页
+ */
+ @RequestMapping("")
+ public String index(Model model) {
+
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ return PREFIX + "TCoachType.html";
+ }
+ /**
+ * 获取教练类型列表
+ */
+ @RequestMapping("/list")
+ @ResponseBody
+ public List<CoachType> list() {
+ return coachTypeClient.list();
+ }
+ /**
+ * 新增教练类型
+ */
+ @RequestMapping("/add")
+ @ResponseBody
+ public Object addCoachType(String name) {
+ return coachTypeClient.add(name);
+ }
+ /**
+ * 修改教练类型
+ */
+ @RequestMapping("/update")
+ @ResponseBody
+ public Object updateCoachType(@RequestBody CoachType vo) {
+
+ return coachTypeClient.update(vo);
+ }
+ /**
+ * 删除教练类型
+ */
+ @RequestMapping("/delete")
+ @ResponseBody
+ public Object deleteCoachType(Integer id) {
+ CoachType coachType = new CoachType();
+ coachType.setId(id);
+ coachType.setState(3);
+ return coachTypeClient.update(coachType);
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java
index 0c839e7..061a869 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/QuestionController.java
@@ -35,7 +35,7 @@
/**
- * 优惠券管理 控制器
+ * 常见问题管理 控制器
*/
@Controller
@@ -63,6 +63,8 @@
*/
@RequestMapping("")
public String index(Model model) {
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
return PREFIX + "TQuestion.html";
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
new file mode 100644
index 0000000..42238b3
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
@@ -0,0 +1,115 @@
+package com.dsh.guns.modular.system.controller.code;
+
+
+import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.activity.BodySideAppointmentClient;
+import com.dsh.course.feignClient.activity.model.BodySideAppointment;
+import com.dsh.course.feignClient.activity.model.QueryBodySideAppointment;
+import com.dsh.course.feignClient.activity.model.QueryBodySideAppointmentVO;
+import com.dsh.course.feignClient.other.StoreClient;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.CoachQuery;
+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;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 体测预约管理控制器
+ */
+@Controller
+@RequestMapping("/bodySideAppointment")
+public class TBodySideAppointmentsController {
+ private String PREFIX = "/system/bodySideAppointment/";
+
+ @Autowired
+ private StoreClient storeClient;
+ @Autowired
+ private BodySideAppointmentClient bodySideAppointmentClient;
+ @Autowired
+ private CityManagerClient cityManagerClient;
+ /**
+ * 跳转体测预约管理首页
+ */
+ @RequestMapping("")
+ public String index(Model model) {
+ return PREFIX + "TBodySideAppointment.html";
+ }
+ /**
+ * 跳转体测预约管理添加页面
+ */
+ @RequestMapping("/add")
+ public String add(Model model) {
+ List<CityManager> province = cityManagerClient.listAll();
+ Set<String> seenNames = new HashSet<>();
+ List<CityManager> result = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ if(!seenNames.contains(cityManager.getProvince())){
+ result.add(cityManager);
+ seenNames.add(cityManager.getProvince());
+ }
+ }
+ model.addAttribute("list",result);
+ return PREFIX + "TBodySideAppointment_add.html";
+ }
+ /**
+ * 跳转体测预约管理编辑页面
+ */
+ @RequestMapping("/update")
+ public String update(Model model) {
+ return PREFIX + "TBodySideAppointment_edit.html";
+ }
+
+ /**
+ * 获取所有体测预约记录
+ * @return
+ */
+ @RequestMapping("/listAll")
+ @ResponseBody
+ public List<QueryBodySideAppointmentVO> listAll(String phone,String parentName,Integer state){
+ QueryBodySideAppointment vo = new QueryBodySideAppointment();
+ vo.setParentName(parentName);
+ vo.setPhone(phone);
+ vo.setState(state);
+ List<QueryBodySideAppointmentVO> queryBodySideAppointmentVOS = bodySideAppointmentClient.listAll(vo);
+ for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
+ queryBodySideAppointmentVO.setProvinceAndCity(queryBodySideAppointmentVO.getProvince()+queryBodySideAppointmentVO.getCity());
+ }
+ return queryBodySideAppointmentVOS;
+ }
+
+ /**
+ * 添加/修改体测预约记录
+ */
+ @ResponseBody
+ @RequestMapping(value = "/addBodySideAppointments")
+ public ResultUtil addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo) {
+ bodySideAppointmentClient.addBodySideAppointments(vo);
+ return ResultUtil.success("添加成功");
+ }
+
+ /**
+ * 添加/修改体测预约记录
+ */
+ @ResponseBody
+ @RequestMapping(value = "/getInfoById")
+ public BodySideAppointment getInfoById(@RequestBody Integer id) {
+ return bodySideAppointmentClient.getInfoById(id);
+ }
+
+ /**
+ * 手动标记用户已经到店并完成体测
+ */
+ @ResponseBody
+ @RequestMapping(value = "/changeState")
+ public Object changeState(@RequestBody List<Integer> ids) {
+ return bodySideAppointmentClient.changeState(ids);
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
index 6b2ba0f..a7ea97d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
@@ -3,6 +3,7 @@
import cn.hutool.crypto.SecureUtil;
import com.alibaba.nacos.common.utils.Md5Utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.City;
import com.dsh.course.feignClient.account.CityClient;
@@ -171,9 +172,11 @@
@RequestMapping(value = "/onChange")
@ResponseBody
public Object onChange(Integer oneId) {
+ if (oneId == null) return null;
try {
- TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
- return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
+ TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, oneId));
+ QueryWrapper<TCity> query = new QueryWrapper<TCity>().eq("parent_id", one.getId());
+ return cityService.list(query);
}catch (Exception e){
e.printStackTrace();
return ERROR;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
index 544365d..bf6aacd 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
@@ -24,6 +24,7 @@
import com.dsh.guns.modular.system.service.IRegionService;
import com.dsh.guns.modular.system.service.IStoreService;
import com.dsh.guns.modular.system.util.OBSUploadUtil;
+import com.dsh.guns.modular.system.util.ResultUtil;
import org.apache.commons.beanutils.ConvertUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -276,6 +277,7 @@
@RequestMapping(value = "/uploadPic")
@ResponseBody
public Object add(@RequestParam("file") MultipartFile imgFile) throws IOException {
+ if (imgFile != null){
String originalFilename = imgFile.getOriginalFilename();
String newName = originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf("."));
String url = OBSUploadUtil.inputStreamUpload(imgFile);
@@ -293,7 +295,9 @@
//文件大小(字节数)
map.put("size", imgFile.getSize() + "");
System.out.println(map);
- return url;
+ return url;
+ }
+ return ResultUtil.success();
}
/**
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageTypeController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageTypeController.java
new file mode 100644
index 0000000..dbdf8a6
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageTypeController.java
@@ -0,0 +1,127 @@
+package com.dsh.guns.modular.system.controller.code;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.CoachClient;
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.account.model.CoachType;
+import com.dsh.course.feignClient.course.CoursePackageClient;
+import com.dsh.course.feignClient.course.CoursePackageDiscountClient;
+import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient;
+import com.dsh.course.feignClient.course.CoursePackageTypeClient;
+import com.dsh.course.feignClient.course.model.*;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.util.ToolUtil;
+import com.dsh.guns.modular.system.model.TSite;
+import com.dsh.guns.modular.system.model.TStore;
+import com.dsh.guns.modular.system.service.ICoursePackageService;
+import com.dsh.guns.modular.system.service.IStoreService;
+import com.dsh.guns.modular.system.service.ITSiteService;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 11:50
+ */
+@Controller
+@RequestMapping("/coursePackageType")
+public class TCoursePackageTypeController extends BaseController {
+
+ private String PREFIX = "/system/coursePackageType/";
+
+ @Autowired
+ private ICoursePackageService coursePackageService;
+
+ @Resource
+ private CoursePackageTypeClient coursePackageTypeClient;
+
+ @Autowired
+ private IStoreService storeService;
+
+ @Resource
+ private CityManagerClient cityManagerClient;
+
+ @Autowired
+ private ITSiteService siteService;
+
+ @Resource
+ private CoachClient coachClient;
+
+ @Resource
+ private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient;
+
+ @Resource
+ private CoursePackageDiscountClient coursePackageDiscountClient;
+
+ @Resource
+ private CoursePackageClient coursePackageClient;
+
+ /**
+ * 跳转到列表页
+ * @param model
+ * @return
+ */
+ @GetMapping("")
+ public String openCoursePackageListPage(Model model){
+ Integer objectType = UserExt.getUser().getObjectType();
+ model.addAttribute("objectType", objectType);
+ return PREFIX + "CoursePackageType.html";
+ }
+
+ /**
+ * 获取课包类型列表
+ * @return
+ */
+ @RequestMapping("/list")
+ @ResponseBody
+ public List<TCoursePackageType> openAddCoursePackage(){
+
+ return coursePackageTypeClient.queryAllCoursePackageType();
+ }
+
+ /**
+ * 跳转到添加页
+ * @return
+ */
+ @RequestMapping("/add")
+ @ResponseBody
+ public Object openAddCoursePackageType(String name){
+ return coursePackageTypeClient.add(name);
+ }
+
+ /**
+ * 跳转到编辑页
+ * @param model
+ * @param id
+ * @return
+ */
+ /**
+ * 修改教练类型
+ */
+ @RequestMapping("/update")
+ @ResponseBody
+ public Object updateCoursePackageType(@RequestBody CoursePackageTypeVO vo) {
+ return coursePackageTypeClient.update(vo);
+ }
+ /**
+ * 删除课包类型--先判断当前课包类型有没有在被使用
+ * @return
+ */
+ @RequestMapping("/delete")
+ @ResponseBody
+ public Object deleteCoursePackageType(@RequestBody CoursePackageTypeVO vo){
+
+ return coursePackageTypeClient.delete(vo);
+ }
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index 6072d3d..7f09add 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -1,12 +1,24 @@
package com.dsh.guns.modular.system.controller.code;
+import java.math.BigDecimal;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.feignClient.account.CityClient;
+import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.StoreStaffClient;
import com.dsh.course.feignClient.account.model.CityListQuery;
+import com.dsh.course.feignClient.account.model.CityManager;
import com.dsh.course.feignClient.account.model.TCityManager;
import com.dsh.course.feignClient.competition.CompetitionClient;
+import com.dsh.course.feignClient.other.SiteClient;
+import com.dsh.course.feignClient.other.SiteLockClient;
+import com.dsh.course.feignClient.other.StoreClient;
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
+import com.dsh.course.feignClient.other.model.TSiteDTO;
+import com.dsh.course.feignClient.other.model.TSiteLockDTO;
import com.dsh.course.mapper.UserMapper;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
@@ -14,19 +26,21 @@
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.service.ICityService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.service.ITSiteService;
-import com.dsh.guns.modular.system.service.StoreConfigService;
+import com.dsh.guns.modular.system.service.*;
+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;
-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.lang.reflect.Type;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
import java.util.List;
/**
@@ -57,207 +71,455 @@
@Resource
private StoreConfigService storeConfigService;
+ @Resource
+ private ITSiteTypeService siteTypeService;
@Autowired
+ private CityManagerClient cityManagerClient;
+ @Resource
+ private SiteClient siteClient;
+ @Autowired
private ITSiteService siteService;
+ @Resource
+ private StoreClient storeClient;
+ @Autowired
+ private IRegionService regionService;
+ @Autowired
+ private SiteLockClient siteLockClient;
/**
- * 跳转到车辆管理首页
+ * 跳转到场地管理首页
*/
@RequestMapping("")
public String index(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ model.addAttribute("userType",objectType);
+ List<CityManager> province = cityManagerClient.listAll();
+ // 已有城市管理的省
+ ArrayList<String> list1 = new ArrayList<>();
+ // 已有城市管理的市
+ ArrayList<String> list2 = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ list1.add(cityManager.getProvince());
+ list2.add(cityManager.getCity());
+ }
+ HashSet<String> set = new HashSet<String>(list1);
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("list",list);
+ QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+ wrapper.eq("state",1);
+ List<TSiteType> siteType = siteTypeService.list(wrapper);
+ model.addAttribute("list",set);
+ model.addAttribute("siteType",siteType);
String roleid = UserExt.getUser().getRoleid();
- model.addAttribute("role",1);
+ model.addAttribute("role",roleid);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("type",1);
+ return PREFIX + "TSite.html";
+ }
+ /**
+ * 跳转到场地管理首页--查询场地有效期在两个月内的场地信息
+ */
+ @RequestMapping("/expireInsuranceEndTime")
+ public String expireInsuranceEndTime(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ model.addAttribute("userType",objectType);
+ List<CityManager> province = cityManagerClient.listAll();
+ // 已有城市管理的省
+ ArrayList<String> list1 = new ArrayList<>();
+ // 已有城市管理的市
+ ArrayList<String> list2 = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ list1.add(cityManager.getProvince());
+ list2.add(cityManager.getCity());
+ }
+ HashSet<String> set = new HashSet<String>(list1);
+ List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+ wrapper.eq("state",1);
+ List<TSiteType> siteType = siteTypeService.list(wrapper);
+ model.addAttribute("list",set);
+ model.addAttribute("siteType",siteType);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("type",2);
return PREFIX + "TSite.html";
}
/**
- * 跳转到添加车辆管理
+ * 上/下架 1为上架 2为下架 3为删除
+ *
+ * @return
*/
- @RequestMapping("/tShop_add")
- public String tCompetitionAdd(Model model) {
- List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("list",list);
- String roleid = UserExt.getUser().getRoleid();
- model.addAttribute("role",2);
- return PREFIX + "tShop_add.html";
+ @RequestMapping("/changeState")
+ @ResponseBody
+ public Object changeState(@RequestBody SiteChangeStateVO vo){
+ siteClient.changeState(vo);
+ return ResultUtil.success();
}
-
+ /**
+ * 添加锁定场地
+ *
+ * @return
+ */
+ @RequestMapping("/addSiteLock")
+ @ResponseBody
+ public Object addSiteLock(@RequestBody TSiteLockDTO dto){
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ try {
+ dto.setStartTime(simpleDateFormat.parse(dto.getSsTime()));
+ dto.setEndTime(simpleDateFormat.parse(dto.getEeTime()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ Object o = siteLockClient.addSiteLock(dto);
+ return ResultUtil.success(o);
+ }
/**
- * 跳转到修改车辆管理
+ * 删除锁定场地
+ *
+ * @return
*/
- @RequestMapping("/tShop_update/{id}")
- public String tCityUpdate(@PathVariable Integer id, Model model) {
- TStore byId = storeService.getById(id);
- model.addAttribute("item",byId);
- List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("list",list);
- TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
- List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
- CityListQuery cityListQuery = new CityListQuery();
- cityListQuery.setOffset(1);
- cityListQuery.setLimit(10000);
- cityListQuery.setCityCode(byId.getCityCode());
- Page<TCityManager> list2 = cityClient.list(cityListQuery);
- model.addAttribute("list1",list1);
- model.addAttribute("list2",list2.getRecords());
- String roleid = UserExt.getUser().getRoleid();
- model.addAttribute("role",2);
- model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime());
- User byId1 = userMapper.selectById(byId.getStoreStaffId());
- model.addAttribute("city",byId1);
- model.addAttribute("type",1);
- return PREFIX + "tShop_edit.html";
+ @RequestMapping("/deleteSiteLock/{id}")
+ @ResponseBody
+ public Object deleteSiteLock(@PathVariable("id") Integer id){
+ siteLockClient.deleteSiteLock(id);
+ return ResultUtil.success();
}
- @RequestMapping("/tShop_info/{id}")
- public String tCityInfo(@PathVariable Integer id, Model model) {
- TStore byId = storeService.getById(id);
- model.addAttribute("item",byId);
- List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
- model.addAttribute("list",list);
- TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
- List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
- CityListQuery cityListQuery = new CityListQuery();
- cityListQuery.setOffset(1);
- cityListQuery.setLimit(10000);
- cityListQuery.setCityCode(byId.getCityCode());
- Page<TCityManager> list2 = cityClient.list(cityListQuery);
- model.addAttribute("list1",list1);
- model.addAttribute("list2",list2.getRecords());
+
+ /**
+ * 根据场地id 获取锁定列表
+ *
+ * @return
+ */
+ @RequestMapping("/getSiteLockBySiteId/{id}")
+ @ResponseBody
+ public Object getSiteLockBySiteId(@PathVariable("id") Integer id){
+ return siteLockClient.getListById(id);
+ }
+ /**
+ * 跳转到场地管理编辑页面
+ */
+ @RequestMapping("/openEditTSite/{id}")
+ public String openEditTSite(Model model,@PathVariable("id") Integer id) {
+ List<CityManager> province = cityManagerClient.listAll();
+ // 已有城市管理的省
+ ArrayList<String> list1 = new ArrayList<>();
+ // 已有城市管理的市
+ for (CityManager cityManager : province) {
+ list1.add(cityManager.getProvince());
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ model.addAttribute("userType",objectType);
+ HashSet<String> set = new HashSet<String>(list1);
+ QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+ wrapper.eq("state",1);
+ List<TSiteType> siteType = siteTypeService.list(wrapper);
+ model.addAttribute("siteType",siteType);
+ model.addAttribute("province",set);
String roleid = UserExt.getUser().getRoleid();
model.addAttribute("role",roleid);
- model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime());
- User byId1 = userMapper.selectById(byId.getStoreStaffId());
- model.addAttribute("city",byId1);
+ TSite site = siteService.getOne(new QueryWrapper<TSite>().eq("id", id));
+ List<CityManager> city = cityManagerClient.getAccount(site.getCity());
+ List<CityManager> city1 = cityManagerClient.getCity(site.getProvince());
+ ArrayList<String> strings = new ArrayList<>();
+ for (CityManager cityManager : city) {
+ strings.add(cityManager.getCity());
+ }
+ HashSet<String> set1 = new HashSet<String>(strings);
+ List<Store> stores = new ArrayList<>();
+ if (objectType ==2 ){
+ stores= storeClient.getStoreByCityManagerId(objectId);
+ }else if(objectType == 3){
+ stores= storeClient.getStoreByStoreStaffId(objectId);;
+ }else{
+ stores = storeClient.getStore(site.getCity());
+ }
+ List<CityManager> accounts = cityManagerClient.getAccount(site.getCity());
+ model.addAttribute("list",site);
+ Date insuranceEndTime = site.getInsuranceEndTime();
+ String format = new SimpleDateFormat("yyyy-MM-dd").format(insuranceEndTime);
+ model.addAttribute("accounts",accounts);
+ model.addAttribute("time",format);
+ model.addAttribute("city",set1);
+ model.addAttribute("city1",city1);
+ model.addAttribute("type",1);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("stores",stores);
+ return PREFIX + "TSite_edit.html";
+ }
+
+ /**
+ * 跳转到场地锁定页面
+ */
+ @RequestMapping("/lockSite/{id}")
+ public String lockSite(Model model,@PathVariable("id") Integer id) {
+ DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
+ List<TSiteLockDTO> listById = siteLockClient.getListById(id);
+ for (TSiteLockDTO tSiteLockDTO : listById) {
+ tSiteLockDTO.setSsTime(dateformat.format(tSiteLockDTO.getStartTime()));
+ tSiteLockDTO.setEeTime(dateformat.format(tSiteLockDTO.getEndTime()));
+ }
+ model.addAttribute("id",id);
+ model.addAttribute("list",listById);
+ return PREFIX + "TSite_lock.html";
+ }
+ /**
+ * 跳转到场地管理详情页面
+ */
+ @RequestMapping("/openInfoTSite/{id}")
+ public String openInfoTSite(Model model,@PathVariable("id") Integer id) {
+ List<CityManager> province = cityManagerClient.listAll();
+ // 已有城市管理的省
+ ArrayList<String> list1 = new ArrayList<>();
+ // 已有城市管理的市
+ for (CityManager cityManager : province) {
+ list1.add(cityManager.getProvince());
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ model.addAttribute("userType",objectType);
+ HashSet<String> set = new HashSet<String>(list1);
+ QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+ wrapper.eq("state",1);
+ List<TSiteType> siteType = siteTypeService.list(wrapper);
+ model.addAttribute("siteType",siteType);
+ model.addAttribute("province",set);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ TSite site = siteService.getOne(new QueryWrapper<TSite>().eq("id", id));
+ List<CityManager> city = cityManagerClient.getAccount(site.getCity());
+ List<CityManager> city1 = cityManagerClient.getCity(site.getProvince());
+ ArrayList<String> strings = new ArrayList<>();
+ for (CityManager cityManager : city) {
+ strings.add(cityManager.getCity());
+ }
+ HashSet<String> set1 = new HashSet<String>(strings);
+ List<Store> stores = new ArrayList<>();
+ if (objectType ==2 ){
+ stores= storeClient.getStoreByCityManagerId(objectId);
+ }else if(objectType == 3){
+ stores= storeClient.getStoreByStoreStaffId(objectId);;
+ }else{
+ stores = storeClient.getStore(site.getCity());
+ }
+ List<CityManager> accounts = cityManagerClient.getAccount(site.getCity());
+ model.addAttribute("list",site);
+ Date insuranceEndTime = site.getInsuranceEndTime();
+ String format = new SimpleDateFormat("yyyy-MM-dd").format(insuranceEndTime);
+ model.addAttribute("accounts",accounts);
+ model.addAttribute("time",format);
+ model.addAttribute("city",set1);
+ model.addAttribute("city1",city1);
model.addAttribute("type",0);
- return PREFIX + "tShop_edit.html";
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("stores",stores);
+ return PREFIX + "TSite_edit.html";
}
- @RequestMapping("/tShop_gift/{id}")
- public String tCityGift(@PathVariable Integer id, Model model) {
- TStore byId = storeService.getById(id);
- model.addAttribute("welfarePicture",byId.getWelfarePicture());
- model.addAttribute("id",id);
- return PREFIX + "tShop_img.html";
- }
- @RequestMapping("/tShop_indexSet/{id}")
- public String tCityIndexSet(@PathVariable Integer id, Model model) {
- StoreConfig c1 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,1));
- model.addAttribute("c1",c1);
- StoreConfig c2 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,2));
- model.addAttribute("c2",c2);
- StoreConfig c3 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,3));
- model.addAttribute("c3",c3);
- StoreConfig c4 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,4));
- model.addAttribute("c4",c4);
- StoreConfig c5 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,5));
- model.addAttribute("c5",c5);
- StoreConfig c6 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,6));
- model.addAttribute("c6",c6);
- StoreConfig c7 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,7));
- model.addAttribute("c7",c7);
- StoreConfig c8 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,8));
- model.addAttribute("c8",c8);
- model.addAttribute("id",id);
- return PREFIX + "tShop_imgAll.html";
- }
-
-
- @RequestMapping(value = "/list")
+ /**
+ * 根据所选门店 获取经营时间
+ */
@ResponseBody
- public Object list(String provinceCode, String cityCode , String name, String phone,String shopName) {
- Page<TStoreListVo> page = new PageFactory<TStoreListVo>().defaultPage();
- List<TStoreListVo> list = storeService.listAll(page,provinceCode,cityCode,name,phone,shopName);
- for (TStoreListVo tStoreListVo : list) {
- TCityManager byId = cityClient.getById(tStoreListVo.getCityManagerId());
- tStoreListVo.setAccount(byId.getName()+"-"+byId.getPhone());
-
- }
- page.setRecords(list);
- return super.packForBT(page);
+ @GetMapping("/getTime/{oneId}")
+ public Store getTime(@PathVariable("oneId") String oneId) {
+ return storeClient.getTime(oneId);
}
-
- @RequestMapping(value = "/add")
+ /**
+ * 场地管理首页 选择省 返回市
+ */
@ResponseBody
- public Object list(TStore tStore,String time,String userName,String userPhone) {
- try {
- if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
- TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode()));
- tStore.setProvince(one.getName());
- TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode()));
- tStore.setCity(one1.getName());
- }
- tStore.setStartTime(time.split(" - ")[0]);
- tStore.setEndTime(time.split(" - ")[1]);
- tStore.setState(1);
- User user = new User();
- List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone));
- if(users.size()>0){
- return "5001";
- }
- user.setAccount(userPhone);
- user.setName(userName);
- user.setRoleid("2");
- user.setPhone(userPhone);
- user.setPassword(SecureUtil.md5("a123456"));
- userMapper.insert(user);
- tStore.setStoreStaffId(user.getId());
- storeService.save(tStore);
-
- ArrayList<StoreConfig> storeConfigs = new ArrayList<>();
- for (int i = 1; i < 9; i++) {
- StoreConfig storeConfig = new StoreConfig();
- storeConfig.setIsOpen(1);
- storeConfig.setSort(i);
- storeConfig.setType(i);
- storeConfig.setStoreId(tStore.getId());
- storeConfigs.add(storeConfig);
- }
- storeConfigService.saveBatch(storeConfigs);
- return new SuccessTip<>();
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
+ @RequestMapping(value = "/getChange")
+ public List<Region> getChange(String province) {
+ Region name = regionService.getOne(new QueryWrapper<Region>().eq("name", province));
+ return regionService.list(new QueryWrapper<Region>().eq("parent_id", name.getId()));
}
-
- @RequestMapping(value = "/update")
+ /**
+ * 添加场地管理
+ */
@ResponseBody
- public Object update(TStore tStore,String time,String userName,String userPhone) {
- try {
- TStore byId = storeService.getById(tStore.getId());
-
- if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) {
- TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode()));
- tStore.setProvince(one.getName());
- TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode()));
- tStore.setCity(one1.getName());
- }
- tStore.setStartTime(time.split(" - ")[0]);
- tStore.setEndTime(time.split(" - ")[1]);
- if(ToolUtil.isEmpty(tStore.getCoverDrawing())){
- tStore.setCoverDrawing(byId.getCoverDrawing());
- }
- User user = userMapper.selectById(byId.getStoreStaffId());
- List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone).ne(User::getId,tStore.getStoreStaffId()));
- if(users.size()>0){
- return "5001";
- }
- user.setAccount(userPhone);
- user.setName(userName);
- user.setPhone(userPhone);
- userMapper.updateById(user);
- storeService.updateById(tStore);
- return new SuccessTip<>();
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
+ @RequestMapping(value = "/addSite")
+ public ResultUtil addSite(@RequestBody Site site) {
+ Store store = storeClient.getStoreById(site.getStoreId());
+ String province = store.getProvince();
+ String provinceCode = store.getProvinceCode();
+ String city = store.getCity();
+ String cityCode = store.getCityCode();
+ Integer cityManagerId = store.getCityManagerId();
+ site.setProvince(province);
+ site.setProvinceCode(provinceCode);
+ site.setCity(city);
+ site.setCityCode(cityCode);
+ site.setCityManagerId(cityManagerId);
+ site.setInsertTime(new Date());
+ site.setState(1);
+ siteClient.addSite(site);
+ return ResultUtil.success("添加成功");
}
+ /**
+ * 编辑场地管理
+ */
+ @ResponseBody
+ @RequestMapping(value = "/updateSite")
+ public ResultUtil updateSite(@RequestBody Site site) {
+ if(site.getInsuranceImg().equals("")){
+ site.setInsuranceImg(null);
+ }
+ Store store = storeClient.getStoreById(site.getStoreId());
+
+ String province = store.getProvince();
+ String provinceCode = store.getProvinceCode();
+ String city = store.getCity();
+ String cityCode = store.getCityCode();
+ Integer cityManagerId = store.getCityManagerId();
+
+ site.setProvince(province);
+ site.setProvinceCode(provinceCode);
+ site.setCity(city);
+ site.setCityCode(cityCode);
+ site.setCityManagerId(cityManagerId);
+
+ site.setInsertTime(new Date());
+ site.setState(1);
+ siteClient.addSite(site);
+ return ResultUtil.success();
+ }
+ /**
+ * 场地管理添加页面选择省 展示市
+ */
+ @RequestMapping(value = "/getCity")
+ @ResponseBody
+ public List<CityManager> getCity(String province) {
+
+ return cityManagerClient.getCity(province);
+ }
+ /**
+ * 查询场地管理列表
+ */
+ @RequestMapping(value= "/listAll")
+ @ResponseBody
+ public List<TSiteDTO> listAll(String province,String city,String storeName,Integer siteTypeId,String name) {
+ // 对象类型
+ Integer type = UserExt.getUser().getObjectType();
+ // 对象类型Id
+ Integer objectId = UserExt.getUser().getObjectId();
+ SiteSearchVO vo = new SiteSearchVO();
+ vo.setProvince(province);
+ vo.setCity(city);
+ vo.setStoreName(storeName);
+ vo.setSiteTypeId(siteTypeId);
+ vo.setName(name);
+ vo.setObjectType(type);
+ vo.setObjectId(objectId);
+ return siteClient.listAll(vo);
+ }
+ /**
+ * 查询场地管理列表
+ */
+ @RequestMapping(value= "/listExipre")
+ @ResponseBody
+ public List<TSiteDTO> listExipre(String province,String city,String storeName,Integer siteTypeId,String name) {
+ // 对象类型
+ Integer type = UserExt.getUser().getObjectType();
+ // 对象类型Id
+ Integer objectId = UserExt.getUser().getObjectId();
+ ExpireSiteSearchVO vo = new ExpireSiteSearchVO();
+ vo.setProvince(province);
+ vo.setCity(city);
+ vo.setStoreName(storeName);
+ vo.setSiteTypeId(siteTypeId);
+ vo.setName(name);
+ vo.setObjectType(type);
+ vo.setObjectId(objectId);
+ return siteClient.listExipre(vo);
+ }
+
+ /**
+ * 跳转到添加场地管理
+ */
+ @RequestMapping("/add")
+ public String tCompetitionAdd(Model model) {
+ List<CityManager> province = cityManagerClient.listAll();
+ // 已有城市管理的省
+ ArrayList<String> list1 = new ArrayList<>();
+ // 已有城市管理的市
+ ArrayList<String> list2 = new ArrayList<>();
+ for (CityManager cityManager : province) {
+ list1.add(cityManager.getProvince());
+ list2.add(cityManager.getCity());
+ }
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ List<Store> stores = new ArrayList<>();
+ if (objectType ==2 ){
+ stores= storeClient.getStoreByCityManagerId(objectId);
+ }else if(objectType == 3){
+ stores= storeClient.getStoreByStoreStaffId(objectId);;
+ }
+ model.addAttribute("userType",objectType);
+ HashSet<String> set = new HashSet<String>(list1);
+ QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+ wrapper.eq("state",1);
+ List<TSiteType> siteType = siteTypeService.list(wrapper);
+ model.addAttribute("siteType",siteType);
+ model.addAttribute("province",set);
+ model.addAttribute("city",list2);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+ model.addAttribute("objectType",objectType);
+ model.addAttribute("objectId",objectId);
+ model.addAttribute("stores",stores);
+ return PREFIX + "tSite_add.html";
+ }
+
+// /**
+// * 跳转到场地管理页面
+// */
+// @RequestMapping("/add")
+// public String tCompetitionAdd(Model model) {
+// List<CityManager> province = cityManagerClient.listAll();
+// // 已有城市管理的省
+// ArrayList<String> list1 = new ArrayList<>();
+// // 已有城市管理的市
+// ArrayList<String> list2 = new ArrayList<>();
+// for (CityManager cityManager : province) {
+// list1.add(cityManager.getProvince());
+// list2.add(cityManager.getCity());
+// }
+// Integer objectType = UserExt.getUser().getObjectType();
+// Integer objectId = UserExt.getUser().getObjectId();
+// List<Store> stores = new ArrayList<>();
+// if (objectType ==2 ){
+// stores= storeClient.getStoreByCityManagerId(objectId);
+// }else if(objectType == 3){
+// stores= storeClient.getStoreByStoreStaffId(objectId);;
+// }
+// model.addAttribute("userType",objectType);
+// HashSet<String> set = new HashSet<String>(list1);
+// QueryWrapper<TSiteType> wrapper = new QueryWrapper<>();
+// wrapper.eq("state",1);
+// List<TSiteType> siteType = siteTypeService.list(wrapper);
+// model.addAttribute("siteType",siteType);
+// model.addAttribute("province",set);
+// model.addAttribute("city",list2);
+// String roleid = UserExt.getUser().getRoleid();
+// model.addAttribute("role",roleid);
+// model.addAttribute("objectType",objectType);
+// model.addAttribute("objectId",objectId);
+// model.addAttribute("stores",stores);
+// return PREFIX + "tSite_add.html";
+// }
+
+
@RequestMapping(value = "/onChange")
@ResponseBody
public Object onChange(Integer oneId) {
@@ -269,66 +531,25 @@
return ERROR;
}
}
- @RequestMapping(value = "/saveImgAll")
+
+ // 选择市后 获取对应账号
+ @RequestMapping(value = "/accountChangeNext")
@ResponseBody
- public Object saveImgAll(Integer id,Integer px1,Integer px2,Integer px3,Integer px4,Integer px5,Integer px6,Integer px7,Integer px8,
- String c1,String c2,String c3,String c4,String c5,String c6,String c7,String c8,
- Integer r1,Integer r2,Integer r3,Integer r4,Integer r5,Integer r6,Integer r7,Integer r8) {
- try {
- ArrayList<StoreConfig> storeConfigs = new ArrayList<>();
- StoreConfig collect1 = collect(id, px1, r1, c1, 1);
- StoreConfig collect2 = collect(id, px2, r2, c2, 2);
- StoreConfig collect3 = collect(id, px3, r3, c3, 3);
- StoreConfig collect4 = collect(id, px4, r4, c4, 4);
- StoreConfig collect5 = collect(id, px5, r5, c5, 5);
- StoreConfig collect6 = collect(id, px6, r6, c6, 6);
- StoreConfig collect7 = collect(id, px7, r7, c7, 7);
- StoreConfig collect8 = collect(id, px8, r8, c8, 8);
- storeConfigs.add(collect1);
- storeConfigs.add(collect2);
- storeConfigs.add(collect3);
- storeConfigs.add(collect4);
- storeConfigs.add(collect5);
- storeConfigs.add(collect6);
- storeConfigs.add(collect7);
- storeConfigs.add(collect8);
- storeConfigService.updateBatchById(storeConfigs);
- return new SuccessTip<>();
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
+ public Object accountChangeNext(String oneId) {
+
+ return cityManagerClient.getAccount(oneId);
}
- private StoreConfig collect(Integer id,Integer sort,Integer isOpen,String img,int type){
- StoreConfig one = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType, type));
- one.setSort(sort);
- one.setIsOpen(isOpen);
- if(ToolUtil.isNotEmpty(img)){
- one.setBackgroundImage(img);
- }
- return one;
- }
- @RequestMapping(value = "/oneChangeNext")
+ // 选择市后 获取对应门店
+ @RequestMapping(value = "/storeChangeNext")
@ResponseBody
- public Object oneChangeNext(String oneId) {
-
- try {
- CityListQuery cityListQuery = new CityListQuery();
- cityListQuery.setCityCode(oneId);
- cityListQuery.setOffset(1);
- cityListQuery.setLimit(100000);
- Page<TCityManager> list = cityClient.list(cityListQuery);
- List<TCityManager> records = list.getRecords();
- for (TCityManager record : records) {
- record.setName(record.getName()+"-"+record.getPhone());
- }
- return records;
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
+ public Object storeChangeNext(String oneId) {
+ if (oneId.equals("")){
+ return null;
}
+ return storeClient.getStore(oneId);
}
+
@RequestMapping(value = "/cancel")
@@ -355,50 +576,4 @@
return ERROR;
}
}
-
- @RequestMapping(value = "/freeze")
- @ResponseBody
- public Object freeze(Integer id) {
- try {
- TStore byId = storeService.getById(id);
- byId.setState(2);
- storeService.updateById(byId);
- return SUCCESS_TIP;
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
- }
- @RequestMapping(value = "/unfreeze")
- @ResponseBody
- public Object unfreeze(Integer id) {
- try {
- TStore byId = storeService.getById(id);
- byId.setState(1);
- storeService.updateById(byId);
- return SUCCESS_TIP;
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
- }
-
- @RequestMapping(value = "/pwd")
- @ResponseBody
- public Object pwd(Integer id) {
- try {
- TStore byId = storeService.getById(id);
- User user = userMapper.selectById(byId.getStoreStaffId());
- user.setPassword(SecureUtil.md5("a123456"));
- userMapper.updateById(user);
- return SUCCESS_TIP;
- }catch (Exception e){
- e.printStackTrace();
- return ERROR;
- }
- }
-
-
-
-
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
index c26172d..a0b3d26 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
@@ -1,28 +1,237 @@
package com.dsh.guns.modular.system.controller.code;
+import com.dsh.course.feignClient.activity.BenefitsVideoClient;
+import com.dsh.course.feignClient.activity.model.BenefitsVedioChangeStateVO;
+import com.dsh.course.feignClient.activity.model.BenefitsVideoClassification;
+import com.dsh.course.feignClient.activity.model.BenefitsVideos;
+import com.dsh.course.feignClient.activity.model.QueryBenefitsVedioVO;
+import com.dsh.course.feignClient.course.CourseClient;
+import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.TCourse;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVO;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVideosDTO;
+import com.dsh.guns.modular.system.model.TQueryBenefitsVideosVO;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.BeanUtils;
+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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
* 福利视频分类 控制器
*/
@Controller
-@RequestMapping("/tWelfareVideo")
+@RequestMapping("/benefits")
public class TWelfareVideoController {
-
- private String PREFIX = "/system/tWelfareVideo/";
-
+ private String PREFIX = "/system/benefits/";
+ @Autowired
+ private BenefitsVideoClient benefitsVideoClient;
+ @Autowired
+ private CourseClient courseClient;
/**
- * 优惠券审核列表页
+ * 跳转福利视频分类首页
*/
@RequestMapping("")
+
public String index(Model model) {
- return PREFIX + "TWelfareVideo.html";
+ return PREFIX + "TBenefits.html";
+ }
+
+ /**
+ * 跳转福利视频分类添加页面
+ */
+ @RequestMapping("/add")
+
+ public String add(Model model) {
+ return PREFIX + "TBenefits_add.html";
+ }
+
+ /**
+ * 跳转福利视频分类编辑页面--查看详情
+ */
+ @RequestMapping("/info/{id}")
+ public String info(Model model, @PathVariable("id") Integer id) {
+ BenefitsVideoClassification data = benefitsVideoClient.getById(id);
+ model.addAttribute("data",data);
+ model.addAttribute("type",1);
+ return PREFIX + "TBenefits_edit.html";
+ }
+ /**
+ * 跳转福利视频分类编辑页面
+ */
+ @RequestMapping("/update/{id}")
+ public String update(Model model, @PathVariable("id") Integer id) {
+ BenefitsVideoClassification data = benefitsVideoClient.getById(id);
+ model.addAttribute("data",data);
+ model.addAttribute("type",0);
+ return PREFIX + "TBenefits_edit.html";
+ }
+ /**
+ * 跳转视频详情页面
+ */
+ @RequestMapping("/getBenefitsVideos/{courseId}")
+ public String getBenefitsVideos(Model model, @PathVariable("courseId") Integer id) {
+ model.addAttribute("id",id);
+ return PREFIX + "TBenefitsVideos.html";
+ }
+ /**
+ * 跳转视频详情添加页面
+ * @param id 福利视频分类id
+ */
+ @RequestMapping("/addBenefitsVideos/{id}")
+ public String addBenefitsVideos(Model model,@PathVariable("id")Integer id) {
+ model.addAttribute("id",id);
+ List<BenefitsVideos> benefitVideoById = benefitsVideoClient.getBenefitVideoById(id);
+// // 所选福利视频分类下的视频的courseId集合
+// List<Integer> list = new ArrayList<>();
+// for (BenefitsVideos benefitsVideos : benefitVideoById) {
+// list.add(benefitsVideos.getCourseId());
+// }
+ TQueryBenefitsVideosDTO dto = new TQueryBenefitsVideosDTO();
+// dto.setCoursIds(list);
+ List<TQueryBenefitsVideosVO> courseByCourseIds = courseClient.getCourseByCourseIds(dto);
+ List<TQueryBenefitsVideosVO> tQueryBenefitsVideosVOS = new ArrayList<>();
+ for (TQueryBenefitsVideosVO courseByCourseId : courseByCourseIds) {
+ if (courseByCourseId.getType()!=1){
+ tQueryBenefitsVideosVOS.add(courseByCourseId);
+ }
+ }
+ model.addAttribute("data",tQueryBenefitsVideosVOS);
+ return PREFIX + "TBenefitsVideos_add.html";
+ }
+
+ /**
+ * 跳转视频详情编辑页面
+ */
+ @RequestMapping("/infoBenefitsVideos/{id}/{type}/{benefitsVideosId}")
+ public String infoBenefitsVideos(Model model, @PathVariable("id") Integer id,@PathVariable("type") Integer type,@PathVariable("benefitsVideosId") Integer benefitsVideosId) {
+ TQueryBenefitsVideosVO tQueryBenefitsVideosVO = new TQueryBenefitsVideosVO();
+ BenefitsVideos benefitVideosById = benefitsVideoClient.getBenefitVideosById(benefitsVideosId);
+ TCourse tCourse = courseClient.queryCourseById(id);
+ BeanUtils.copyProperties(tCourse,tQueryBenefitsVideosVO);
+ tQueryBenefitsVideosVO.setIntegral(benefitVideosById.getIntegral());
+ tQueryBenefitsVideosVO.setBenefitsVideosId(benefitVideosById.getId());
+ model.addAttribute("data",tQueryBenefitsVideosVO);
+ model.addAttribute("type",type);
+ return PREFIX + "TBenefitsVideos_edit.html";
+ }
+
+ /**
+ * 根据所选视频 获取视频封面用于前端显示
+ */
+ @RequestMapping("/getCoverDrawing/{id}")
+ @ResponseBody
+ public TCourse infoBenefitsVideos( @PathVariable("id") Integer id) {
+ TCourse tCourse = courseClient.queryCourseById(id);
+ return tCourse;
}
+ /**
+ * 查询福利视频分类列表
+ */
+ @RequestMapping(value= "/list")
+ @ResponseBody
+ public List<TQueryBenefitsVO> listAll(String name, Integer position) {
+ // 对象类型
+ Integer type = UserExt.getUser().getObjectType();
+ // 对象类型Id
+ Integer objectId = UserExt.getUser().getObjectId();
+ QueryBenefitsVedioVO vo = new QueryBenefitsVedioVO();
+ vo.setName(name);
+ vo.setPosition(position);
+ return benefitsVideoClient.listAll(vo);
+ }
+
+ /**
+ * 查询视频详情列表
+ */
+ @RequestMapping(value= "/listBenefitsVideos/{id}")
+ @ResponseBody
+ public List<TQueryBenefitsVideosVO> listBenefitsVideos(@PathVariable("id")Integer bId, String name, Integer type, Integer state) {
+ TQueryBenefitsVideosDTO vo = new TQueryBenefitsVideosDTO();
+ List<BenefitsVideos> benefitVideoById = benefitsVideoClient.getBenefitVideoById(bId);
+ vo.setCoursIds(new ArrayList<>());
+ for (BenefitsVideos benefitsVideos : benefitVideoById) {
+ // 获取课程id集合
+ vo.getCoursIds().add(benefitsVideos.getCourseId());
+ }
+ if (benefitVideoById.size()==0){
+ return new ArrayList<>();
+ }
+ vo.setName(name);
+ vo.setType(type);
+ vo.setState(state);
+ List<TQueryBenefitsVideosVO> courseByCourseIds = courseClient.getCourseByCourseIds(vo);
+ for (BenefitsVideos benefitsVideos : benefitVideoById) {
+ for (TQueryBenefitsVideosVO courseByCourseId : courseByCourseIds) {
+ if (benefitsVideos.getCourseId() == courseByCourseId.getId()){
+ courseByCourseId.setIntegral(benefitsVideos.getIntegral());
+ courseByCourseId.setBenefitsVideosId(benefitsVideos.getId());
+ }
+ }
+ }
+ return courseByCourseIds;
+ }
+ /**
+ * 添加福利视频分类
+ */
+ @RequestMapping(value= "/addBenefits")
+ @ResponseBody
+ public Object addBenefits(@RequestBody BenefitsVideoClassification bvcf) {
+ bvcf.setState(1);
+ bvcf.setInsertTime(new Date());
+ return benefitsVideoClient.addSite(bvcf);
+ }
+
+ /**
+ * 添加视频详情
+ */
+ @RequestMapping(value= "/addBenefitsVideos")
+ @ResponseBody
+ public Object addBenefitsVideos(@RequestBody BenefitsVideos bvcf) {
+ if (bvcf.getId()!=null){
+ return benefitsVideoClient.addBenefitsVideos(bvcf);
+ }else {
+ bvcf.setState(1);
+ bvcf.setInsertTime(new Date());
+ return benefitsVideoClient.addBenefitsVideos(bvcf);
+ }
+ }
+
+ /**
+ * 福利视频分类上/下架 1为上架 2为下架 3为删除
+ *
+ * @return
+ */
+ @RequestMapping("/changeState")
+ @ResponseBody
+ public Object changeState(@RequestBody BenefitsVedioChangeStateVO vo){
+ benefitsVideoClient.changeState(vo);
+ return ResultUtil.success();
+ }
+
+ /**
+ * 视频详情上/下架 1为上架 2为下架 3为删除
+ *
+ * @return
+ */
+ @RequestMapping("/changeCourseState")
+ @ResponseBody
+ public Object changeCourseState(@RequestBody CourseChangeStateDTO dto){
+ courseClient.changeState(dto);
+ return ResultUtil.success();
+ }
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
index d1998b7..4ff330d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -101,6 +101,8 @@
User byId = userService.getById(user.getId());
//获取用户头像 Obtain user profile
String avatar = byId.getAvatar();
+ Integer objectType = user.getObjectType();
+
model.addAttribute("roleNames", role.getName());
model.addAttribute("language", language);
model.addAttribute("avatar", avatar);
@@ -113,8 +115,9 @@
return "/index.html";
}
+
/**
- * 跳转到登录页面
+ * 跳转到场地管理页面
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
@@ -124,7 +127,6 @@
return "/login.html" ;
}
}
-
/**
* 点击登录执行的动作
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java
index 4036e64..9824b5b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/UploadUtil.java
@@ -140,6 +140,7 @@
return pictureName;
}
+
/**
* UEditor编辑器上传图片
*/
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java
index 71aa0f5..dcf351f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/enums/RuleStatusEnum.java
@@ -8,7 +8,6 @@
* @Date 2023/02/15 9:42
*/
public enum RuleStatusEnum {
-
NOT_START(1, "未开始"),
STARTED(2, "已开始"),
ENDED(3, "已结束"),
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachChangeStateVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachChangeStateVO.java
new file mode 100644
index 0000000..013c719
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachChangeStateVO.java
@@ -0,0 +1,11 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CoachChangeStateVO {
+ private List<Integer> ids;
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java
new file mode 100644
index 0000000..17f55b5
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java
@@ -0,0 +1,13 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+@Data
+public class CoachQuery {
+ private String province;
+ private String city;
+ private String name;
+ private String phone;
+ // 编辑页面回显使用
+ private Integer id;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/ExpireSiteSearchVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/ExpireSiteSearchVO.java
new file mode 100644
index 0000000..631c990
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/ExpireSiteSearchVO.java
@@ -0,0 +1,40 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+@Data
+public class ExpireSiteSearchVO {
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 门店名称
+ */
+ private String storeName;
+
+ /**
+ * 场地类型
+ */
+ private Integer siteTypeId;
+
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 对象类型(1=平台,2=城市管理员,3=门店)
+ */
+ private Integer objectType;
+
+ private Integer objectId;
+
+ // 登陆人类型
+ private Integer typeId ;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteSearchVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteSearchVO.java
new file mode 100644
index 0000000..9585780
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteSearchVO.java
@@ -0,0 +1,37 @@
+package com.dsh.guns.modular.system.model;
+
+
+import lombok.Data;
+
+@Data
+public class SiteSearchVO {
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 门店名称
+ */
+ private String storeName;
+
+ /**
+ * 场地类型
+ */
+ private Integer siteTypeId;
+
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 对象类型(1=平台,2=城市管理员,3=门店)
+ */
+ private Integer objectType;
+
+ private Integer objectId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Store.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Store.java
new file mode 100644
index 0000000..7ecadfa
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Store.java
@@ -0,0 +1,139 @@
+package com.dsh.guns.modular.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 门店信息
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_store")
+public class Store extends Model<Store> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 门店名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 门店店长id
+ */
+ @TableField("storeStaffId")
+ private Integer storeStaffId;
+ /**
+ * 城市管理员id
+ */
+ @TableField("cityManagerId")
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 联系电话
+ */
+ @TableField("phone")
+ private String phone;
+ /**
+ * 详细地址
+ */
+ @TableField("address")
+ private String address;
+ /**
+ * 纬度
+ */
+ @TableField("lat")
+ private String lat;
+ /**
+ * 经度
+ */
+ @TableField("lon")
+ private String lon;
+ /**
+ * 营业开始时间
+ */
+ @TableField("startTime")
+ private String startTime;
+ /**
+ * 营业结束时间
+ */
+ @TableField("endTime")
+ private String endTime;
+ /**
+ * 封面图
+ */
+ @TableField("coverDrawing")
+ private String coverDrawing;
+ /**
+ * 实景图
+ */
+ @TableField("realPicture")
+ private String realPicture;
+ /**
+ * 门店介绍
+ */
+ @TableField("introduce")
+ private String introduce;
+ /**
+ * 福利图片
+ */
+ @TableField("welfarePicture")
+ private String welfarePicture;
+ /**
+ * 评分
+ */
+ @TableField("score")
+ private BigDecimal score;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVO.java
new file mode 100644
index 0000000..7228cfb
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVO.java
@@ -0,0 +1,18 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+/**
+ * 福利视频分类列表查询返回VO
+ */
+@Data
+public class TQueryBenefitsVO {
+ private Integer id;
+ private String name;
+ // 位置(1=线上课得积分,2=看视频得奖励)
+ private Integer position;
+ private Integer sort;
+ private Integer count;
+ private Integer state;
+ private Integer courseId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosDTO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosDTO.java
new file mode 100644
index 0000000..0f5664b
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosDTO.java
@@ -0,0 +1,20 @@
+package com.dsh.guns.modular.system.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 接收视频详情列表查询参数DTO
+ */
+@Data
+public class TQueryBenefitsVideosDTO {
+ // 课程id
+ private List<Integer> coursIds;
+ // 视频名称
+ private String name;
+ // 视频类型
+ private Integer type;
+ // 1上架 2下架 3已失效
+ private Integer state;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosVO.java
new file mode 100644
index 0000000..293498f
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TQueryBenefitsVideosVO.java
@@ -0,0 +1,26 @@
+package com.dsh.guns.modular.system.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 视频详情列表查询返回VO
+ */
+@Data
+public class TQueryBenefitsVideosVO {
+ private Integer id;
+ private String name;
+ private String introduce;
+ private String coverDrawing;
+ private String introductionDrawing;
+ private String courseVideo;
+ private Integer state;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+ private Integer integral;
+ private Integer type;
+ private Integer benefitsVideosId;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java
index 74fcdef..8e9fd3f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TSite.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -84,6 +85,7 @@
* 场地责任险有效期
*/
@TableField("insuranceEndTime")
+ @JsonFormat(pattern = "yyyy-MM-dd")
private Date insuranceEndTime;
/**
* 场地责任险图片
@@ -104,5 +106,6 @@
* 添加时间
*/
@TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date insertTime;
}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
index c715826..b5425c9 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html
@@ -32,9 +32,9 @@
</nav>-->
<button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i>
</button>
+
<div class="btn-group roll-nav roll-right">
<button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span>
-
</button>
<ul role="menu" class="dropdown-menu dropdown-menu-right">
<li class="J_tabShowActive"><a>定位当前选项卡</a>
@@ -55,4 +55,21 @@
<div class="pull-right">© 2019-2023 <a href="#" onclick="return false" target="_blank">玩湃</a>
</div>
</div>
-</div>
\ No newline at end of file
+</div>
+<script src="${ctxPath}/js/common/Feng.js"></script>
+<script type="text/javascript">
+ function getSite(){
+ // var ajax = new $ax(Feng.ctxPath + "/tSite/expireInsuranceEndTime", function(data){
+ // });
+ // ajax.start();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/expireInsuranceEndTime",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function(response) {
+ },
+ error: function(xhr, status, error) {
+ }
+ });
+ }
+</script>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits.html
new file mode 100644
index 0000000..8535db1
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits.html
@@ -0,0 +1,71 @@
+@layout("/common/_container.html"){
+<style>
+ .data-item {
+ position: relative;
+ border: 1px solid #ccc;
+ padding: 10px;
+ margin-bottom: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ max-width: 200px;
+ margin-right: 10px;
+ }
+
+ .delete-button {
+ position: absolute;
+ top: -10px;
+ right: -10px;
+ cursor: pointer;
+ color: black;
+ width: 20px;
+ height: 20px;
+ text-align: center;
+ line-height: 20px;
+ border-radius: 50%;
+ }
+</style>
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>视频分类管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <#NameCon id="name" name="分类名称" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="position" name="所在位置" >
+ <option value="">全部</option>
+ <option value="1">线上课得积分</option>
+ <option value="2">看视频得奖励</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TQuestion.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TQuestion.resetSearch()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TCouponTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TQuestion.openAdd()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+ <#button name="删除" icon="fa-remove" clickFun="TQuestion.delete()" space="true"/>
+ <#button name="上架" icon="fa-check" clickFun="TQuestion.onShelf()" space="true"/>
+ <#button name="下架" icon="fa-remove" clickFun="TQuestion.offShelf()" space="true"/>
+ <#button name="查看详情" icon="fa-search" clickFun="TQuestion.getInfo()" space="true"/>
+ <#button name="视频详情" icon="fa-search" clickFun="TQuestion.getInfo()" space="true"/>
+ </div>
+ <#table id="TQuestionTable"/>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/benefits/TBenefits.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos.html
new file mode 100644
index 0000000..28d803e
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos.html
@@ -0,0 +1,79 @@
+@layout("/common/_container.html"){
+<style>
+ .data-item {
+ position: relative;
+ border: 1px solid #ccc;
+ padding: 10px;
+ margin-bottom: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ max-width: 200px;
+ margin-right: 10px;
+ }
+
+ .delete-button {
+ position: absolute;
+ top: -10px;
+ right: -10px;
+ cursor: pointer;
+ color: black;
+ width: 20px;
+ height: 20px;
+ text-align: center;
+ line-height: 20px;
+ border-radius: 50%;
+ }
+</style>
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <input hidden id="id" value="${id}">
+ <div class="ibox-title">
+ <h5>视频详情</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <#NameCon id="name" name="视频名称" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="position" name="视频类型" >
+ <option value="">全部</option>
+ <option value="2">运动教学视频</option>
+ <option value="3">器材教学视频</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="state" name="状态" >
+ <option value="">全部</option>
+ <option value="1">上架</option>
+ <option value="2">下架</option>
+ <option value="3">已失效</option>
+ </#SelectCon>
+ </div>
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TQuestion.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TQuestion.resetSearch()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TCouponTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TQuestion.openAdd()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+ <#button name="删除" icon="fa-remove" clickFun="TQuestion.delete()" space="true"/>
+ <#button name="上架" icon="fa-check" clickFun="TQuestion.onShelf()" space="true"/>
+ <#button name="下架" icon="fa-remove" clickFun="TQuestion.offShelf()" space="true"/>
+ <#button name="查看详情" icon="fa-search" clickFun="TQuestion.getInfo()" space="true"/>
+ </div>
+ <#table id="TQuestionTable"/>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/benefits/tBenefitsVideos.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_add.html
new file mode 100644
index 0000000..b187657
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_add.html
@@ -0,0 +1,104 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="id" value="${id}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*视频名称:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="name" name = "name" onchange="TQuestion.oneChange()">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择</option>
+ @for(obj in data){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*视频封面:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <img id="img" src="" width="150px" height="150px">
+<!-- <#avatar id="img" name="" avatarImg=""/>-->
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*视频简介:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <textarea readonly id="introduce" rows="10" COLS="30" placeholder="请输入视频简介"></textarea>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*可获积分:</label>
+ <!-- <input style="width: 300px" class="form-control" type="time">-->
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" placeholder="请输入可获得积分" id="integral" class="form-control" type="text">
+ </div>
+ </div>
+
+
+
+ </div>
+ </div>
+</div>
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/benefits/tBenefitsVideos_add.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html
new file mode 100644
index 0000000..07a38df
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html
@@ -0,0 +1,124 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="benefitsVideosId" value="${data.benefitsVideosId}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ @if(type == 1){
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*视频类型:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px;" value="${data.type == 2 ? '运动教学视频' : '器材教学视频'}" id="type" class="form-control" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*视频名称:</label>
+ <!-- <input style="width: 300px" class="form-control" type="time">-->
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" value="${data.name}" id="name" class="form-control" type="text">
+ </div>
+ </div>
+ @}
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*可获积分:</label>
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" placeholder="请输入可获得积分" id="integral" value="${data.integral}" class="form-control" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*视频简介:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <textarea readonly id="introduce" rows="10" COLS="30" value="${data.introduce}" placeholder="请输入视频简介">${data.introduce}</textarea>
+ </div>
+ </div>
+
+ @if(type == 1){
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*视频封面:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <img id="coverDrawing" src="${data.coverDrawing}" width="150px" height="150px">
+ <!-- <#avatar id="img" name="" avatarImg=""/>-->
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*视频介绍:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <img id="introductionDrawing" src="${data.introductionDrawing}" width="150px" height="150px">
+ <!-- <#avatar id="img" name="" avatarImg=""/>-->
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*视频内容:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <img id="courseVideo" src="" width="150px" height="150px">
+ <!-- <#avatar id="img" name="" avatarImg=""/>-->
+ </div>
+ </div>
+ @}
+
+ </div>
+ </div>
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ @if(type != 1){
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TQuestion.updateVideosSubmit()"/>
+ @}
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+</div>
+
+ </div>
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/benefits/tBenefitsVideos_add.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_info.html
new file mode 100644
index 0000000..4e7789d
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_info.html
@@ -0,0 +1,233 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="role" value="${role}">
+ @if(objectType==1){
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange()">
+ <option value="">请选择省</option>
+ @for(obj in list){
+ <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSite.oneChangeNext(this)">
+ <option value="">请选择市</option>
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属账号:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="account" name="account">
+ <option value="" style="color: #676A6C" disabled selected>请选择所属账号</option>
+ </select>
+ </div>
+ </div>
+ @}
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*教练类型:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="coachTypeId" name = "typeId">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择教练类型</option>
+ @for(obj in coachType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="name" placeholder="请输入姓名" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*生日:</label>
+ <!-- <input style="width: 300px" class="form-control" type="time">-->
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" placeholder="请选择" id="birthday" class="form-control" type="date">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*性别:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="gender" name = "gender">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择性别</option>
+ <option value="1">男</option>
+ <option value="2">女</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*联系电话:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="phone" placeholder="请输入联系电话" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身份证号:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="idcard" placeholder="请输入身份证号" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身高:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="height" placeholder="请输入身高" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">cm</span>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*体重:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="weight" placeholder="请输入体重" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">kg</span>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*毕业院校:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="graduateSchool" placeholder="请输入毕业院校" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*照片:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <#avatar id="img" name="" avatarImg=""/>
+ </div>
+ </div>
+
+ <div class="row" id="app1" >
+ <div class="col-sm-6" style="width: 100%">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*资格证书: </label>
+ <input style="width: 300px" class="form-control" id="certificate" placeholder="请输入资格证书" type="text">
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label"></label>
+ <div class="col-sm-9">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt=""></el-dialog>
+ </div> </div>
+
+ </div>
+ </div>
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/tCoach/tCoach_add.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TSite.goodsPicArray.push(res);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TSite.goodsPicArray = TSite.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_add.html
new file mode 100644
index 0000000..6392d54
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_add.html
@@ -0,0 +1,86 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*分类名称:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="name" placeholder="请输入分类名称" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所在位置:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="position" name = "gender">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择所在位置</option>
+ <option value="1">线上课得积分</option>
+ <option value="2">看视频得奖励</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*排序:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="sort" placeholder="请输入排序" type="text">
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/benefits/TBenefits.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_edit.html
new file mode 100644
index 0000000..a32ad0f
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefits_edit.html
@@ -0,0 +1,91 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="dataId" value="${data.id}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*分类名称:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" value="${data.name}" id="name" placeholder="请输入分类名称" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所在位置:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="position" name = "gender">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择所在位置</option>
+ <option value="1" ${data.position == 1 ? 'selected' : ''}>线上课得积分</option>
+ <option value="2" ${data.position == 2 ? 'selected' : ''}>看视频得奖励</option>
+
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*排序:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="sort" value="${data.sort}" placeholder="请输入排序" type="text">
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ @if(type!=1){
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TQuestion.updateSubmit()"/>
+ @}
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/benefits/TBenefits.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html
new file mode 100644
index 0000000..383eb7b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html
@@ -0,0 +1,79 @@
+@layout("/common/_container.html"){
+<style>
+ .data-item {
+ position: relative;
+ border: 1px solid #ccc;
+ padding: 10px;
+ margin-bottom: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ max-width: 200px;
+ margin-right: 10px;
+ }
+
+ .delete-button {
+ position: absolute;
+ top: -10px;
+ right: -10px;
+ cursor: pointer;
+ color: black;
+ width: 20px;
+ height: 20px;
+ text-align: center;
+ line-height: 20px;
+ border-radius: 50%;
+ }
+</style>
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>视频分类管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <#NameCon id="parentName" name="家长姓名" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="家长联系方式" />
+ </div>
+ <div class="col-sm-3">
+ <#SelectCon id="state" name="状态" >
+ <option value="">全部</option>
+ <option value="1">未体测</option>
+ <option value="2">已体测</option>
+ </#SelectCon>
+ </div>
+
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TQuestion.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TQuestion.resetSearch()"/>
+ </div>
+ </div>
+ <div class="hidden-xs" style="margin-top: 10px" role="group">
+ <label>预约时间:</label>
+ <#button name="今日" icon="fa-search" clickFun="TQuestion.day(1)"/>
+ <#button name="明日" icon="fa-search" clickFun="TQuestion.day(2)"/>
+ <#button name="最近7天" icon="fa-search" clickFun="TQuestion.day(7)"/>
+ </div>
+
+ <div style="margin-top: 10px" class="hidden-xs" id="TCouponTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TQuestion.openAdd()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+ <#button name="已测试" icon="fa-check" clickFun="TQuestion.onShelf()" space="true"/>
+
+ </div>
+ <#table id="TQuestionTable"/>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html
new file mode 100644
index 0000000..a58bfe3
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html
@@ -0,0 +1,133 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+ <option value="">请选择省</option>
+ @for(obj in list){
+ <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+ <option value="">请选择市</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属门店:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="store" name="account">
+ <option value="" style="color: #676A6C" disabled selected>请选择门店</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*家长姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="parentName" placeholder="请输入家长姓名" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*家长联系方式:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="phone" placeholder="请输入家长联系方式" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*学员姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="learnerName" placeholder="请输入学员姓名" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*学员年龄:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="learnerAge" placeholder="请输入学员年龄" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*学员生日:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="birthday" placeholder="请选择" type="date">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*预约时间:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="appointmentTime" placeholder="请选择" type="datetime-local">
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html
new file mode 100644
index 0000000..550be62
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html
@@ -0,0 +1,91 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="dataId" value="${data.id}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*家长姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" value="${data.name}" id="name" placeholder="请输入分类名称" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所在位置:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="position" name = "gender">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择所在位置</option>
+ <option value="1" ${data.position == 1 ? 'selected' : ''}>线上课得积分</option>
+ <option value="2" ${data.position == 2 ? 'selected' : ''}>看视频得奖励</option>
+
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*排序:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="sort" value="${data.sort}" placeholder="请输入排序" type="text">
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ @if(type!=1){
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TQuestion.updateSubmit()"/>
+ @}
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/benefits/TBenefits.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackageType/CoursePackageType.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackageType/CoursePackageType.html
new file mode 100644
index 0000000..4b6ef47
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackageType/CoursePackageType.html
@@ -0,0 +1,33 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>课包类型管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ </div>
+ <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TSite.openTSiteDetail()" space="true"/>
+ <#button name="删除" icon="fa-remove" clickFun="TSite.del()" space="true"/>
+ </div>
+ <#table id="TSiteTable"/>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/coursePackageType/coursePackageType.js"></script>
+<script>
+ laydate.render({
+ elem: '#createTime'
+ ,range: true
+ ,lang:"en"
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach.html
new file mode 100644
index 0000000..147237a
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach.html
@@ -0,0 +1,80 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+
+ <div class="ibox-title">
+ <h5>教练管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ @if(objectType==1){
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 所在省
+ </button>
+ </div>
+ <select class="form-control" id="pCode" onchange="TSite.oneChange()">
+ <option value="">全部</option>
+ @for(obj in data){
+ <option value="${obj.provinceCode}">${obj.province}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 所在市
+ </button>
+ </div>
+ <select class="form-control" id="cCode">
+ <option value="">请先选择省</option>
+ </select>
+ </div>
+ </div>
+ @}
+ <div class="col-sm-3">
+ <#NameCon id="name" name="姓名:" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="phone" name="联系电话:" />
+ </div>
+
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="TSite.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TSite.resetSearch()" space="true"/>
+ </div>
+ </div>
+ <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TSite.openEditTSite()" space="true"/>
+ <#button name="解冻" icon="fa-check" clickFun="TSite.onShelf()" space="true"/>
+ <#button name="冻结" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/>
+ <#button name="查看详情" icon="fa-search" clickFun="TSite.openInfo()" space="true"/>
+ </div>
+ <#table id="TSiteTable"/>
+ </div>
+ </div>
+ </div>
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tCoach/tCoach.js"></script>
+<script>
+ laydate.render({
+ elem: '#createTime'
+ ,range: true
+ ,lang:"en"
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_add.html
new file mode 100644
index 0000000..4e7789d
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_add.html
@@ -0,0 +1,233 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="role" value="${role}">
+ @if(objectType==1){
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange()">
+ <option value="">请选择省</option>
+ @for(obj in list){
+ <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSite.oneChangeNext(this)">
+ <option value="">请选择市</option>
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属账号:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="account" name="account">
+ <option value="" style="color: #676A6C" disabled selected>请选择所属账号</option>
+ </select>
+ </div>
+ </div>
+ @}
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*教练类型:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="coachTypeId" name = "typeId">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择教练类型</option>
+ @for(obj in coachType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="name" placeholder="请输入姓名" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*生日:</label>
+ <!-- <input style="width: 300px" class="form-control" type="time">-->
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" placeholder="请选择" id="birthday" class="form-control" type="date">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*性别:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="gender" name = "gender">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择性别</option>
+ <option value="1">男</option>
+ <option value="2">女</option>
+ </select>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*联系电话:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="phone" placeholder="请输入联系电话" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身份证号:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="idcard" placeholder="请输入身份证号" type="text">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身高:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="height" placeholder="请输入身高" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">cm</span>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*体重:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="weight" placeholder="请输入体重" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">kg</span>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*毕业院校:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="graduateSchool" placeholder="请输入毕业院校" type="text">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*照片:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <#avatar id="img" name="" avatarImg=""/>
+ </div>
+ </div>
+
+ <div class="row" id="app1" >
+ <div class="col-sm-6" style="width: 100%">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*资格证书: </label>
+ <input style="width: 300px" class="form-control" id="certificate" placeholder="请输入资格证书" type="text">
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label"></label>
+ <div class="col-sm-9">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt=""></el-dialog>
+ </div> </div>
+
+ </div>
+ </div>
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/tCoach/tCoach_add.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TSite.goodsPicArray.push(res);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TSite.goodsPicArray = TSite.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_edit.html
new file mode 100644
index 0000000..1c96079
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoach/TCoach_edit.html
@@ -0,0 +1,227 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+ <input hidden id="dataId" value="${data.id}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="role" value="${role}">
+ @if(objectType==1){
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange()">
+ @for(obj in list){
+ <option value="${obj.provinceCode}" ${obj.province == data.province ? 'selected=selected' : ''}>${obj.province}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSite.oneChangeNext(this)">
+ @for(obj in city){
+ <option value="${obj.cityCode}" ${obj.city == data.city ? 'selected=selected' : ''}>${obj.city}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*所属账号:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="account" name="account">
+ @for(obj in cityManagers){
+ <option value="${obj.id}" ${obj.id == data.cityManagerId ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*教练类型:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="coachTypeId" name = "typeId">
+ <option value="" style="color: #b6b6b6" disabled selected>请选择教练类型</option>
+ @for(obj in coachType){
+ <option value="${obj.id}" ${obj.id == data.coachTypeId ? 'selected=selected' : ''}>${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*姓名:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="name" value="${data.name}" placeholder="请输入姓名" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*生日:</label>
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 300px;" placeholder="请选择" value="${birthday}" id="birthday" class="form-control" type="date">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*性别:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="gender" name = "gender">
+ <option value="1" ${data.gender == 1 ? 'selected' : ''}>男</option>
+ <option value="2" ${data.gender == 2 ? 'selected' : ''}>女</option>
+ </select>
+ </div>
+ </div>
+
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*联系电话:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" value="${data.phone}" id="phone" placeholder="请输入联系电话" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身份证号:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="idcard" value="${data.idcard}" placeholder="请输入身份证号" type="text">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*身高:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="height" value="${data.height}" placeholder="请输入身高" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">cm</span>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*体重:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" value="${data.weight}" id="weight" placeholder="请输入体重" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">kg</span>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*毕业院校:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" value="${data.graduateSchool}" id="graduateSchool" placeholder="请输入毕业院校" type="text">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*照片:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <#avatar id="img" avatarImg="${data.diploma}" name="" />
+ </div>
+ </div>
+
+
+ <div class="row" id="app1" >
+ <div class="col-sm-6" style="width: 100%">
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*资格证书: </label>
+ <input style="width: 300px" class="form-control" id="certificate" value="${data.certificate}" placeholder="请输入资格证书" type="text">
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label"></label>
+ <div class="col-sm-9">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ @for(img in pictures){
+ <img width="100%" src="${img}">
+ @}
+ </el-dialog>
+ </div> </div>
+
+ </div>
+ </div>
+
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ @if(type!=1){
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+ @}
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+<script src="${ctxPath}/modular/system/tCoach/tCoach_add.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TSite.goodsPicArray.push(res);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TSite.goodsPicArray = TSite.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoachType/TCoachType.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoachType/TCoachType.html
new file mode 100644
index 0000000..e3e8440
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoachType/TCoachType.html
@@ -0,0 +1,33 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>教练类型管理</h5>
+ </div>
+ <div class="ibox-content">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ </div>
+ <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
+ <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TSite.openTSiteDetail()" space="true"/>
+ <#button name="删除" icon="fa-remove" clickFun="TSite.del()" space="true"/>
+ </div>
+ <#table id="TSiteTable"/>
+ </div>
+ </div>
+ </div>
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tCoachType/tCoachType.js"></script>
+<script>
+ laydate.render({
+ elem: '#createTime'
+ ,range: true
+ ,lang:"en"
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
index 6834772..75f870d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -259,7 +259,6 @@
<img width="100%" :src="imageUrl1" alt="">
</div>
</div>
-
</div>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
index 3b46690..247e10d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
@@ -26,6 +26,7 @@
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5">
<#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="add();" />
+ <#button btnCss="info" name="关闭" id="close" icon="fa-check" clickFun="closeD();" />
</div>
</div>
<label for="sort">*排 序:</label>
@@ -42,11 +43,18 @@
</div>
</div>
<script type="text/javascript">
+ /**
+ * 关闭此对话框
+ */
+ function closeD(){
+ console.log("关闭");
+ parent.layer.close(window.parent.TQuestion.layerIndex);
+ }
const data1 = {
content:"",
sort:null,
answer:""
- }
+ };
var editor_1 = null;
$(function () {
//初始化编辑器
@@ -72,8 +80,7 @@
data1.content = value1;
data1.sort = value2;
data1.answer =editor_1.getContent();
- console.log(data1);
- submitData(data1);
+ submitData(data1);
}
function submitData(data) {
$.ajax({
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
index 75205ea..2686537 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
@@ -28,6 +28,7 @@
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5">
<#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="edit();" />
+ <#button btnCss="info" name="关闭" id="close" icon="fa-check" clickFun="closeD();" />
</div>
</div>
<label for="sort">*排 序:</label>
@@ -45,7 +46,13 @@
</div>
<script type="text/javascript">
-
+ /**
+ * 关闭此对话框
+ */
+ function closeD(){
+ console.log("关闭");
+ parent.layer.close(window.parent.TQuestion.layerIndex);
+ }
const data1 = {
id:null,
content:"",
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html
index 66986b0..86d58b0 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionInfo.html
@@ -26,6 +26,9 @@
<textarea id="editor_1" type="text/plain" style="width:1200px;height:400px;">${info.answer}</textarea>
</div>
<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5">
+ <#button btnCss="info" name="关闭" id="close" icon="fa-check" clickFun="closeD();" />
+ </div>
</div>
<label for="sort">*排 序:</label>
<input type="text" id="sort" value="${info.sort}" placeholder="请输入排序"><span> 数字越大,权重越大</span>
@@ -42,7 +45,13 @@
</div>
<script type="text/javascript">
-
+ /**
+ * 关闭此对话框
+ */
+ function closeD(){
+ console.log("关闭");
+ parent.layer.close(window.parent.TQuestion.layerIndex);
+ }
const data1 = {
id:null,
content:"",
@@ -87,6 +96,7 @@
contentType: "application/json", // 设置请求头的 Content-Type
data: JSON.stringify(data), // 将数据转换为 JSON 字符串
success: function(response) {
+
Feng.success("修改成功!");
},
error: function(xhr, status, error) {
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
index edaad1d..9eb2b1f 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
@@ -63,7 +63,6 @@
<#button name="重置密码" icon="fa-remove" clickFun="TCompetition.reload()" space="true"/>
<#button name="免费福利" icon="fa-remove" clickFun="TCompetition.gift()" space="true"/>
<#button name="首页设置" icon="fa-remove" clickFun="TCompetition.indexSet()" space="true"/>
-
</div>
<#table id="TCompetitionTable"/>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
index 20d378a..103833c 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html
@@ -66,13 +66,10 @@
<#avatar id="img" name="门店封面(推荐像素722*360px)" avatarImg="${item.coverDrawing}"/>
<#input id="imgOne" name="实景照片" type="text" value="${item.realPicture}"/>
-
</div>
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5">
- @if(type==1){
<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
- @}
<#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
</div>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_add.html
deleted file mode 100644
index 5677e41..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_add.html
+++ /dev/null
@@ -1,181 +0,0 @@
-@layout("/common/_container.html"){
-<style>
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- height: 100px;
- width: 100px;
- overflow: hidden;
- }
-
- .avatar-uploader .el-upload:hover {
- border-color: #409EFF;
- }
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 100px;
- height: 100px;
- line-height: 100px;
- margin-top: 32px;
- text-align: center;
- }
- .avatar {
- width: 100px;
- height: 100px;
- display: block;
- }
-
- .col-sm-12 {
- margin-top: 20px;
- }
-
- .col-sm-12 select {
- height: 33px;
- }
-</style>
-<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
-<div class="ibox float-e-margins">
- <div class="ibox-content">
-
-
- <div class="form-horizontal" id="carInfoForm">
- <input hidden id="role" value="${role}">
- @if(role=='1'){
- <div class="form-group" id="provinceCode">
- <label class="col-sm-3 control-label">所在省:</label>
- <div class="col-sm-9">
- <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
- <option value="">选择省</option>
- @for(obj in list){
- <option value="${obj.code}">${obj.name}</option>
- @}
- </select>
- </div>
- </div>
- <div class="form-group" id="cityCode">
- <label class="col-sm-3 control-label">所在市:</label>
- <div class="col-sm-9">
- <select class="form-control" id="cCode" name="cCode" onchange="TCarInfoDlg.oneChangeNext(this)">
- <option value="">选择市</option>
- </select>
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">所属账号:</label>
- <div class="col-sm-9">
- <select class="form-control" id="account" name="account">
- <option value="">选择账号</option>
- </select>
- </div>
- </div>
- @}
- <#input id="name" name="门店名称" type="text"/>
- <#input id="phone" name="联系电话" type="text"/>
- <div class="form-group">
- <label class="col-sm-3 control-label">门店地址:</label>
- <div class="col-sm-9">
- <input class="form-control" id="address" name="address" type="text" onchange="TCarInfoDlg.searchByStationName(this,1)">
-
- </div>
- </div>
- <div class="col-sm-10" style="margin-left: 397px;width: 70%;" >
- <!-- 创建地图容器-->
- <div id="container" style="height: 500px;" ></div>
- </div>
- <#input id="time" name="营业时间" type="text"/>
- <div class="form-group">
- <label class="col-sm-3 control-label">门店介绍:</label>
- <div class="col-sm-9">
- <textarea id="introduce" style="width: 617px; height: 180px;"></textarea>
- </div>
- </div>
- <#input id="userName" name="店长姓名" type="text"/>
- <#input id="userPhone" name="店长手机号" type="text"/>
- <#avatar id="img" name="门店封面(推荐像素722*360px)" />
- <div class="row" id="app1">
- <div class="col-sm-6" style="width: 100%">
- <div class="form-group">
- <label class="col-sm-3 control-label" style="width: 15%;margin-left: 5%">*实景图片(请上传不超过五张图片): </label>
- <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
- <el-upload
- :limit="5"
- class="avatar-uploader"
- action="/tCouponManage/uploadPic"
- list-type="picture-card"
- accept="."
- :on-success="handleAvatarSuccess"
- :on-remove="handleRemove">
- <i class="el-icon-plus"></i>
- </el-upload>
- <el-dialog :visible.sync="dialogVisible">
- <img width="100%" :src="imageUrl1" alt="">
- </div>
- </div>
-
- </div>
- </div>
-
-
- </div>
-</div>
-
-<div class="row btn-group-m-t">
- <div class="col-sm-10 col-sm-offset-5">
- <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
- <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
- </div>
-</div>
-
- </div>
-
- </div>
-</div>
-<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script>
-<script src="${ctxPath}/js/vue/vue.js"></script>
-<script src="${ctxPath}/js/elementui/index.js"></script>
-<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
-<script>
- laydate.render({
- elem: '#time',
- range:true
- });
-
- var vue2 = new Vue({
- el: '#app1',
- props: {
- // 数量限制
- limit: {
- type: Number,
- default: 2
- },
- },
- data: {
- autoUpload: true,//自动上传
- imageUrl1: '',//模型数据,用于上传图片完成后图片预览
- dialogVisible: false
- },
- methods: {
- handleAvatarSuccess(res, file) {
- couponInfoDlg.goodsPicArray.push(file);
- },
- beforeAvatarUpload(file) {
- const isLt2M = file.size / 1024 / 1024 < 10;
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 10MB!');
- }
- return isLt2M;
- },
- handleRemove(file, fileList) {
- couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => {
- return item.uid != file.uid;
- });
- },
- },
- created() {
- },
- });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_edit.html
deleted file mode 100644
index 20d378a..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_edit.html
+++ /dev/null
@@ -1,92 +0,0 @@
-@layout("/common/_container.html"){
-<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
-<div class="ibox float-e-margins">
- <div class="ibox-content">
-
- <div class="form-horizontal" id="carInfoForm">
- <input hidden id="id" value="${item.id}">
- <input hidden id="role" value="${role}">
- @if(role=='1'){
- <div class="form-group" id="provinceCode">
- <label class="col-sm-3 control-label">所在省:</label>
- <div class="col-sm-9">
- <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
- <option value="">选择省</option>
- @for(obj in list){
- <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
- @}
- </select>
- </div>
- </div>
- <div class="form-group" id="cityCode">
- <label class="col-sm-3 control-label">所在市:</label>
- <div class="col-sm-9">
- <select class="form-control" id="cCode" name="cCode" onchange="TCarInfoDlg.oneChangeNext(this)">
- <option value="">选择市</option>
- @for(obj in list1){
- <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
- @}
- </select>
- </div>
- </div>
- <div class="form-group" >
- <label class="col-sm-3 control-label">所属账号:</label>
- <div class="col-sm-9">
- <select class="form-control" id="account" name="account">
- <option value="">选择账号</option>
- @for(obj in list2){
- <option value="${obj.id}" ${obj.id == item.cityManagerId ? 'selected=selected' : ''}>${obj.name}-${obj.phone}</option>
- @}
- </select>
- </div>
- </div>
- @}
- <#input id="name" name="门店名称" type="text" value="${item.name}"/>
- <#input id="phone" name="联系电话" type="text" value="${item.phone}"/>
- <div class="form-group">
- <label class="col-sm-3 control-label">门店地址:</label>
- <div class="col-sm-9">
- <input class="form-control" id="address" name="address" type="text" value="${item.address}" onchange="TCarInfoDlg.searchByStationName(this,1)">
-
- </div>
- </div>
- <div class="col-sm-10" style="margin-left: 397px;width: 70%;" >
- <!-- 创建地图容器-->
- <div id="container" style="height: 500px;" ></div>
- </div>
- <#input id="time" name="营业时间" type="text" value="${time}"/>
- <div class="form-group">
- <label class="col-sm-3 control-label">门店介绍:</label>
- <div class="col-sm-9">
- <textarea id="introduce" style="width: 617px; height: 180px;">${item.introduce}</textarea>
- </div>
- </div>
- <#input id="userName" name="管理员姓名" type="text" value="${city.name}"/>
- <#input id="userPhone" name="管理员手机号" type="text" value="${city.account}"/>
- <#avatar id="img" name="门店封面(推荐像素722*360px)" avatarImg="${item.coverDrawing}"/>
- <#input id="imgOne" name="实景照片" type="text" value="${item.realPicture}"/>
-
-
- </div>
- <div class="row btn-group-m-t">
- <div class="col-sm-10 col-sm-offset-5">
- @if(type==1){
- <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
- @}
- <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
- </div>
- </div>
-
- </div>
-</div>
-<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script>
-<script>
- laydate.render({
- elem: '#time',
- range:true
- });
-</script>
-<script type="application/javascript">
-
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_img.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_img.html
deleted file mode 100644
index 1cff518..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_img.html
+++ /dev/null
@@ -1,44 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
- <div class="ibox-content">
-
- <div class="form-horizontal" id="carInfoForm">
- <input hidden id="id" value="${id}">
- @if(welfarePicture==null){
- <#avatar id="welfarePicture" name="福利图片"/>
- @}
- @if(welfarePicture!=null){
- <#avatar id="welfarePicture" name="福利图片" avatarImg="${welfarePicture}"/>
- @}
- @if(welfarePicture==12321){
- <div class="form-group">
- <div class="col-sm-4">
- <div id="welfarePicturePreId">
- <div><img width="700px" height="800px" id="img" src="${welfarePicture}" ></div>
- </div>
- </div>
-
- <input type="hidden" id="welfarePicture">
- </div>
- <div class="col-sm-2" style="margin-left: 280px">
- <div class="head-scu-btn upload-btn webuploader-container" id="welfarePictureBtnId"><div class="webuploader-pick">
- <i class="fa fa-upload"></i> Upload
- </div><div id="rt_rt_1h6lka0hk9mucj87vf1t21qk31" style="position: absolute; inset: 0px auto auto 0px; width: 82px; height: 28px; overflow: hidden;"><input type="file" name="file" class="webuploader-element-invisible" accept="image/gif,image/jpg,image/jpeg,image/bmp,image/png"><label style="opacity: 0; width: 100%; height: 100%; display: block; cursor: pointer; background: rgb(255, 255, 255);"></label></div></div>
- </div>
- @}
-
- </div>
- <div class="row btn-group-m-t">
- <div class="col-sm-10 col-sm-offset-5">
- <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.saveImg()"/>
- </div>
- </div>
-
- </div>
-</div>
-<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script>
-<script>
-</script>
-<script type="application/javascript">
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_imgAll.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_imgAll.html
deleted file mode 100644
index 9a40637..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TShop_imgAll.html
+++ /dev/null
@@ -1,253 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
- <div class="ibox-content">
-
- <div class="form-horizontal" id="carInfoForm">
- <input hidden id="id" value="${id}">
- <input hidden id="s1" value="${c1.isOpen}">
- <input hidden id="s2" value="${c2.isOpen}">
- <input hidden id="s3" value="${c3.isOpen}">
- <input hidden id="s4" value="${c4.isOpen}">
- <input hidden id="s5" value="${c5.isOpen}">
- <input hidden id="s6" value="${c6.isOpen}">
- <input hidden id="s7" value="${c7.isOpen}">
- <input hidden id="s8" value="${c8.isOpen}">
- <div class="row">
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 报名玩湃课程:<input type="radio" name="r1" value="1">开启 <input type="radio" name="r1" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px1" value="${c1.sort}">
- </div>
- </div>
- @if(c1==null){
- <#avatar id="c1" name="背景图" />
- @}
- @if(c1!=null){
- <#avatar id="c1" name="背景图" avatarImg="${c1.backgroundImage}"/>
- @}
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 预约场地:<input type="radio" name="r2" value="1">开启 <input type="radio" name="r2" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px2" value="${c2.sort}">
- </div>
- </div>
- @if(c2==null){
- <#avatar id="c2" name="背景图" />
- @}
- @if(c2!=null){
- <#avatar id="c2" name="背景图" avatarImg="${c2.backgroundImage}"/>
- @}
- </div>
- </div>
-
-
-
- <div class="row">
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 报名赛事及活动:<input type="radio" name="r3" value="1">开启 <input type="radio" name="r3" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px3" value="${c3.sort}">
- </div>
- </div>
- @if(c3==null){
- <#avatar id="c3" name="背景图" />
- @}
- @if(c3!=null){
- <#avatar id="c3" name="背景图" avatarImg="${c3.backgroundImage}"/>
- @}
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 免费福利:<input type="radio" name="r4" value="1">开启 <input type="radio" name="r4" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px4" value="${c4.sort}">
- </div>
- </div>
- @if(c4==null){
- <#avatar id="c4" name="背景图" />
- @}
- @if(c4!=null){
- <#avatar id="c4" name="背景图" avatarImg="${c4.backgroundImage}"/>
- @}
- </div>
- </div>
-
-
-
- <div class="row">
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 线上课得积分:<input type="radio" name="r5" value="1">开启 <input type="radio" name="r5" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px5" value="${c5.sort}">
- </div>
- </div>
- @if(c5==null){
- <#avatar id="c5" name="背景图" />
- @}
- @if(c5!=null){
- <#avatar id="c5" name="背景图" avatarImg="${c5.backgroundImage}"/>
- @}
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 购买优惠门票:<input type="radio" name="r6" value="1">开启 <input type="radio" name="r6" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px6" value="${c6.sort}">
- </div>
- </div>
- @if(c6==null){
- <#avatar id="c6" name="背景图" />
- @}
- @if(c6!=null){
- <#avatar id="c6" name="背景图" avatarImg="${c6.backgroundImage}"/>
- @}
- </div>
- </div>
-
-
- <div class="row">
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 看视频得奖励:<input type="radio" name="r7" value="1">开启 <input type="radio" name="r7" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px7" value="${c7.sort}">
- </div>
- </div>
- @if(c7==null){
- <#avatar id="c7" name="背景图" />
- @}
- @if(c7!=null){
- <#avatar id="c7" name="背景图" avatarImg="${c7.backgroundImage}"/>
- @}
- </div>
- <div class="col-lg-6" style="">
- <div class="form-group" style="margin-left: 96px">
- <label class="col-sm-4 control-label" >
- 智慧球场:<input type="radio" name="r8" value="1">开启 <input type="radio" name="r8" value="0">关闭
- </label>
- </div>
- <div class="form-group">
- <label class="col-sm-3 control-label">排序:</label>
- <div class="col-sm-9">
- <input class="form-control" style="width: 200px;" type="text" id="px8" value="${c8.sort}">
- </div>
- </div>
- @if(c8==null){
- <#avatar id="c8" name="背景图" />
- @}
- @if(c8!=null){
- <#avatar id="c8" name="背景图" avatarImg="${c8.backgroundImage}"/>
- @}
- </div>
- </div>
-
-
-
- </div>
- <div class="row btn-group-m-t">
- <div class="col-sm-10 col-sm-offset-5">
- <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.saveAllImg()"/>
- </div>
- </div>
-
- </div>
-</div>
-<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script>
-
-<script>
-</script>
-<script type="application/javascript">
- window.onload = function(){
- var OBJradio=document.getElementsByName("r1")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r2")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r3")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s3").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r4")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s4").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r5")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s5").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r6")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s6").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r7")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s7").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
- var OBJradio=document.getElementsByName("r8")
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#s8").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
- }
- }
-
-
- }
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html
index a0d98f0..6851fc7 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite.html
@@ -2,7 +2,7 @@
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
- <input hidden id="role" value="${role}">
+
<div class="ibox-title">
<h5>场地管理</h5>
</div>
@@ -10,7 +10,7 @@
<div class="row row-lg">
<div class="col-sm-12">
<div class="row">
- @if(role=='1'){
+ @if(objectType==1){
<div class="col-sm-3">
<div class="input-group">
<div class="input-group-btn open">
@@ -18,16 +18,16 @@
所在省
</button>
</div>
- <select class="form-control" id="pCode" onchange="TSite.oneChange(this)">
+ <select class="form-control" id="pCode" onchange="TSite.oneChange(1)">
<option value="">全部</option>
@for(obj in list){
- <option value="${obj.code}">${obj.name}</option>
+ <option value="${obj}">${obj}</option>
@}
</select>
</div>
</div>
@}
- @if(role=='1'){
+ @if(objectType==1){
<div class="col-sm-3">
<div class="input-group">
<div class="input-group-btn open">
@@ -36,39 +36,54 @@
</button>
</div>
<select class="form-control" id="cCode">
+ <option value="">请先选择省</option>
</select>
</div>
</div>
@}
<div class="col-sm-3">
- <#NameCon id="name" name="店长姓名" />
+ <#NameCon id="storeName" name="门店名称" />
+ </div>
+
+ <div class="col-sm-3">
+ <div class="input-group">
+ <div class="input-group-btn open">
+ <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
+ 场地类型
+ </button>
+ </div>
+ <select class="form-control" id="sCode" >
+ <option value="">全部</option>
+ @for(obj in siteType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
</div>
<div class="col-sm-3">
- <#NameCon id="phone" name="店长手机号" />
- </div>
- <div class="col-sm-3">
- <#NameCon id="shopName" name="门店名称" />
+ <#NameCon id="name" name="场地名称" />
</div>
<div class="col-sm-3">
- <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
- <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
+ <#button name="搜索" icon="fa-search" clickFun="TSite.search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="TSite.resetSearch()" space="true"/>
</div>
</div>
<div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
- <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition()"/>
- <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/>
- <#button name="冻结" icon="fa-remove" clickFun="TCompetition.freeze()" space="true"/>
- <#button name="解冻" icon="fa-remove" clickFun="TCompetition.unfreeze()" space="true"/>
- <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/>
- <#button name="重置密码" icon="fa-remove" clickFun="TCompetition.reload()" space="true"/>
- <#button name="免费福利" icon="fa-remove" clickFun="TCompetition.gift()" space="true"/>
- <#button name="首页设置" icon="fa-remove" clickFun="TCompetition.indexSet()" space="true"/>
-
+ <#button name="添加" icon="fa-plus" clickFun="TSite.openAddTSite()"/>
+ <#button name="编辑" icon="fa-edit" clickFun="TSite.openEditTSite()" space="true"/>
+ <#button name="上架" icon="fa-check" clickFun="TSite.onShelf()" space="true"/>
+ <#button name="下架" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/>
+ <#button name="查看详情" icon="fa-search" clickFun="TSite.openInfo()" space="true"/>
+ <#button name="锁定场地" icon="fa-remove" clickFun="TSite.lock()" space="true"/>
</div>
- <#table id="TCompetitionTable"/>
+ <#table id="TSiteTable"/>
</div>
</div>
</div>
+ <input hidden id="role" value="${role}">
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+ <input hidden id="type" value="${type}">
</div>
</div>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
new file mode 100644
index 0000000..4499976
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
@@ -0,0 +1,247 @@
+@layout("/common/_container.html"){
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ height: 100px;
+ width: 100px;
+ overflow: hidden;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-top: 32px;
+ text-align: center;
+ }
+ .avatar {
+ width: 100px;
+ height: 100px;
+ display: block;
+ }
+
+ .col-sm-12 {
+ margin-top: 20px;
+ }
+
+ .col-sm-12 select {
+ height: 33px;
+ }
+ #app1{
+ margin-left: 255px;
+ }
+
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <input hidden id="objectType" value="${objectType}">
+ <input hidden id="objectId" value="${objectId}">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+ <input hidden id="role" value="${role}">
+ @if(objectType==1){
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange(2)">
+ <option style="width: 300px" value="">选择省</option>
+ @for(obj in province){
+ <option style="width: 300px" value="${obj}">${obj}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSite.oneChangeNext(this)">
+ <option value="">请先选择省</option>
+ </select>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属账号:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="account" name="account">
+ <option value="">请先选择省/市</option>
+ </select>
+ </div>
+ </div>
+ @}
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属门店:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="store" name="store" >
+ <option disabled selected value="">请选择门店</option>
+ @if(objectType!=1){
+ @for(obj in stores){
+ <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+ @}
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*场地分类:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="siteTypeId" name = "typeId">
+ <option value="">选择类型</option>
+ @for(obj in siteType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <#input style="width: 300px" id="name" name="*场地名称" type="text"/>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*可预约时间段:</label>
+ <!-- <input style="width: 300px" class="form-control" type="time">-->
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 136px;" value="开始时间" id="start-time" class="form-control" type="time">
+ <span style="margin-top: 7px"> 至 </span>
+ <input style="width: 136px;" value="结束时间" id="end-time" class="form-control" type="time">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*现金价格:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="cashPrice" name="playPaiCoin" placeholder="请输入价格" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">元/半小时</span>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*玩湃币价格:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="playPaiCoin" name="playPaiCoin" placeholder="请输入价格" type="text">
+ <span style="margin-left: 5px;margin-top: 5px">币/半小时</span>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*场地责任险有效期:</label>
+ <div class="col-sm-9">
+ <input style="width: 300px" class="form-control" id="insuranceEndTime" name="insuranceEndTime" type="date">
+ </div>
+
+ <#avatar id="img" name="" avatarImg=""/>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*消防及应急管理方案:</label>
+ <div class="col-sm-2" style="padding-top: 30px;">
+ <input type="file" id="upFile" name="upFile" style="display: none">
+ <input class="form-control" id="courseVideo" readonly/>
+ </div>
+ <div class="col-sm-2" style="padding-top: 30px;">
+ <button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传文件</button>
+ </div>
+ </div>
+ @if(objectType==1){
+ <div class="row" id="app1">
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept="."
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt="">
+ </el-dialog>
+ </div>
+ </div>
+ </div>
+ @}
+ @if(objectType==1){
+ <#input style="width: 300px" id="name" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/>
+ @}
+<div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/tSite/tSite.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TSite.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TSite.goodsPicArray = TSite.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+ var selectElement = document.getElementById('store');
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+ startTime.disabled = true;
+ endTime.disabled = true;
+ selectElement.addEventListener('change',function () {
+ if (selectElement.value !== ''){
+ startTime.disabled = false;
+ endTime.disabled = false;
+ }else{
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
new file mode 100644
index 0000000..a608a3d
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
@@ -0,0 +1,207 @@
+@layout("/common/_container.html"){
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm">
+
+ @if(objectType == 1){
+ <div class="form-group" id="provinceCode">
+ <label class="col-sm-3 control-label">*所在省:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSiteInfo.oneChange(this)">
+<!-- <option style="width: 300px" value="${list.province}">${list.province}</option>-->
+ @for(obj in province){
+ <option value="${obj}" ${obj == list.province ? 'selected=selected' : ''}>${obj}</option>
+<!-- <option style="width: 300px" value="${obj}">${obj}</option>-->
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="cityCode">
+ <label class="col-sm-3 control-label">*所在市:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TSiteInfo.oneChangeNext(this)">
+ @for(obj in city1){
+ <option value="${obj.city}" ${obj.city == list.city ? 'selected=selected' : ''}>${obj.city}</option>
+<!-- <option style="width: 300px" value="${obj.city}">${obj.city}</option>-->
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属账号:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="account" name="account">
+ @for(obj in accounts){
+ <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+ @}
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*所属门店:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="store" name="store" onchange="TSiteInfo.getTime(this)" >
+ @for(obj in stores){
+ <option value="${obj.id}" ${obj.id == list.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+<!-- <option style="width: 300px" value="${obj.id}">${obj.name}</option>-->
+ @}
+ </select>
+ </div>
+ </div>
+ <div class="form-group" id="siteType">
+ <label class="col-sm-3 control-label">*场地类型:</label>
+ <div class="col-sm-9">
+ <select style="width: 300px" class="form-control" id="siteTypeId" name = "typeId">
+ @for(obj in siteType){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
+ </select>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*场地名称:</label>
+ <div class="col-sm-9" >
+ <input style="width: 300px" class="form-control" id="name" name="name" type="text" value="${list.name}">
+ </div>
+ </div>
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*可预约时间段:</label>
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 150px;" value="${list.appointmentStartTime}" id="start-time" class="form-control" type="time" >
+ <span style="margin-top: 7px"> 至 </span>
+ <input style="width: 150px;" value="${list.appointmentEndTime}" id="end-time" class="form-control" type="time">
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*现金价格:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="cashPrice" name="playPaiCoin" type="text" value="${list.cashPrice}">
+ <span style="margin-left: 5px;margin-top: 5px">元/半小时</span>
+ </div>
+ </div>
+
+ <div class="form-group" >
+ <label class="col-sm-3 control-label">*玩湃币价格:</label>
+ <div class="col-sm-9" style="display: flex;">
+ <input style="width: 300px" class="form-control" id="playPaiCoin" name="playPaiCoin" type="text" value="${list.playPaiCoin}">
+ <span style="margin-left: 5px;margin-top: 5px">币/半小时</span>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label">*场地责任险有效期:</label>
+ <div class="col-sm-9">
+ <input value="${time}" style="width: 300px" class="form-control" id="insuranceEndTime" name="insuranceEndTime" type="date">
+ </div>
+ </div>
+ <#avatar id="img" name="" value ="${list.insuranceImg}" avatarImg="${list.insuranceImg}"/>
+
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*消防及应急管理方案:</label>
+ <div class="col-sm-2" style="padding-top: 30px;">
+ <input type="file" id="upFile" name="upFile" style="display: none">
+ <input class="form-control" id="courseVideo" value="${list.managementPlan}" readonly/>
+ </div>
+ <div class="col-sm-2" style="padding-top: 30px;">
+ <button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传文件</button>
+ </div>
+ </div>
+ @if(objectType ==1){
+ <div class="row" id="app1">
+ <div class="form-group">
+ <label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
+ <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%">
+ <el-upload
+ :limit="5"
+ class="avatar-uploader"
+ action="/tCouponManage/uploadPic"
+ list-type="picture-card"
+ accept="."
+ :on-success="handleAvatarSuccess"
+ :on-remove="handleRemove">
+ <i class="el-icon-plus"></i>
+ </el-upload>
+ <el-dialog :visible.sync="dialogVisible">
+ <img width="100%" :src="imageUrl1" alt="">
+ </el-dialog>
+ </div>
+ </div>
+ </div>
+ @}
+ </div>
+ @if(objectType==1){
+ <#input style="width: 300px" id="name" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/>
+ @}
+ <div class="row btn-group-m-t">
+ <div class="col-sm-10 col-sm-offset-5" >
+ @if(type==1){
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSiteInfo.addSubmit()"/>
+ @}
+ <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TSiteInfo.close()"/>
+ </div>
+ </div>
+ <input hidden id="role" value="${role}">
+ <input type="hidden" id="id" value="${list.id}">
+ </div>
+<!-- <img id="img" value="${list.insuranceImg}"/>-->
+<!-- <img id = "plan" value="${list.managementPlan}"/>-->
+</div>
+
+<script src="${ctxPath}/modular/system/tSite/tSite_info.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+ var vue2 = new Vue({
+ el: '#app1',
+ props: {
+ // 数量限制
+ limit: {
+ type: Number,
+ default: 2
+ },
+ },
+ data: {
+ autoUpload: true,//自动上传
+ imageUrl1: '',//模型数据,用于上传图片完成后图片预览
+ dialogVisible: false
+ },
+ methods: {
+ handleAvatarSuccess(res, file) {
+ TCarInfoDlg.goodsPicArray.push(file);
+ },
+ beforeAvatarUpload(file) {
+ const isLt2M = file.size / 1024 / 1024 < 10;
+ if (!isLt2M) {
+ this.$message.error('上传图片大小不能超过 10MB!');
+ }
+ return isLt2M;
+ },
+ handleRemove(file, fileList) {
+ TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
+ return item.uid != file.uid;
+ });
+ },
+ },
+ created() {
+ },
+ });
+ var selectElement = document.getElementById('store');
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+
+ selectElement.addEventListener('change',function () {
+ if (selectElement.value !== ''){
+ startTime.disabled = false;
+ endTime.disabled = false;
+ }else{
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_lock.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_lock.html
new file mode 100644
index 0000000..0abd02f
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_lock.html
@@ -0,0 +1,62 @@
+@layout("/common/_container.html"){
+<style>
+
+ .ibox-content {
+ text-align: center;
+ }
+
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+ <div class="ibox-content">
+ <div class="form-horizontal" id="carInfoForm"><h2 style="margin-bottom: 20px"> 锁定场地 </h2>
+ <div class="form-group" style="margin-left: 225px" >
+ <label class="col-sm-3 control-label">锁定时间:</label>
+ <div class="col-sm-9" style="display: flex">
+ <input style="width: 200px;" value="开始时间" id="start-time" class="form-control" type="datetime-local">
+ <span style="margin-top: 7px"> 至 </span>
+ <input style="width: 200px;" value="结束时间" id="end-time" class="form-control" type="datetime-local">
+ <span> </span>
+ <#button btnCss="info" name="添加" id="${id}" icon="fa-check" clickFun="TSiteLock.add(${id})"/>
+ </div>
+ </div>
+ <div class="form-group" style="margin-left: 150px" >
+ <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px">
+ <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="lockTable">
+ <thead>
+ <tr>
+ <td hidden>主键id</td>
+ <td>开始时间</td>
+ <td>结束时间</td>
+ <td>操作</td>
+ </tr>
+ </thead>
+ <tbody id="coun">
+ @for(obj in list){
+ <tr class="timeClass">
+ <td><span>${obj.ssTime}</span></td>
+ <td><span>${obj.eeTime}</span></td>
+ <td><button id = "${obj.id}" onclick="TSiteLock.delete(this)">删除</button></td>
+ </tr>
+ @}
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row btn-group-m-t" style="margin-left: 145px">
+ <div class="col-sm-10 col-sm-offset-5" >
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSiteLock.close()"/>
+ </div>
+ </div>
+</div>
+
+<script src="${ctxPath}/modular/system/tSite/tSiteLock.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+<script>
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js b/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js
index d3b88c0..e352129 100644
--- a/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js
+++ b/cloud-server-management/src/main/webapp/static/js/common/ajax-object.js
@@ -62,5 +62,5 @@
};
window.$ax = $ax;
-
+
} ());
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js b/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js
index ad01d19..c8fd52c 100644
--- a/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js
+++ b/cloud-server-management/src/main/webapp/static/js/common/web-upload-file.js
@@ -3,6 +3,7 @@
*/
// 开始上传文件
function UploadFileFn() {
+ console.log("上传文件")
$("#progressBarFile").html("0%").css("width", "0%");
var upFile = $("#upFile").get(0).files[0]; //input file标签
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js
new file mode 100644
index 0000000..ec2ea1b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js
@@ -0,0 +1,340 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '分类名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '所在位置', field: 'position', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"先上课得积分",2:"看视频得奖励"}[data]
+ }
+ },
+ {title: '视频数', field: 'count', visible: true, align: 'center', valign: 'middle'},
+ {title: '排序', field: 'sort', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"上架中",2:"下架中",3:"已失效"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/add'
+ });
+ this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+
+TQuestion.addSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+
+
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['position'] = $("#position").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+ $("#name").val('');
+ $("#position").val('');
+ TQuestion.search();
+};
+
+$(function () {
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/benefits/list", defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
new file mode 100644
index 0000000..77df638
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
@@ -0,0 +1,361 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: 'benefitsVideosId', field: 'benefitsVideosId', visible: false, align: 'center', valign: 'middle'},
+ {title: '视频类型', field: 'type', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"课后练习",2:"运动教学视频",3:"器材教学视频"}[data]
+ }
+ },
+ {title: '视频封面', field: 'coverDrawing', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ value = typeof value == "undefined" || value == '' ? '/static/img/NoPIC.png' : value;
+ return '<img src="' + value + '" style="height: 100px;"/>'
+ }
+ },
+ {title: '视频名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '视频简介', field: 'introduce', visible: true, align: 'center', valign: 'middle'},
+ {title: '可获积分', field: 'integral', visible: true, align: 'center', valign: 'middle'},
+ {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"上架中",2:"下架中",3:"已失效"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var val = $("#id").val();
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/addBenefitsVideos/'+val
+ });
+ this.layerIndex = index;
+};
+
+
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/infoBenefitsVideos/' + TQuestion.seItem.id+'/'+1
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ console.log("看看")
+ console.log();
+ if(selected.length >1 ){
+ Feng.info("只能选择一个进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/infoBenefitsVideos/' + TQuestion.seItem.id+'/'+2+'/'+selected[0]['benefitsVideosId']
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情的详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/infoBenefitsVideos/' + TQuestion.seItem.id+'/'+1+'/'+selected[0]['benefitsVideosId']
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+
+TQuestion.addSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+
+
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#position").val();
+ queryData['state'] = $("#state").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+ $("#name").val('');
+ $("#state").val('');
+ $("#position").val('');
+ TQuestion.search();
+};
+function UploadFileFn(){
+ $('#upFile').click();
+}
+$(function () {
+
+ var val = $("#id").val();
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/benefits/listBenefitsVideos/"+val, defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js
new file mode 100644
index 0000000..42406f6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js
@@ -0,0 +1,393 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '视频类型', field: 'type', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"课后练习",2:"运动教学视频",3:"器材教学视频"}[data]
+ }
+ },
+ {title: '视频封面', field: 'coverDrawing', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ value = typeof value == "undefined" || value == '' ? '/static/img/NoPIC.png' : value;
+ return '<img src="' + value + '" style="height: 100px;"/>'
+ }
+ },
+ {title: '视频名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '视频简介', field: 'introduce', visible: true, align: 'center', valign: 'middle'},
+ {title: '可获积分', field: 'integral', visible: true, align: 'center', valign: 'middle'},
+ {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"上架中",2:"下架中",3:"已失效"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+/**
+ * 选择视频 回显视频封面
+ * @param e
+ */
+TQuestion.oneChange = function (e) {
+ var id = $("#name").val();
+ var ajax = new $ax(Feng.ctxPath + "/benefits/getCoverDrawing/"+id, function(data){
+ document.getElementById('img').src = data.coverDrawing;
+ $("#introduce").val(data.introduce);
+ });
+ ajax.set("id",id);
+ ajax.start();
+};
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/add'
+ });
+ this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+
+TQuestion.addSubmit = function(){
+ var data = {
+ benefitsVideoClassificationId:null,
+ courseId:"",
+ integral:""
+ };
+ data.courseId = $("#name").val()
+ data.benefitsVideoClassificationId = $("#id").val()
+ data.integral = $("#integral").val()
+
+ if($("#name").val()==''){
+ Feng.info("请选择视频")
+ return;
+ }
+
+ if($("#integral").val()==''){
+ Feng.info("请输入可获积分")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefitsVideos" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ if (response === 500){
+ Feng.error("所选视频已经存在于当前福利视频分类下!");
+ }else{
+ Feng.success("添加成功");
+ }
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+};
+// 视频详情编辑提交按钮
+TQuestion.updateVideosSubmit = function(){
+ var data = {
+ id:null,
+ integral:null
+ };
+ data.id = $("#benefitsVideosId").val()
+ data.integral = $("#integral").val()
+ if($("#integral").val()==''){
+ Feng.info("请输入可获积分")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefitsVideos" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+};
+
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#position").val();
+ queryData['state'] = $("#state").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+ $("#name").val('');
+ $("#state").val('');
+ $("#position").val('');
+ TQuestion.search();
+};
+/**
+ * 关闭此对话框
+ */
+TQuestion.close = function() {
+ parent.layer.close(window.parent.TQuestion.layerIndex);
+}
+
+$(function () {
+ var val = $("#id").val();
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/benefits/listBenefitsVideos/"+val, defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+ var carPhoto = new $WebUpload("img");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js
new file mode 100644
index 0000000..612e13b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js
@@ -0,0 +1,350 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '视频类型', field: 'type', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"课后练习",2:"运动教学视频",3:"器材教学视频"}[data]
+ }
+ },
+ {title: '视频封面', field: 'coverDrawing', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ value = typeof value == "undefined" || value == '' ? '/static/img/NoPIC.png' : value;
+ return '<img src="' + value + '" style="height: 100px;"/>'
+ }
+ },
+ {title: '视频名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '视频简介', field: 'introduce', visible: true, align: 'center', valign: 'middle'},
+ {title: '可获积分', field: 'integral', visible: true, align: 'center', valign: 'middle'},
+ {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"上架中",2:"下架中",3:"已失效"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/add'
+ });
+ this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+
+TQuestion.addSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+
+
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#position").val();
+ queryData['state'] = $("#state").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+ $("#name").val('');
+ $("#state").val('');
+ $("#position").val('');
+ TQuestion.search();
+};
+
+$(function () {
+ var val = $("#id").val();
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/benefits/listBenefitsVideos/"+val, defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js
new file mode 100644
index 0000000..8f7d79b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js
@@ -0,0 +1,426 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所在省市', field: 'provinceAndCity', visible: true, align: 'center', valign: 'middle'},
+ {title: '预约门店', field: 'storeName', visible: true, align: 'center', valign: 'middle'},
+ {title: '家长姓名', field: 'parentName', visible: true, align: 'center', valign: 'middle'},
+ {title: '家长联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+ {title: '学员姓名', field: 'learnerName', visible: true, align: 'center', valign: 'middle'},
+ {title: '学员年龄', field: 'learnerAge', visible: true, align: 'center', valign: 'middle'},
+ {title: '学员生日', field: 'birthday', visible: true, align: 'center', valign: 'middle'},
+ {title: '预约时间', field: 'appointmentTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"未测试",2:"已测试"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/bodySideAppointment/add'
+ });
+ this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var ids=[];
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ ids.push(id);
+ });
+ $.ajax({
+ url: Feng.ctxPath + "/bodySideAppointment/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(ids), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/bodySideAppointment/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+TQuestion.oneChange = function () {
+ var province = $('#pCode option:selected').text();
+ var citySelect = document.getElementById("cCode");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.cityCode+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (province === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ }
+ ajax.set("province",province);
+ ajax.start();
+};
+
+TQuestion.oneChangeNext = function (e) {
+ var oneId=$(e).val();
+ var city = $('#cCode option:selected').text();
+
+ var citySelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ if (oneId === ""){
+ citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ }
+ var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ if(data!=null && data.length !== 0){
+ var content='<option value="">选择门店</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#store").empty().append(content);
+ }else {
+ storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ }
+ });
+ ajax1.set("oneId",city);
+ ajax1.start();
+};
+TQuestion.addSubmit = function(){
+
+ var data = {
+ id:null,
+ province:"",
+ provinceCode:"",
+ city:"",
+ cityCode:"",
+ storeId:null,
+ storeName:"",
+ parentName:"",
+ phone:"",
+ learnerName:"",
+ learnerAge:null,
+ birthday:"",
+ appointmentTime:"",
+ status:null,
+ state:null
+ };
+ data.id = $("#name").val()
+ data.province = $('#pCode option:selected').text();
+ data.provinceCode = $("#pCode").val()
+ data.city = $('#cCode option:selected').text();
+ data.cityCode = $("#cCode").val()
+ data.storeId = $("#store").val()
+ data.storeName = $('#store option:selected').text();
+ data.parentName = $("#parentName").val()
+ data.phone = $("#phone").val()
+ data.learnerName = $("#learnerName").val()
+ data.learnerAge = $("#learnerAge").val()
+ data.birthday = $("#birthday").val()
+ data.appointmentTime = $("#appointmentTime").val().replace("T"," ")
+ console.log("看看")
+ console.log(data.appointmentTime);
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#store").val()=='' ){
+ Feng.info("请选择门店")
+ return;
+ }
+ if($("#parentName").val()=='' ){
+ Feng.info("请输入家长姓名")
+ return;
+ }
+
+ if($("#phone").val()=='' ){
+ Feng.info("请输入家长联系方式")
+ return;
+ }
+ if($("#learnerName").val()=='' ){
+ Feng.info("请输入学员姓名")
+ return;
+ }
+ if($("#learnerAge").val()=='' ){
+ Feng.info("请输入学员年龄")
+ return;
+ }
+ if($("#birthday").val()=='' ){
+ Feng.info("请选择学员生日")
+ return;
+ }
+ if($("#appointmentTime").val()=='' ){
+ Feng.info("请选择预约时间")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/bodySideAppointment/addBodySideAppointments" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+
+};
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['phone'] = $("#phone").val();
+ queryData['parentName'] = $("#parentName").val();
+ queryData['state'] = $("#state").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+
+ $("#phone").val('');
+ $("#parentName").val('');
+ $("#state").val('');
+ TQuestion.search();
+};
+
+$(function () {
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/bodySideAppointment/listAll", defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js
new file mode 100644
index 0000000..612e13b
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js
@@ -0,0 +1,350 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+ id: "TQuestionTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '视频类型', field: 'type', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"课后练习",2:"运动教学视频",3:"器材教学视频"}[data]
+ }
+ },
+ {title: '视频封面', field: 'coverDrawing', visible: true, align: 'center', valign: 'middle',
+ formatter: function (value, row, index) {
+ value = typeof value == "undefined" || value == '' ? '/static/img/NoPIC.png' : value;
+ return '<img src="' + value + '" style="height: 100px;"/>'
+ }
+ },
+ {title: '视频名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+ {title: '视频简介', field: 'introduce', visible: true, align: 'center', valign: 'middle'},
+ {title: '可获积分', field: 'integral', visible: true, align: 'center', valign: 'middle'},
+ {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'},
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"上架中",2:"下架中",3:"已失效"}[data]
+ }}
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TQuestion.seItem = selected[0];
+ return true;
+ }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+ var index = layer.open({
+ type: 2,
+ title: '添加分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/add'
+ });
+ this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ var index = layer.open({
+ type: 2,
+ title: '编辑分类',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TQuestion.search();
+
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 查看详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一条进行查看!");
+ }else {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+ var index = layer.open({
+ type: 2,
+ title: '详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 3;
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/changeCourseState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("删除成功!");
+ TQuestion.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ }
+};
+
+TQuestion.addSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+
+
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+TQuestion.updateSubmit = function(){
+ var data = {
+ id:null,
+ name:"",
+ position:"",
+ sort:"",
+ };
+ data.name = $("#name").val()
+ data.position = $("#position").val()
+ data.sort = $("#sort").val()
+ data.id = $("#dataId").val()
+ if($("#name").val()==''){
+ Feng.info("请输入分类名称")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择所在位置")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请输入排序")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/benefits/addBenefits" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function () {
+ var queryData = {};
+ queryData['name'] = $("#name").val();
+ queryData['type'] = $("#position").val();
+ queryData['state'] = $("#state").val();
+ TQuestion.table.refresh({query: queryData});
+};
+
+
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+ $("#name").val('');
+ $("#state").val('');
+ $("#position").val('');
+ TQuestion.search();
+};
+
+$(function () {
+ var val = $("#id").val();
+ var defaultColunms = TQuestion.initColumn();
+ var table = new BSTable(TQuestion.id, "/benefits/listBenefitsVideos/"+val, defaultColunms);
+ table.setPaginationType("client");
+ TQuestion.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackageType/coursePackageType.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackageType/coursePackageType.js
new file mode 100644
index 0000000..21e5424
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackageType/coursePackageType.js
@@ -0,0 +1,318 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSite = {
+ id: "TSiteTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TSite.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '类型名称', field: 'name', visible: true, align: 'center', valign: 'middle'
+ },
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TSite.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TSite.seItem = selected[0];
+ return true;
+ }
+};
+TSite.oneChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择市</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+
+TSite.del = function () {
+ if (this.check()) {
+ let id = this.seItem.id;
+ let name = TSite.seItem.name
+ var operation = function(){
+ var data1={
+ id:id,
+ name:name,
+ state:null
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/coursePackageType/delete",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ window.location.reload();
+ window.parent.layer.closeAll();
+ if (response === 200) {
+ Feng.success("删除成功!");
+ window.location.reload();
+ window.parent.layer.closeAll();
+ }else{
+ Feng.error("当前课包类型正在被使用,无法删除!");
+ }
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ layer.closeAll();
+ }
+ Feng.confirm("确认删除该信息?", operation);
+ }
+
+};
+/**
+ * 点击添加跨城站点管理
+ */
+TSite.openAddTSite = function () {
+ var index = layer.load(1,{
+ type: 1
+ , title: '添加场地类型'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" >' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">类型名称:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input class="form-control" type="text" id="name"> '+
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['关闭', '保存']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ ,load:1
+ , yes: function () {
+ layer.closeAll();
+ },
+ btn2:function () {
+ let name = $("#name").val()
+ if(name==''){
+ Feng.info("请输入类型名称")
+ return false;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/coursePackageType/add", function (data) {
+ if (data === 200) {
+ Feng.success("操作成功!");
+ window.location.reload();
+ window.parent.layer.closeAll();
+ }else{
+ Feng.error("当前课包类型已存在!");
+ }
+ }, function (data) {
+ Feng.error("操作失败!")
+ });
+ ajax.set("name", name);
+ ajax.start();
+ layer.closeAll();
+ }
+ });
+
+ this.layerIndex = index;
+};
+
+
+
+
+/**
+ * 打开查看跨城站点管理详情
+ */
+TSite.openTSiteDetail = function () {
+
+ if (this.check()) {
+ let id = TSite.seItem.id
+ let name = TSite.seItem.name
+ var index = layer.load(1,{
+ type: 1
+ , title: '编辑场地类型'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" >' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">类型名称:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input class="form-control" type="text" id="name" value='+name+'> '+
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['关闭', '保存']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ ,load:1
+ , yes: function () {
+ layer.closeAll();
+ },
+ btn2:function () {
+ let name = $("#name").val()
+ if(name==''){
+ Feng.info("请输入类型名称")
+ return false;
+ }
+ var data1={
+ id:id,
+ name:name,
+ state:null
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/coursePackageType/update",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ window.location.reload();
+ window.parent.layer.closeAll();
+ if (response === 200) {
+ Feng.success("修改成功!");
+ window.location.reload();
+ window.parent.layer.closeAll();
+ }else{
+ Feng.error("当前课包类型已存在!");
+ }
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ layer.closeAll();
+ }
+ });
+
+ this.layerIndex = index;
+ }
+};
+
+/**
+ * 操作跨城站点管理
+ */
+TSite.opt = function (type) {
+ if (this.check()) {
+ var name = TSite.seItem.name;
+ if (name == "" || name == null || name == undefined) {
+ name = "该站点";
+ } else {
+ name = "【" + name + "】";
+ }
+ var str = "";
+ var text = "请谨慎操作!";
+ var title = "请谨慎操作!";
+ if (1 == type){
+ str = "删除";
+ title = "您是否确认删除"+name+"?";
+ text = "请谨慎操作,删除后数据无法恢复!";
+ } else if (2 == type){
+ str = "冻结";
+ title = "您是否确认冻结"+name+"?";
+ } else if (3 == type){
+ str = "解冻";
+ title = "您是否确认解冻"+name+"?";
+ }
+ if (1 == type){
+ if (TSite.seItem.lineNum != "" && TSite.seItem.lineNum != null && TSite.seItem.lineNum > 0) {
+ swal("删除失败", "该站点还有关联线路!", "warning");
+ return;
+ }
+ }
+ if(2 == type){
+ if (TSite.seItem.state != 1) {
+ swal("冻结失败", "【正常】状态下才能执行此操作!", "warning");
+ return;
+ }
+ }
+ if (3 == type){
+ if (TSite.seItem.state != 2){
+ swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning");
+ return;
+ }
+ }
+
+ swal({
+ title: title,
+ text: text,
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: str,
+ closeOnConfirm: true
+ }, function () {
+ var ajax = new $ax(Feng.ctxPath + "/tSite/opt", function (data) {
+ swal(str+"成功", "您已经"+str+"了" + name + "。", "success");
+ TSite.table.refresh();
+ }, function (data) {
+ swal(str+"失败", data.responseJSON.message + "!", "warning");
+ });
+ ajax.set("tSiteId",TSite.seItem.id);
+ ajax.set("optType", type);
+ ajax.start();
+ });
+ }
+};
+
+/**
+ * 查询跨城站点管理列表
+ */
+TSite.search = function () {
+ var queryData = {};
+ queryData['insertTime'] = $("#insertTime").val();
+ queryData['name'] = $("#name").val();
+ queryData['insertUser'] = $("#insertUser").val();
+ queryData['city'] = $("#city").val();
+ queryData['state'] = $("#state").val();
+ TSite.table.refresh({query: queryData});
+};
+
+TSite.resetSearch = function () {
+ $("#insertTime").val("");
+ $("#name").val("");
+ $("#insertUser").val("");
+ $("#city").val("");
+ $("#state").val("");
+ TSite.search();
+};
+
+$(function () {
+ var defaultColunms = TSite.initColumn();
+ var table = new BSTable(TSite.id, "/coursePackageType/list", defaultColunms);
+ table.setPaginationType("client");
+ TSite.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js
new file mode 100644
index 0000000..a4ba943
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js
@@ -0,0 +1,527 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSite = {
+ id: "TSiteTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+ picture:"",
+ fileUrl:"",
+ img:"",
+ plan:"",
+ goodsPicArray:[],
+ validateFields: {
+ }
+};
+var objectType =$("#objectType").val()
+/**
+ * 初始化表格的列
+ */
+TSite.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所在省', field: 'province', visible: objectType==1?true:false, align: 'center', valign: 'middle',width:'20%',
+ },
+ {title: '所在市', field: 'city', visible: objectType==1?true:false, align: 'center', valign: 'middle',
+ },
+ {title: '所属账号', field: 'nameAndPhone', visible: true, align: 'center', valign: 'middle'},
+ {title: '教练类型', field: 'coachTypeName', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '性别', field: 'gender', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"男",2:"女"}[data]
+ }
+ },
+ {title: '生日', field: 'birthday', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"正常",2:"冻结"}[data]
+ }
+ }
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TSite.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TSite.seItem = selected[0];
+ return true;
+ }
+};
+/**
+ * 上架
+ */
+
+TSite.onShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ type:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 1;
+
+ $.ajax({
+ url: Feng.ctxPath + "/tCoach/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 下架
+ */
+TSite.offShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ ids:[],
+ state:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.ids.push(id);
+ });
+ data1.state = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/tCoach/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+TSite.uploadFile = function(){
+ var elementById = document.getElementById("uploadFile");
+ var file = elementById.files[0];
+ var formData = new FormData();
+ formData.append('file',file);
+ $.ajax({
+ url: Feng.ctxPath + "/tCouponManage/uploadPic" ,
+ type: "POST",
+ data: formData,
+ contentType: false, // 设置为false,让浏览器自动识别并设置请求头
+ processData: false, // 设置为false,不处理发送的数据(因为FormData对象已经包含了文件数据)
+ success: function (response) {
+ TSite.fileUrl = response;
+ console.log(TSite.fileUrl);
+ Feng.success("文件上传成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("文件上传失败!" + error);
+ }
+ });
+};
+TSite.getChange = function(e){
+ var oneId=$(e).val();
+ var selectedValue = e.value;
+ var citySelect = document.getElementById("cCode");
+
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getChange", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.name+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (selectedValue === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ }
+ ajax.set("province",oneId);
+ ajax.start();
+};
+// 场地管理首页 选择对应的省市
+// 传1是场地管理首页 传2是场地管理添加页面
+TSite.oneChange = function (e) {
+ var province = $('#pCode option:selected').text();
+ // var province = $('#pCode option:selected').text();
+ // var val = $('#pCode option:selected').val();
+ var citySelect = document.getElementById("cCode");
+ var ajax = new $ax(Feng.ctxPath + "/tCoach/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.cityCode+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (province === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ }
+
+ ajax.set("province",province);
+ ajax.start();
+};
+
+TSite.oneChangeNext = function (e) {
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+
+ var oneId=$(e).val();
+ var citySelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
+ if(data!=null){
+ var content='<option value="">选择账号</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#account").empty().append(content);
+ }
+ });
+ if (oneId === ""){
+ citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ ajax.set("oneId",oneId);
+ ajax.start();
+
+ var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ if(data!=null && data.length !== 0){
+ var content='<option value="">选择门店</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#store").empty().append(content);
+ }else {
+ storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ }
+ });
+ ajax1.set("oneId",oneId);
+ ajax1.start();
+};
+/**
+ * 跳转添加场地页面
+ */
+TSite.openAddTSite = function () {
+
+ var index = layer.open({
+ type: 2,
+ title: "添加场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tCoach/addCoach'
+ });
+ this.layerIndex = index;
+};
+/**
+ * 跳转锁定场地页面
+ */
+TSite.lock = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个场地进行锁定!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "锁定场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/lockSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理查看详情
+ */
+TSite.openInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "查看详情",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tCoach/infoCoach/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理编辑
+ */
+TSite.openEditTSite = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个教练进行编辑!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "编辑教练",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tCoach/updateCoach/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 关闭此对话框
+ */
+TSite.close = function() {
+ parent.layer.close(window.parent.TSite.layerIndex);
+}
+
+var sh = ""; // 门店经营开始时间:小时
+var sm = "";// 门店经营开始时间:分钟
+var eh = "";// 门店经营结束时间:小时
+var em = "";// 门店经营结束时间:分钟
+
+TSite.addSubmit = function(){
+
+ var data = {
+ province:"",
+ city:"",
+ cityManagerId:"",
+ storeId:"",
+ siteTypeId:null,
+ appointmentStartTime:"",
+ appointmentEndTime:"",
+ cashPrice:null,
+ playPaiCoin:null,
+ insuranceEndTime:"",
+ name:"",
+ insuranceImg:"",
+ managementPlan:""
+ };
+ data.province = $("#pCode").val()
+ data.city = $("#cCode").val()
+ data.cityManagerId = $("#account").val()
+ data.storeId = $("#store").val()
+ data.siteTypeId = $("#siteTypeId").val()
+ data.appointmentStartTime= $("#start-time").val()
+ data.appointmentEndTime = $("#end-time").val()
+ data.cashPrice = $("#cashPrice").val()
+ data.playPaiCoin = $("#playPaiCoin").val()
+ data.insuranceEndTime = $("#insuranceEndTime").val()
+ data.name = $("#name").val()
+ data.insuranceImg = $("#img").val()
+ data.managementPlan = $('#courseVideo').val()
+ var sh =data.appointmentStartTime.split(':')[0];
+ var sm =data.appointmentStartTime.split(':')[1];
+ var eh =data.appointmentEndTime.split(':')[0];
+ var em =data.appointmentEndTime.split(':')[1];
+
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请选择账号")
+ return;
+ }
+ if($("#store").val()=='' ){
+ Feng.info("请选择门店")
+ return;
+ }
+ if($("#siteTypeId").val()=='' ){
+ Feng.info("请选择场地类型")
+ return;
+ }
+ if($("#name").val()==''){
+ Feng.info("请输入场地名称")
+ return;
+ }
+ if($("#start-time").val()=='' ){
+ Feng.info("请输入可预约时间段 开始时间")
+ return;
+ }
+ if($("#end-time").val()==''){
+ Feng.info("请输入可预约时间段 结束时间")
+ return;
+ }
+ if($("#cashPrice").val()==''){
+ Feng.info("请输入现金价格")
+ return;
+ }
+ if($("#playPaiCoin").val()==''){
+ Feng.info("请输入玩湃币价格")
+ return;
+ }
+ if($("#insuranceEndTime").val()==''){
+ Feng.info("请输入场地责任险有效期")
+ return;
+ }
+
+ if($("#img").val()==''){
+ Feng.info("请上传场地责任有效期图片")
+ return;
+ }
+ if($('#courseVideo').val()==''){
+ Feng.info("请上传消防及应急管理方案")
+ return;
+ }
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = ""; //门店的经营开始时间
+ var rEtime = ""; //门店的经营结束时间
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ rStime = response.startTime;
+ sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+
+ rEtime = response.endTime;
+ eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ return false;
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ return false;
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ return false;
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ return false;
+ }
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ return ;
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ return ;
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ return ;
+ }
+ if (Number(endHour)===Number(sh)){
+ if(Number(endMinute) < Number(sm)){
+ Feng.error("预约结束时间不应小于营业开始时间");
+ return;
+ }
+ }
+ if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){
+ Feng.error("至少预约半个小时");
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/addSite" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ TSite.search();
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ },
+ error: function (xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ return false;
+ }
+ });
+};
+
+TSite.search = function () {
+ var queryData = {};
+ if ($("#pCode").val() === ""){
+ queryData['province'] = ""
+ }else{
+ queryData['province'] = $('#pCode option:selected').text();
+ }
+ if ($("#cCode").val() === ""){
+ queryData['city'] = ""
+ }else {
+ queryData['city'] = $('#cCode option:selected').text();
+ }
+ queryData['name'] = $("#name").val();
+ queryData['phone'] = $("#phone").val();
+ TSite.table.refresh({query: queryData});
+};
+
+TSite.resetSearch = function () {
+ $("#pCode").val("");
+ $("#cCode").val("");
+ $("#name").val("");
+ $("#phone").val("");
+ TSite.search();
+};
+
+function UploadFileFn(){
+ $('#upFile').click();
+}
+
+$(function () {
+ var defaultColunms = TSite.initColumn();
+ var table = new BSTable(TSite.id, "/tCoach/list", defaultColunms);
+ table.setPaginationType("client");
+ TSite.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js
new file mode 100644
index 0000000..8c1338e
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js
@@ -0,0 +1,471 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSite = {
+ id: "TSiteTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1,
+ picture:"",
+ fileUrl:"",
+ img:"",
+ plan:"",
+ goodsPicArray:[],
+ validateFields: {
+ }
+};
+var objectType =$("#objectType").val()
+/**
+ * 初始化表格的列
+ */
+TSite.initColumn = function () {
+ return [
+ {field: 'selectItem', checkbox: true},
+ {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '所在省', field: 'province', visible: objectType==1?true:false, align: 'center', valign: 'middle',width:'20%',
+ },
+ {title: '所在市', field: 'city', visible: objectType==1?true:false, align: 'center', valign: 'middle',
+ },
+ {title: '所属账号', field: 'nameAndPhone', visible: true, align: 'center', valign: 'middle'},
+ {title: '教练类型', field: 'coachTypeName', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '性别', field: 'gender', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"男",2:"女"}[data]
+ }
+ },
+ {title: '生日', field: 'birthday', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+ formatter:function (data) {
+ return {1:"正常",2:"冻结"}[data]
+ }
+ }
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TSite.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TSite.seItem = selected[0];
+ return true;
+ }
+};
+/**
+ * 上架
+ */
+
+TSite.onShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ siteIds:[],
+ type:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.siteIds.push(id);
+ });
+ data1.type = 1;
+
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+/**
+ * 下架
+ */
+TSite.offShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ siteIds:[],
+ type:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.siteIds.push(id);
+ });
+ data1.type = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+TSite.uploadFile = function(){
+ var elementById = document.getElementById("uploadFile");
+ var file = elementById.files[0];
+ var formData = new FormData();
+ formData.append('file',file);
+ $.ajax({
+ url: Feng.ctxPath + "/tCouponManage/uploadPic" ,
+ type: "POST",
+ data: formData,
+ contentType: false, // 设置为false,让浏览器自动识别并设置请求头
+ processData: false, // 设置为false,不处理发送的数据(因为FormData对象已经包含了文件数据)
+ success: function (response) {
+ TSite.fileUrl = response;
+ console.log(TSite.fileUrl);
+ Feng.success("文件上传成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("文件上传失败!" + error);
+ }
+ });
+};
+TSite.getChange = function(e){
+ var oneId=$(e).val();
+ var selectedValue = e.value;
+ var citySelect = document.getElementById("cCode");
+
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getChange", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.name+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (selectedValue === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ }
+ ajax.set("province",oneId);
+ ajax.start();
+};
+// 场地管理首页 选择对应的省市
+// 传1是场地管理首页 传2是场地管理添加页面
+TSite.oneChange = function () {
+ var province = $('#pCode option:selected').text();
+ var citySelect = document.getElementById("cCode");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.cityCode+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (province === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ $("#cCode").innerHTML = '<option value="">请先选择省/市</option>';
+ }
+
+ ajax.set("province",province);
+ ajax.start();
+};
+
+TSite.oneChangeNext = function (e) {
+ var oneId=$(e).val();
+ var city = $('#cCode option:selected').text();
+ var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
+ if(data!=null){
+ var content='<option value="">选择账号</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#account").empty().append(content);
+ }
+ });
+ if (oneId === ""){
+ $("#account").innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+
+ }
+ ajax.set("oneId",city);
+ ajax.start();
+
+ // var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ // if(data!=null && data.length !== 0){
+ // var content='<option value="">选择门店</option>';
+ // $.each(data, function(k,v) {
+ // content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ // });
+ // $("#store").empty().append(content);
+ // }else {
+ // storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ // }
+ // });
+ // ajax1.set("oneId",oneId);
+ // ajax1.start();
+};
+
+/**
+ * 跳转添加场地页面
+ */
+TSite.openAddTSite = function () {
+
+ var index = layer.open({
+ type: 2,
+ title: "添加场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/add'
+ });
+ this.layerIndex = index;
+};
+/**
+ * 跳转锁定场地页面
+ */
+TSite.lock = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个场地进行锁定!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "锁定场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/lockSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理查看详情
+ */
+TSite.openInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "查看详情",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/openInfoTSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理编辑
+ */
+TSite.openEditTSite = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "编辑场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/openEditTSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 关闭此对话框
+ */
+TSite.close = function() {
+ parent.layer.close(window.parent.TSite.layerIndex);
+}
+
+var sh = ""; // 门店经营开始时间:小时
+var sm = "";// 门店经营开始时间:分钟
+var eh = "";// 门店经营结束时间:小时
+var em = "";// 门店经营结束时间:分钟
+
+TSite.addSubmit = function(){
+
+
+ var data = {
+ id:null,
+ province:"",
+ provinceCode:"",
+ city:"",
+ cityCode:"",
+ cityManagerId:null,
+ coachTypeId:null,
+ name:"",
+ birthday:"",
+ gender:null,
+ phone:"",
+ idcard:"",
+ height:null,
+ weight:null,
+ graduateSchool:"",
+ diploma:"",
+ certificate:"",
+ certificateImg:"",
+ };
+ if ($("#dataId").val()!=="undefined"){
+ data.id = $("#dataId").val();
+ }
+ data.provinceCode = $("#pCode").val()
+ data.province = $('#pCode option:selected').text();
+ data.cityCode = $("#cCode").val()
+ data.city = $('#cCode option:selected').text();
+ data.cityManagerId = $("#account").val()
+ data.coachTypeId = $("#coachTypeId").val()
+ data.name = $("#name").val()
+ data.birthday = $("#birthday").val()
+ data.gender = $("#gender").val()
+ data.phone = $("#phone").val()
+ data.idcard = $("#idcard").val()
+ data.height = $("#height").val()
+ data.weight = $("#weight").val()
+ data.graduateSchool = $('#graduateSchool').val()
+ data.diploma = $('#img').val()
+ data.certificate = $('#certificate').val()
+
+ var temp = ""
+ TSite.goodsPicArray.forEach(function (data) {
+ temp = temp+","+data
+ });
+ data.certificateImg = temp
+
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请选择账号")
+ return;
+ }
+ if($("#coachTypeId").val()=='' ){
+ Feng.info("请选择教练类型")
+ return;
+ }
+ if($("#name").val()=='' ){
+ Feng.info("请输入教练名称")
+ return;
+ }
+ if($("#birthday").val()==''){
+ Feng.info("请输入教练生日")
+ return;
+ }
+ if($("#gender").val()=='' ){
+ Feng.info("请选择教练性别")
+ return;
+ }
+ if($("#phone").val()==''){
+ Feng.info("请输入教练电话")
+ return;
+ }
+ if($("#idcard").val()==''){
+ Feng.info("请输入教练身份证号")
+ return;
+ }
+ if($("#height").val()==''){
+ Feng.info("请输入教练身高")
+ return;
+ }
+ if($("#weight").val()==''){
+ Feng.info("请输入教练体重")
+ return;
+ }
+ if($("#graduateSchool").val()==''){
+ Feng.info("请输入毕业院校")
+ return;
+ }
+ if($("#img").val()==''){
+ Feng.info("请输入毕业证图片")
+ return;
+ }
+ if($("#certificate").val()==''){
+ Feng.info("请输入资格证书")
+ return;
+ }
+ if(TSite.goodsPicArray.length === 0){
+ Feng.info("请上传资格证书图片")
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tCoach/add" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ TSite.search();
+};
+
+TSite.search = function () {
+ var queryData = {};
+ queryData['province'] = $('#pCode option:selected').text();
+ queryData['city'] = $('#cCode option:selected').text();
+ queryData['name'] = $("#name").val();
+ queryData['phone'] = $("#phone").val();
+ TSite.table.refresh({query: queryData});
+};
+
+TSite.resetSearch = function () {
+ $("#pCode").val("");
+ $("#cCode").val("");
+ $("#name").val("");
+ $("#phone").val("");
+ TSite.search();
+};
+
+function UploadFileFn(){
+ $('#upFile').click();
+}
+
+$(function () {
+
+ var defaultColunms = TSite.initColumn();
+ var table = new BSTable(TSite.id, "/tCoach/list", defaultColunms);
+ table.setPaginationType("client");
+ TSite.table = table.init();
+ var carPhoto = new $WebUpload("img");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js
new file mode 100644
index 0000000..b0b9dbc
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js
@@ -0,0 +1,393 @@
+/**
+ * 初始化车辆管理详情对话框
+ */
+var language=1;
+var TSiteInfo = {
+ layerIndex: -1,
+ validateFields: {
+ }
+};
+
+/**
+ * 验证数据是否为空
+ */
+TSiteInfo.validate = function () {
+ $('#carInfoForm').data("bootstrapValidator").resetForm();
+ $('#carInfoForm').bootstrapValidator('validate');
+ return $("#carInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 清除数据
+ */
+TSiteInfo.clearData = function() {
+ this.tCarInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TSiteInfo.set = function(key, val) {
+ this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+ return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TSiteInfo.get = function(key) {
+ return $("#" + key).val();
+}
+
+// 场地管理首页 选择对应的省市
+TSiteInfo.oneChange = function (e) {
+ var oneId=$(e).val();
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+ var selectedValue = e.value;
+ var citySelect = document.getElementById("cCode");
+ var accountSelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.city+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (selectedValue === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ accountSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ ajax.set("province",oneId);
+ ajax.start();
+};
+TSiteInfo.oneChangeNext = function (e) {
+ var selectedText = $('#cCode option:selected').text();
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+
+ var citySelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
+ if(data!=null){
+ var content='<option value="">选择账号</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#account").empty().append(content);
+ }
+ });
+ if (selectedText === ""){
+ storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+
+ ajax.set("oneId",selectedText);
+ ajax.start();
+
+ var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ if(data!=null && data.length !== 0){
+ var content='<option value="">选择门店</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#store").empty().append(content);
+ }else {
+ storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ }
+ });
+ ajax1.set("oneId",selectedText);
+ ajax1.start();
+};
+TSiteInfo.getTime = function (e) {
+
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = response.startTime; //门店的经营开始时间
+ var rEtime = response.endTime; //门店的经营结束时间
+
+ var sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ var sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+ console.log("门店经营开始时间")
+ console.log(sh)
+ console.log(sm)
+ rEtime = response.endTime;
+ var eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ var em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+ console.log("门店经营结束时间")
+ console.log(eh)
+ console.log(em)
+ sTime.addEventListener('change',function () {
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ }
+ });
+ eTime.addEventListener('change',function () {
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ }
+ })
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("您的网络异常!");
+ }
+ });
+};
+function UploadFileFn(){
+ $('#upFile').click();
+}
+TSiteInfo.addSubmit = function(){
+ var data = {
+ id:null,
+ province:"",
+ city:"",
+ cityManagerId:"",
+ storeId:"",
+ siteTypeId:null,
+ appointmentStartTime:"",
+ appointmentEndTime:"",
+ cashPrice:null,
+ playPaiCoin:null,
+ insuranceEndTime:"",
+ name:"",
+ insuranceImg:"",
+ managementPlan:""
+ };
+ data.province = $("#pCode").val()
+ data.id = $("#id").val()
+ data.city = $("#cCode").val()
+ data.cityManagerId = $("#account").val()
+ data.storeId = $("#store").val()
+ data.siteTypeId = $("#siteTypeId").val()
+ data.appointmentStartTime= $("#start-time").val()
+ data.appointmentEndTime = $("#end-time").val()
+ data.cashPrice = $("#cashPrice").val()
+ data.playPaiCoin = $("#playPaiCoin").val()
+ data.insuranceEndTime = $("#insuranceEndTime").val()
+ data.name = $("#name").val()
+ data.insuranceImg = $("#img").val()
+ data.managementPlan = $('#courseVideo').val()
+ var sh =data.appointmentStartTime.split(':')[0];
+ var sm =data.appointmentStartTime.split(':')[1];
+ var eh =data.appointmentEndTime.split(':')[0];
+ var em =data.appointmentEndTime.split(':')[1];
+
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请选择账号")
+ return;
+ }
+ if($("#store").val()=='' ){
+ Feng.info("请选择门店")
+ return;
+ }
+ if($("#siteTypeId").val()=='' ){
+ Feng.info("请选择场地类型")
+ return;
+ }
+ if($("#name").val()==''){
+ Feng.info("请输入场地名称")
+ return;
+ }
+ if($("#start-time").val()=='' ){
+ Feng.info("请输入可预约时间段 开始时间")
+ return;
+ }
+ if($("#end-time").val()==''){
+ Feng.info("请输入可预约时间段 结束时间")
+ return;
+ }
+ if($("#cashPrice").val()==''){
+ Feng.info("请输入现金价格")
+ return;
+ }
+ if($("#playPaiCoin").val()==''){
+ Feng.info("请输入玩湃币价格")
+ return;
+ }
+ if($("#insuranceEndTime").val()==''){
+ Feng.info("请输入场地责任险有效期")
+ return;
+ }
+
+ // if($("#img").val()==''){
+ // Feng.info("请上传场地责任有效期图片")
+ // return;
+ // }
+ if($('#courseVideo').val()==''){
+ Feng.info("请上传消防及应急管理方案")
+ return;
+ }
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = ""; //门店的经营开始时间
+ var rEtime = ""; //门店的经营结束时间
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ rStime = response.startTime;
+ sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+
+ rEtime = response.endTime;
+ eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ return false;
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ return false;
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ return false;
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ return false;
+ }
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ return ;
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ return ;
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ return ;
+ }
+ if (Number(endHour)===Number(sh)){
+ if(Number(endMinute) < Number(sm)){
+ Feng.error("预约结束时间不应小于营业开始时间");
+ return;
+ }
+ }
+ if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){
+ Feng.error("至少预约半个小时");
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/updateSite" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("修改成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("修改失败!" + error);
+ }
+ });
+ },
+ error: function (xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ return false;
+ }
+ });
+
+};
+/**
+ * 关闭此对话框
+ */
+TSiteInfo.close = function() {
+ parent.layer.close(window.parent.TSite.layerIndex);
+}
+function UploadFileFn(){
+ $('#upFile').click();
+}
+$(function () {
+ // 限制分钟选项为 0 和 30
+ var timeInputs = document.querySelectorAll('input[type="time"]');
+ timeInputs.forEach(function(input) {
+ input.addEventListener('change', function() {
+ var selectedTime = input.value;
+ var hour = selectedTime.split(':')[0];
+ var minute = selectedTime.split(':')[1];
+ if (minute < 30 &&minute>0) {
+ minute = '30';
+ } else if (minute >30) {
+ hour++;
+ minute = '00';
+ if (hour<10){
+ hour = '0'+hour;
+ }
+ }
+ input.value = hour + ':' + minute;
+
+ });
+ });
+ Feng.initValidator("carInfoForm", TSiteInfo.validateFields);
+ var carPhoto = new $WebUpload("img");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+
+ var carPhoto1 = new $WebUpload("url");
+ carPhoto1.setUploadBarId("progressBar");
+ carPhoto1.init();
+ TSiteInfo.getTime()
+
+
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoachType/tCoachType.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoachType/tCoachType.js
new file mode 100644
index 0000000..8ad8019
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoachType/tCoachType.js
@@ -0,0 +1,297 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSite = {
+ id: "TSiteTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TSite.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '类型名称', field: 'name', visible: true, align: 'center', valign: 'middle'
+ },
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TSite.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TSite.seItem = selected[0];
+ return true;
+ }
+};
+TSite.oneChange = function (e) {
+ var oneId=$(e).val();
+ var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
+ if(data!=null){
+ if(language==1){
+ var content='<option value="">选择市</option>';
+ }else if(language==2){
+ var content='<option value="">Choose your franchisee</option>';
+ }else {
+ var content='<option value="">Pilih franchisee Anda</option>';
+ }
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ ajax.set("oneId",oneId);
+ ajax.start();
+}
+
+TSite.del = function () {
+ if (this.check()) {
+ let id = this.seItem.id;
+ var operation = function(){
+ var ajax = new $ax(Feng.ctxPath + "/tCoachType/delete", function (data) {
+ Feng.success("删除成功!");
+ TSite.table.refresh();
+ }, function (data) {
+ Feng.error("删除失败!");
+ });
+ ajax.set("id",id);
+ ajax.start();
+ }
+ Feng.confirm("确认删除该信息?", operation);
+ }
+
+};
+/**
+ * 点击添加跨城站点管理
+ */
+TSite.openAddTSite = function () {
+ var index = layer.load(1,{
+ type: 1
+ , title: '添加场地类型'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" >' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">类型名称:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input class="form-control" type="text" id="name"> '+
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['关闭', '保存']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ ,load:1
+ , yes: function () {
+ layer.closeAll();
+ },
+ btn2:function () {
+ let name = $("#name").val()
+ if(name==''){
+ Feng.info("请输入类型名称")
+ return false;
+ }
+ var ajax = new $ax(Feng.ctxPath + "/tCoachType/add", function (data) {
+ if (data === 200) {
+ Feng.success("操作成功!");
+ window.location.reload();
+ window.parent.layer.closeAll();
+ }else{
+ Feng.error("当前教练类型已存在!");
+ }
+ }, function (data) {
+ Feng.error("操作失败!")
+ });
+ ajax.set("name", name);
+ ajax.start();
+ layer.closeAll();
+ }
+ });
+
+ this.layerIndex = index;
+};
+
+
+
+
+/**
+ * 打开查看跨城站点管理详情
+ */
+TSite.openTSiteDetail = function () {
+
+ if (this.check()) {
+ let id = TSite.seItem.id
+ let name = TSite.seItem.name
+ var index = layer.load(1,{
+ type: 1
+ , title: '编辑场地类型'
+ , area: ['50%', '50%']
+ , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
+ , id: 'layerDemo' //防止重复弹出cge
+ , content: '<div class="form-horizontal">' +
+ ' <div class="col-sm-11" >' +
+ ' <div class="col-sm-11">' +
+ ' <div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">类型名称:</label>\n' +
+ ' <div class="col-sm-9">\n' +
+ ' <input class="form-control" type="text" id="name" value='+name+'> '+
+ ' </div>\n' +
+ ' </div>\n' +
+ ' </div>' +
+ ' </div>' +
+ '</div>'
+ , btn: ['关闭', '保存']
+ , btnAlign: 'c' //按钮居中
+ , shade: 0.5 //不显示遮罩
+ ,load:1
+ , yes: function () {
+ layer.closeAll();
+ },
+ btn2:function () {
+ let name = $("#name").val()
+ if(name==''){
+ Feng.info("请输入类型名称")
+ return false;
+ }
+ var data1={
+ id:id,
+ name:name
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tCoachType/update",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ window.location.reload();
+ window.parent.layer.closeAll();
+ if (response === 200) {
+ Feng.success("修改成功!");
+ window.location.reload();
+ window.parent.layer.closeAll();
+ }else{
+ Feng.error("当前教练类型已存在!");
+ }
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
+ Feng.error(errorMessage);
+ }
+ });
+ layer.closeAll();
+ }
+ });
+
+ this.layerIndex = index;
+ }
+};
+
+/**
+ * 操作跨城站点管理
+ */
+TSite.opt = function (type) {
+ if (this.check()) {
+ var name = TSite.seItem.name;
+ if (name == "" || name == null || name == undefined) {
+ name = "该站点";
+ } else {
+ name = "【" + name + "】";
+ }
+ var str = "";
+ var text = "请谨慎操作!";
+ var title = "请谨慎操作!";
+ if (1 == type){
+ str = "删除";
+ title = "您是否确认删除"+name+"?";
+ text = "请谨慎操作,删除后数据无法恢复!";
+ } else if (2 == type){
+ str = "冻结";
+ title = "您是否确认冻结"+name+"?";
+ } else if (3 == type){
+ str = "解冻";
+ title = "您是否确认解冻"+name+"?";
+ }
+ if (1 == type){
+ if (TSite.seItem.lineNum != "" && TSite.seItem.lineNum != null && TSite.seItem.lineNum > 0) {
+ swal("删除失败", "该站点还有关联线路!", "warning");
+ return;
+ }
+ }
+ if(2 == type){
+ if (TSite.seItem.state != 1) {
+ swal("冻结失败", "【正常】状态下才能执行此操作!", "warning");
+ return;
+ }
+ }
+ if (3 == type){
+ if (TSite.seItem.state != 2){
+ swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning");
+ return;
+ }
+ }
+
+ swal({
+ title: title,
+ text: text,
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: str,
+ closeOnConfirm: true
+ }, function () {
+ var ajax = new $ax(Feng.ctxPath + "/tSite/opt", function (data) {
+ swal(str+"成功", "您已经"+str+"了" + name + "。", "success");
+ TSite.table.refresh();
+ }, function (data) {
+ swal(str+"失败", data.responseJSON.message + "!", "warning");
+ });
+ ajax.set("tSiteId",TSite.seItem.id);
+ ajax.set("optType", type);
+ ajax.start();
+ });
+ }
+};
+
+/**
+ * 查询跨城站点管理列表
+ */
+TSite.search = function () {
+ var queryData = {};
+ queryData['insertTime'] = $("#insertTime").val();
+ queryData['name'] = $("#name").val();
+ queryData['insertUser'] = $("#insertUser").val();
+ queryData['city'] = $("#city").val();
+ queryData['state'] = $("#state").val();
+ TSite.table.refresh({query: queryData});
+};
+
+TSite.resetSearch = function () {
+ $("#insertTime").val("");
+ $("#name").val("");
+ $("#insertUser").val("");
+ $("#city").val("");
+ $("#state").val("");
+ TSite.search();
+};
+
+$(function () {
+ var defaultColunms = TSite.initColumn();
+ var table = new BSTable(TSite.id, "/tCoachType/list", defaultColunms);
+ table.setPaginationType("client");
+ TSite.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js b/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js
index 19bf113..0c7030f 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tQuestion/TQuestion.js
@@ -213,6 +213,7 @@
success: function(response) {
Feng.success("删除成功!");
window.parent.TQuestion.table.refresh();
+ TQuestion.table.refresh();
},
error: function(xhr, status, error) {
var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
@@ -260,6 +261,7 @@
};
$(function () {
+
const data1 = {
id:null,
phone:null,
@@ -361,6 +363,7 @@
data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
success: function(response) {
Feng.success("添加成功!");
+ TQuestion.table.refresh();
// window.parent.TQuestion.table.refresh();
TQuestion.phone = "";
},
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/electricFence.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/electricFence.js
deleted file mode 100644
index 24acbbf..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/electricFence.js
+++ /dev/null
@@ -1,327 +0,0 @@
-var map = new AMap.Map('container',{
- resizeEnable: true,
- zoom:10
-});
-
-
-var value = "";
-map.getCity(
- callback=function (result) {
- value = result.city;
- drawBounds();
- }
-);
-
-
-var mouseTool = new AMap.MouseTool(map);
-//监听draw事件可获取画好的覆盖物
-var overlays = [];
-var name = null;
-var coordinate = '';//存储坐标
-var objs = {//存储各种类型的覆盖物对象
- "polyline":[],
- "polygon":[],
- "rectangle":[],
- "circle":[]
-};
-var editors = [];
-mouseTool.on('draw',function(e){
- overlays.push(e.obj);
-
- switch (name) {
- case 'polyline':{//折线图
- var polyline = e.obj.getPath();
- getCoordinate(polyline);
- objs.polyline.push(e.obj);
- break;
- }
- case 'polygon':{//多边形
- var polygon = e.obj.getPath();
- getCoordinate(polygon);
- objs.polygon.push(e.obj);
- break;
- }
- case 'rectangle':{//矩形
- var rectangle = e.obj.getPath();
- getCoordinate(rectangle);
- objs.rectangle.push(e.obj);
- break;
- }
- case 'circle':{//圆形
- var center = e.obj.getCenter();
- var radius = e.obj.getRadius();
- if(radius > 5000){
- Feng.error("创建电子围栏失败,圆半径不能大于5000米");
- return;
- }
- coordinate += center.lng + ',' + center.lat + ';' + radius + "_";
- objs.circle.push(e.obj);
- break;
- }
- }
-})
-
-
-var district = null;
-var polygons=[];
-function drawBounds() {
- if(value == ''){
- value = '北京市';
- }
-
- //加载行政区划插件
- if(!district){
- //实例化DistrictSearch
- var opts = {
- subdistrict: 0, //获取边界不需要返回下级行政区
- extensions: 'all', //返回行政区边界坐标组等具体信息
- level: 'district' //查询行政级别为 市
- };
- district = new AMap.DistrictSearch(opts);
- }
- //行政区查询
- district.setLevel(document.getElementById('level').value)
- district.search(value, function(status, result) {
- map.remove(polygons)//清除上次结果
- polygons = [];
- var bounds = result.districtList[0].boundaries;
- if (bounds) {
- for (var i = 0, l = bounds.length; i < l; i++) {
- //生成行政区划polygon
- var polygon = new AMap.Polygon({
- strokeWeight: 1,
- path: bounds[i],
- fillOpacity: 0.4,
- fillColor: '#80d8ff',
- strokeColor: '#0091ea'
- });
- polygons.push(polygon);
- }
- }
- map.add(polygons)
- map.setFitView(polygons);//视口自适应
- });
-}
-
-document.getElementById('find').onclick = function () {
- value = document.getElementById('district').value;
- if(value == ''){
- value = "北京市";
- }
- drawBounds()
-};
-document.getElementById('district').onkeydown = function(e) {
- if (e.keyCode === 13) {
- value = document.getElementById('district').value;
- if(value == ''){
- value = "北京市";
- }
- drawBounds();
- return false;
- }
- return true;
-};
-
-
-
-
-//处理坐标结果
-function getCoordinate(arr){
- var str = '';
- for(var i = 0; i < arr.length; i++){
- var lng = arr[i].lng;
- var lat = arr[i].lat;
- str += lng + ',' + lat + ';';
- }
- coordinate += str.substring(0, str.length - 1) + "_";
-}
-
-
-function draw(type){
- switch(type){
- case 'marker':{
- mouseTool.marker({
- //同Marker的Option设置
- });
- break;
- }
- case 'polyline':{
- mouseTool.polyline({
- strokeColor:'#80d8ff'
- //同Polyline的Option设置
- });
- break;
- }
- case 'polygon':{
- mouseTool.polygon({
- fillColor:'#00b0ff',
- strokeColor:'#80d8ff'
- //同Polygon的Option设置
- });
- break;
- }
- case 'rectangle':{
- mouseTool.rectangle({
- fillColor:'#00b0ff',
- strokeColor:'#80d8ff'
- //同Polygon的Option设置
- });
- break;
- }
- case 'circle':{
- mouseTool.circle({
- fillColor:'#00b0ff',
- strokeColor:'#80d8ff'
- //同Circle的Option设置
- });
- break;
- }
- }
-}
-var radios = document.getElementsByName('func');
-for(var i=0;i<radios.length;i+=1){
- radios[i].onchange = function(e){
- draw(e.target.value)
- name = e.target.value;
- }
-}
-// draw('marker')
-
-document.getElementById('clear').onclick = function(){
- map.remove(overlays)
- overlays = [];
- coordinate = '';
- objs.circle = [];
- objs.rectangle = [];
- objs.polygon = [];
- objs.polyline = [];
- closeEdit();
-}
-document.getElementById('close').onclick = function(){
- mouseTool.close()//关闭,并清除覆盖物
- for(var i=0;i<radios.length;i+=1){
- radios[i].checked = false;
- }
- closeEdit();
-}
-
-
-//点击提交处理函数
-function submitCoordinate(){
- var name = $('#addressName').val();
- if('' == name){
- Feng.error('请填写地址名称');
- return;
- }
- if('' == coordinate){
- Feng.error('请在地图上规划区域');
- return;
- }
- coordinate = coordinate.substring(0, coordinate.length - 1);
-
-}
-
-function editAll() {
- coordinate = '';
- editors = [];
- //折线
- for(var i in objs.polyline){
- var polyline = objs.polyline[i];
- var polyEditor = new AMap.PolyEditor(map, polyline)
- polyEditor.on('addnode', function(event) {
- // log.info('触发事件:addnode')
- })
-
- polyEditor.on('adjust', function(event) {
- // log.info('触发事件:adjust')
- })
-
- polyEditor.on('removenode', function(event) {
- // log.info('触发事件:removenode')
- })
-
- polyEditor.on('end', function(e) {
- var polyline = e.target.getPath();
- getCoordinate(polyline);
- })
- editors.push(polyEditor);
- polyEditor.open();
- }
-
- //多边形
- for(var i in objs.polygon){
- var polygon = objs.polygon[i];
- var polyEditor = new AMap.PolyEditor(map, polygon)
-
- polyEditor.on('addnode', function(event) {
- // log.info('触发事件:addnode')
- })
-
- polyEditor.on('adjust', function(event) {
- // log.info('触发事件:adjust')
- })
-
- polyEditor.on('removenode', function(event) {
- // log.info('触发事件:removenode')
- })
-
- polyEditor.on('end', function(e) {
- var polygon = e.target.getPath();
- getCoordinate(polygon);
- })
- editors.push(polyEditor);
- polyEditor.open();
- }
-
-
- //矩形
- for(var i in objs.rectangle){
- var rectangle = objs.rectangle[i];
- var rectangleEditor = new AMap.RectangleEditor(map, rectangle)
-
- rectangleEditor.on('adjust', function(event) {
- // log.info('触发事件:adjust')
- })
-
- rectangleEditor.on('end', function(e) {
- var polygon = e.target.getPath();
- getCoordinate(polygon);
- })
- editors.push(rectangleEditor);
- rectangleEditor.open();
- }
-
- //圆形
- for(var i in objs.circle){
- var circle = objs.circle[i];
- var circleEditor = new AMap.CircleEditor(map, circle)
-
- circleEditor.on('move', function(event) {
- // log.info('触发事件:move')
- })
-
- circleEditor.on('adjust', function(e) {
- var radius = e.target.getRadius();
- if(radius > 5000){
- Feng.error("创建电子围栏失败,圆半径不能大于5000米");
- return;
- }
- })
-
- circleEditor.on('end', function(e) {
- var center = e.target.getCenter();
- var radius = e.target.getRadius();
- coordinate += center.lng + ',' + center.lat + ';' + radius + "_";
- })
- editors.push(circleEditor);
- circleEditor.open();
- }
-}
-
-
-function closeEdit() {
- for(var i in editors){
- var editor = editors[i];
- editor.close();
- }
-}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
index efb9b57..3c90189 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
@@ -5,26 +5,33 @@
id: "TSiteTable", //表格id
seItem: null, //选中的条目
table: null,
- layerIndex: -1
+ layerIndex: -1,
+ picture:"",
+ fileUrl:"",
+ img:"",
+ plan:"",
+ goodsPicArray:[],
+ validateFields: {
+ }
};
-
+var objectType =$("#objectType").val()
/**
* 初始化表格的列
*/
TSite.initColumn = function () {
return [
- {field: 'selectItem', radio: true},
+ {field: 'selectItem', checkbox: true},
{title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
- {title: '省', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'20%',
+ {title: '省', field: 'province', visible: objectType==1?true:false, align: 'center', valign: 'middle',width:'20%',
},
- {title: '市', field: 'name', visible: true, align: 'center', valign: 'middle',
+ {title: '市', field: 'city', visible: objectType==1?true:false, align: 'center', valign: 'middle',
},
- {title: '门店名称', field: 'insertUserId', visible: false, align: 'center', valign: 'middle'},
- {title: '场地类型', field: 'insertUser', visible: true, align: 'center', valign: 'middle',
+ {title: '门店名称', field: 'storeName', visible: true, align: 'center', valign: 'middle'},
+ {title: '场地类型', field: 'siteTypeName', visible: true, align: 'center', valign: 'middle',
},
- {title: '场地名称', field: 'province', visible: true, align: 'center', valign: 'middle',
+ {title: '场地名称', field: 'name', visible: true, align: 'center', valign: 'middle',
},
- {title: '场地责任险有效期', field: 'lineNum', visible: true, align: 'center', valign: 'middle',
+ {title: '场地责任险有效期', field: 'insuranceEndTime', visible: true, align: 'center', valign: 'middle',
},
{title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
formatter:function (data) {
@@ -47,149 +54,544 @@
return true;
}
};
-TSite.oneChange = function (e) {
- var oneId=$(e).val();
- var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
- if(data!=null){
- if(language==1){
- var content='<option value="">选择市</option>';
- }else if(language==2){
- var content='<option value="">Choose your franchisee</option>';
- }else {
- var content='<option value="">Pilih franchisee Anda</option>';
+/**
+ * 上架
+ */
+
+TSite.onShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ siteIds:[],
+ type:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.siteIds.push(id);
+ });
+ data1.type = 1;
+
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("上架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
}
+ });
+ }
+};
+/**
+ * 下架
+ */
+TSite.offShelf = function () {
+ if (this.check()){
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ const data1 = {
+ siteIds:[],
+ type:null
+ };
+ selected.forEach(function(obj) {
+ var id = obj.id;
+ data1.siteIds.push(id);
+ });
+ data1.type = 2;
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/changeState",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ Feng.success("下架成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+ }
+};
+TSite.uploadFile = function(){
+ var elementById = document.getElementById("uploadFile");
+ var file = elementById.files[0];
+ var formData = new FormData();
+ formData.append('file',file);
+ $.ajax({
+ url: Feng.ctxPath + "/tCouponManage/uploadPic" ,
+ type: "POST",
+ data: formData,
+ contentType: false, // 设置为false,让浏览器自动识别并设置请求头
+ processData: false, // 设置为false,不处理发送的数据(因为FormData对象已经包含了文件数据)
+ success: function (response) {
+ TSite.fileUrl = response;
+ console.log(TSite.fileUrl);
+ Feng.success("文件上传成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("文件上传失败!" + error);
+ }
+ });
+};
+TSite.getChange = function(e){
+ var oneId=$(e).val();
+ var selectedValue = e.value;
+ var citySelect = document.getElementById("cCode");
+
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getChange", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
$.each(data, function(k,v) {
- content += "<option value='"+v.code+"'>"+v.name+"</option>";
+ content += "<option value='"+v.name+"'>"+v.name+"</option>";
});
$("#cCode").empty().append(content);
}
});
+ if (selectedValue === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ }
+ ajax.set("province",oneId);
+ ajax.start();
+};
+// 场地管理首页 选择对应的省市
+// 传1是场地管理首页 传2是场地管理添加页面
+TSite.oneChange = function (e) {
+ var selectElement = document.getElementById('store');
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+ if (startTime!==null){
+ startTime.disabled = true;
+ endTime.disabled = true;
+ selectElement.addEventListener('change',function () {
+ if (selectElement.value !== ''){
+ startTime.disabled = false;
+ endTime.disabled = false;
+ }else{
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ });
+ }
+
+ var province = $('#pCode option:selected').text();
+ var val = $('#pCode option:selected').val();
+
+ var citySelect = document.getElementById("cCode");
+ var accountSelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.city+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (val === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+
+ }
+ if (e===2){
+ accountSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ }
+ if (val === ""){
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+
+ ajax.set("province",province);
+ ajax.start();
+};
+
+TSite.oneChangeNext = function (e) {
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+
+ var oneId=$(e).val();
+ var citySelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
+ if(data!=null){
+ var content='<option value="">选择账号</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#account").empty().append(content);
+ }
+ });
+ if (oneId === ""){
+ citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
ajax.set("oneId",oneId);
ajax.start();
-}
+
+ var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ if(data!=null && data.length !== 0){
+ var content='<option value="">选择门店</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#store").empty().append(content);
+ }else {
+ storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ }
+ });
+ ajax1.set("oneId",oneId);
+ ajax1.start();
+};
/**
- * 点击添加跨城站点管理
+ * 跳转添加场地页面
*/
TSite.openAddTSite = function () {
+
var index = layer.open({
type: 2,
- title: language==1?'添加':(language==2?'Add':'Tambahkan'),
+ title: "添加场地",
area: ['100%', '100%'], //宽高
fix: false, //不固定
maxmin: true,
- content: Feng.ctxPath + '/tSite/tSite_add'
+ content: Feng.ctxPath + '/tSite/add'
});
this.layerIndex = index;
};
-
/**
- * 打开查看跨城站点管理详情
+ * 跳转锁定场地页面
*/
-TSite.openTSiteDetail = function () {
+TSite.lock = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个场地进行锁定!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "锁定场地",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/lockSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理查看详情
+ */
+TSite.openInfo = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: "查看详情",
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tSite/openInfoTSite/' + TSite.seItem.id
+ });
+ this.layerIndex = index;
+ }
+ }
+};
+/**
+ * 打开场地管理编辑
+ */
+TSite.openEditTSite = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length >1 ){
+ Feng.info("只能选择一个问题进行编辑!");
+ }else {
if (this.check()) {
var index = layer.open({
type: 2,
- title: language==1?'编辑':(language==2?'Edit':'Edit'),
+ title: "编辑场地",
area: ['100%', '100%'], //宽高
fix: false, //不固定
maxmin: true,
- content: Feng.ctxPath + '/tSite/tSite_update/' + TSite.seItem.id
+ content: Feng.ctxPath + '/tSite/openEditTSite/' + TSite.seItem.id
});
this.layerIndex = index;
}
-};
-
-/**
- * 操作跨城站点管理
- */
-TSite.opt = function (type) {
- if (this.check()) {
- var name = TSite.seItem.name;
- if (name == "" || name == null || name == undefined) {
- name = "该站点";
- } else {
- name = "【" + name + "】";
- }
- var str = "";
- var text = "请谨慎操作!";
- var title = "请谨慎操作!";
- if (1 == type){
- str = "删除";
- title = "您是否确认删除"+name+"?";
- text = "请谨慎操作,删除后数据无法恢复!";
- } else if (2 == type){
- str = "冻结";
- title = "您是否确认冻结"+name+"?";
- } else if (3 == type){
- str = "解冻";
- title = "您是否确认解冻"+name+"?";
- }
- if (1 == type){
- if (TSite.seItem.lineNum != "" && TSite.seItem.lineNum != null && TSite.seItem.lineNum > 0) {
- swal("删除失败", "该站点还有关联线路!", "warning");
- return;
- }
- }
- if(2 == type){
- if (TSite.seItem.state != 1) {
- swal("冻结失败", "【正常】状态下才能执行此操作!", "warning");
- return;
- }
- }
- if (3 == type){
- if (TSite.seItem.state != 2){
- swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning");
- return;
- }
- }
-
- swal({
- title: title,
- text: text,
- type: "warning",
- showCancelButton: true,
- confirmButtonColor: "#DD6B55",
- confirmButtonText: str,
- closeOnConfirm: true
- }, function () {
- var ajax = new $ax(Feng.ctxPath + "/tSite/opt", function (data) {
- swal(str+"成功", "您已经"+str+"了" + name + "。", "success");
- TSite.table.refresh();
- }, function (data) {
- swal(str+"失败", data.responseJSON.message + "!", "warning");
- });
- ajax.set("tSiteId",TSite.seItem.id);
- ajax.set("optType", type);
- ajax.start();
- });
}
};
-
/**
- * 查询跨城站点管理列表
+ * 关闭此对话框
*/
+TSite.close = function() {
+ parent.layer.close(window.parent.TSite.layerIndex);
+}
+
+var sh = ""; // 门店经营开始时间:小时
+var sm = "";// 门店经营开始时间:分钟
+var eh = "";// 门店经营结束时间:小时
+var em = "";// 门店经营结束时间:分钟
+
+TSite.addSubmit = function(){
+
+ var data = {
+ province:"",
+ city:"",
+ cityManagerId:"",
+ storeId:"",
+ siteTypeId:null,
+ appointmentStartTime:"",
+ appointmentEndTime:"",
+ cashPrice:null,
+ playPaiCoin:null,
+ insuranceEndTime:"",
+ name:"",
+ insuranceImg:"",
+ managementPlan:""
+ };
+ data.province = $("#pCode").val()
+ data.city = $("#cCode").val()
+ data.cityManagerId = $("#account").val()
+ data.storeId = $("#store").val()
+ data.siteTypeId = $("#siteTypeId").val()
+ data.appointmentStartTime= $("#start-time").val()
+ data.appointmentEndTime = $("#end-time").val()
+ data.cashPrice = $("#cashPrice").val()
+ data.playPaiCoin = $("#playPaiCoin").val()
+ data.insuranceEndTime = $("#insuranceEndTime").val()
+ data.name = $("#name").val()
+ data.insuranceImg = $("#img").val()
+ data.managementPlan = $('#courseVideo').val()
+ var sh =data.appointmentStartTime.split(':')[0];
+ var sm =data.appointmentStartTime.split(':')[1];
+ var eh =data.appointmentEndTime.split(':')[0];
+ var em =data.appointmentEndTime.split(':')[1];
+
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请选择账号")
+ return;
+ }
+ if($("#store").val()=='' ){
+ Feng.info("请选择门店")
+ return;
+ }
+ if($("#siteTypeId").val()=='' ){
+ Feng.info("请选择场地类型")
+ return;
+ }
+ if($("#name").val()==''){
+ Feng.info("请输入场地名称")
+ return;
+ }
+ if($("#start-time").val()=='' ){
+ Feng.info("请输入可预约时间段 开始时间")
+ return;
+ }
+ if($("#end-time").val()==''){
+ Feng.info("请输入可预约时间段 结束时间")
+ return;
+ }
+ if($("#cashPrice").val()==''){
+ Feng.info("请输入现金价格")
+ return;
+ }
+ if($("#playPaiCoin").val()==''){
+ Feng.info("请输入玩湃币价格")
+ return;
+ }
+ if($("#insuranceEndTime").val()==''){
+ Feng.info("请输入场地责任险有效期")
+ return;
+ }
+
+ if($("#img").val()==''){
+ Feng.info("请上传场地责任有效期图片")
+ return;
+ }
+ if($('#courseVideo').val()==''){
+ Feng.info("请上传消防及应急管理方案")
+ return;
+ }
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = ""; //门店的经营开始时间
+ var rEtime = ""; //门店的经营结束时间
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ rStime = response.startTime;
+ sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+
+ rEtime = response.endTime;
+ eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ return false;
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ return false;
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ return false;
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ return false;
+ }
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ return ;
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ return ;
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ return ;
+ }
+ if (Number(endHour)===Number(sh)){
+ if(Number(endMinute) < Number(sm)){
+ Feng.error("预约结束时间不应小于营业开始时间");
+ return;
+ }
+ }
+ if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){
+ Feng.error("至少预约半个小时");
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/addSite" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("添加成功");
+ TSite.search();
+ },
+ error: function (xhr, status, error) {
+ Feng.error("添加失败!" + error);
+ }
+ });
+ },
+ error: function (xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ return false;
+ }
+ });
+};
+
TSite.search = function () {
var queryData = {};
- queryData['insertTime'] = $("#insertTime").val();
+ queryData['province'] = $("#pCode").val();
+ queryData['city'] = $("#cCode").val();
+ queryData['siteTypeId'] = $("#sCode").val();
+ // 场地名称
queryData['name'] = $("#name").val();
- queryData['insertUser'] = $("#insertUser").val();
- queryData['city'] = $("#city").val();
- queryData['state'] = $("#state").val();
+ // 门店名称
+ queryData['storeName'] = $("#storeName").val();
TSite.table.refresh({query: queryData});
};
TSite.resetSearch = function () {
- $("#insertTime").val("");
+ $("#pCode").val("");
+ $("#cCode").val("");
+ $("#store").val("");
+ $("#sCode").val("");
+ $("#storeName").val("");
+ $("#siteTypeId").val("");
$("#name").val("");
- $("#insertUser").val("");
- $("#city").val("");
- $("#state").val("");
+ $("#insuranceEndTime").val("");
TSite.search();
};
+function UploadFileFn(){
+ $('#upFile').click();
+}
+
$(function () {
+ // 限制分钟选项为 0 和 30
+ var timeInputs = document.querySelectorAll('input[type="time"]');
+ timeInputs.forEach(function(input) {
+ input.addEventListener('change', function() {
+ var selectedTime = input.value;
+ var hour = selectedTime.split(':')[0];
+ var minute = selectedTime.split(':')[1];
+ if (minute < 30 &&minute>0) {
+ minute = '30';
+ } else if (minute >30) {
+ hour++;
+ minute = '00';
+ if (hour<10){
+ hour = '0'+hour;
+ }
+ }
+ input.value = hour + ':' + minute;
+ });
+ });
+
+
var defaultColunms = TSite.initColumn();
- var table = new BSTable(TSite.id, "/tSite/list", defaultColunms);
- table.setPaginationType("server");
+ var type =$("#type").val();
+ if (type !== 1){
+ var table1 = new BSTable(TSite.id, "/tSite/listExipre", defaultColunms);
+ table1.setPaginationType("client");
+ TSite.table = table1.init();
+ }
+ var table = new BSTable(TSite.id, "/tSite/listAll", defaultColunms);
+ table.setPaginationType("client");
TSite.table = table.init();
+ Feng.initValidator("carInfoForm", TSite.validateFields);
+ var carPhoto = new $WebUpload("img");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
+ $('#upFile').on('change', function () {
+ var formData = new FormData() //创建一个forData
+ formData.append('file', $('#upFile')[0].files[0]) //把file添加进去 name命名为img
+ layer.load(); //上传loading
+ $.ajax({
+ url: Feng.ctxPath + '/mgr/uploadFile',
+ data: formData,
+ type: "POST",
+ async: true,
+ cache: false,
+ contentType: false,
+ processData: false,
+ success: function(res) {
+ layer.closeAll('loading'); //关闭loading
+ $('#upFile').val('');
+ $('#courseVideo').val(res);
+ }
+ })
+ });
});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSiteLock.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSiteLock.js
new file mode 100644
index 0000000..5ed6829
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSiteLock.js
@@ -0,0 +1,79 @@
+/**
+ * 跨城站点管理管理初始化
+ */
+var TSiteLock = {
+ layerIndex: -1,
+ validateFields: {
+ }
+};
+
+/**
+ * 关闭此对话框
+ */
+TSiteLock.close = function() {
+ parent.layer.close(window.parent.TSite.layerIndex);
+}
+/**
+ * 添加
+ */
+TSiteLock.add = function(id) {
+ console.log("看看id");
+ console.log(id)
+ var startTime = $("#start-time").val().replace("T"," ");
+ var endTime = $("#end-time").val().replace("T"," ");
+ data1 = {
+ siteId:id,
+ ssTime:startTime,
+ eeTime:endTime
+ };
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/addSiteLock",
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+ success: function(response) {
+ console.log("看看后端返回的id");
+ console.log(response.data);
+ var str = '<tr class="timeClass">' +
+ '<td><span>' + startTime +'</span></td>' +
+ '<td><span>' + endTime + '</span></td>' +
+ '<td><button '+'id = '+response.data+' + onclick="TSiteLock.delete(this)">删除</button></td></tr>';
+ $("#coun").append(str);
+ Feng.success("锁定成功!");
+ },
+ error: function(xhr, status, error) {
+ Feng.error("您的网络异常!");
+ }
+ });
+}
+/**
+ * 删除
+ */
+TSiteLock.delete = function(e) {
+ $(e).parent().parent().remove();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/deleteSiteLock/"+e.id,
+ type: "POST",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function(response) {
+ Feng.success("删除成功!");
+ TSite.search();
+ },
+ error: function(xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+ Feng.error("您的网络异常!");
+ }
+ });
+}
+
+
+function UploadFileFn(){
+ $('#upFile').click();
+}
+
+
+$(function () {
+
+
+
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
index 6b6928f..b0b9dbc 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -1,41 +1,27 @@
/**
- * 初始化跨城站点管理详情对话框
+ * 初始化车辆管理详情对话框
*/
-var TSiteInfoDlg = {
- tSiteInfoData : {},
+var language=1;
+var TSiteInfo = {
+ layerIndex: -1,
validateFields: {
- name: {
- validators: {
- notEmpty: {
- message: '站点名称不能为空'
- }
- }
- },
- provinceCode: {
- validators: {
- notEmpty: {
- message: '请选择站点所属省'
- }
- }
- },
}
};
/**
* 验证数据是否为空
*/
-TSiteInfoDlg.validate = function () {
- $('#siteInfoForm').data("bootstrapValidator").resetForm();
- $('#siteInfoForm').bootstrapValidator('validate');
- return $("#siteInfoForm").data('bootstrapValidator').isValid();
+TSiteInfo.validate = function () {
+ $('#carInfoForm').data("bootstrapValidator").resetForm();
+ $('#carInfoForm').bootstrapValidator('validate');
+ return $("#carInfoForm").data('bootstrapValidator').isValid();
};
-
/**
* 清除数据
*/
-TSiteInfoDlg.clearData = function() {
- this.tSiteInfoData = {};
+TSiteInfo.clearData = function() {
+ this.tCarInfoData = {};
}
/**
@@ -44,8 +30,8 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TSiteInfoDlg.set = function(key, val) {
- this.tSiteInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+TSiteInfo.set = function(key, val) {
+ this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
return this;
}
@@ -55,346 +41,353 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TSiteInfoDlg.get = function(key) {
+TSiteInfo.get = function(key) {
return $("#" + key).val();
}
+// 场地管理首页 选择对应的省市
+TSiteInfo.oneChange = function (e) {
+ var oneId=$(e).val();
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+ var selectedValue = e.value;
+ var citySelect = document.getElementById("cCode");
+ var accountSelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+ if(data!=null){
+ var content='<option value="">选择市</option>';
+ $.each(data, function(k,v) {
+ content += "<option value='"+v.city+"'>"+v.city+"</option>";
+ });
+ $("#cCode").empty().append(content);
+ }
+ });
+ if (selectedValue === ""){
+ citySelect.innerHTML = '<option value="">请先选择省</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+ accountSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ storeSelect.innerHTML = '<option value="">请先选择省/市</option>';
+ ajax.set("province",oneId);
+ ajax.start();
+};
+TSiteInfo.oneChangeNext = function (e) {
+ var selectedText = $('#cCode option:selected').text();
+ var startTime = document.getElementById('start-time');
+ var endTime = document.getElementById('end-time');
+
+ var citySelect = document.getElementById("account");
+ var storeSelect = document.getElementById("store");
+ var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
+ if(data!=null){
+ var content='<option value="">选择账号</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#account").empty().append(content);
+ }
+ });
+ if (selectedText === ""){
+ storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+ startTime.disabled = true;
+ endTime.disabled = true;
+ }
+
+ ajax.set("oneId",selectedText);
+ ajax.start();
+
+ var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+ if(data!=null && data.length !== 0){
+ var content='<option value="">选择门店</option>';
+ $.each(data, function(k,v) {
+ content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+ });
+ $("#store").empty().append(content);
+ }else {
+ storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+ }
+ });
+ ajax1.set("oneId",selectedText);
+ ajax1.start();
+};
+TSiteInfo.getTime = function (e) {
+
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = response.startTime; //门店的经营开始时间
+ var rEtime = response.endTime; //门店的经营结束时间
+
+ var sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ var sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+ console.log("门店经营开始时间")
+ console.log(sh)
+ console.log(sm)
+ rEtime = response.endTime;
+ var eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ var em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+ console.log("门店经营结束时间")
+ console.log(eh)
+ console.log(em)
+ sTime.addEventListener('change',function () {
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ }
+ });
+ eTime.addEventListener('change',function () {
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ }
+ })
+
+ },
+ error: function (xhr, status, error) {
+ Feng.error("您的网络异常!");
+ }
+ });
+};
+function UploadFileFn(){
+ $('#upFile').click();
+}
+TSiteInfo.addSubmit = function(){
+ var data = {
+ id:null,
+ province:"",
+ city:"",
+ cityManagerId:"",
+ storeId:"",
+ siteTypeId:null,
+ appointmentStartTime:"",
+ appointmentEndTime:"",
+ cashPrice:null,
+ playPaiCoin:null,
+ insuranceEndTime:"",
+ name:"",
+ insuranceImg:"",
+ managementPlan:""
+ };
+ data.province = $("#pCode").val()
+ data.id = $("#id").val()
+ data.city = $("#cCode").val()
+ data.cityManagerId = $("#account").val()
+ data.storeId = $("#store").val()
+ data.siteTypeId = $("#siteTypeId").val()
+ data.appointmentStartTime= $("#start-time").val()
+ data.appointmentEndTime = $("#end-time").val()
+ data.cashPrice = $("#cashPrice").val()
+ data.playPaiCoin = $("#playPaiCoin").val()
+ data.insuranceEndTime = $("#insuranceEndTime").val()
+ data.name = $("#name").val()
+ data.insuranceImg = $("#img").val()
+ data.managementPlan = $('#courseVideo').val()
+ var sh =data.appointmentStartTime.split(':')[0];
+ var sm =data.appointmentStartTime.split(':')[1];
+ var eh =data.appointmentEndTime.split(':')[0];
+ var em =data.appointmentEndTime.split(':')[1];
+
+ if($("#pCode").val()==''){
+ Feng.info("请选择省")
+ return;
+ }
+ if($("#cCode").val()==''){
+ Feng.info("请选择市")
+ return;
+ }
+ if($("#account").val()=='' ){
+ Feng.info("请选择账号")
+ return;
+ }
+ if($("#store").val()=='' ){
+ Feng.info("请选择门店")
+ return;
+ }
+ if($("#siteTypeId").val()=='' ){
+ Feng.info("请选择场地类型")
+ return;
+ }
+ if($("#name").val()==''){
+ Feng.info("请输入场地名称")
+ return;
+ }
+ if($("#start-time").val()=='' ){
+ Feng.info("请输入可预约时间段 开始时间")
+ return;
+ }
+ if($("#end-time").val()==''){
+ Feng.info("请输入可预约时间段 结束时间")
+ return;
+ }
+ if($("#cashPrice").val()==''){
+ Feng.info("请输入现金价格")
+ return;
+ }
+ if($("#playPaiCoin").val()==''){
+ Feng.info("请输入玩湃币价格")
+ return;
+ }
+ if($("#insuranceEndTime").val()==''){
+ Feng.info("请输入场地责任险有效期")
+ return;
+ }
+
+ // if($("#img").val()==''){
+ // Feng.info("请上传场地责任有效期图片")
+ // return;
+ // }
+ if($('#courseVideo').val()==''){
+ Feng.info("请上传消防及应急管理方案")
+ return;
+ }
+ var sTime = document.getElementById("start-time"); //获取输入的开始时间
+ var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+ var rStime = ""; //门店的经营开始时间
+ var rEtime = ""; //门店的经营结束时间
+ var selectedText = $('#store option:selected').text();
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/getTime/" + selectedText,
+ type: "GET",
+ contentType: "application/json", // 设置请求头的 Content-Type
+ success: function (response) {
+ rStime = response.startTime;
+ sh = rStime.split(':')[0];// 门店经营开始时间:小时
+ sm = rStime.split(':')[1];// 门店经营开始时间:分钟
+
+ rEtime = response.endTime;
+ eh = rEtime.split(':')[0];// 门店经营结束时间:小时
+ em = rEtime.split(':')[1];// 门店经营结束时间:分钟
+
+ var start = sTime.value;
+ var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时
+ var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟
+ if (Number(sh)>Number(startHour)){
+ Feng.error("预约的开始时间不应小于营业开始时间!")
+ return false;
+ }else if(Number(sh) === Number(startHour) ){
+ if (Number(sm)>Number(startMinute)){
+ Feng.error("预约的开始时间不应大于营业开始时间!")
+ return false;
+ }
+ }else if (Number(eh)<Number(startHour)){
+ Feng.error("预约的开始时间不应大于营业结束时间!")
+ return false;
+ }else if(Number(eh)===Number(startHour)){
+ Feng.error("预约的开始时间不应大于等于营业结束时间!")
+ return false;
+ }
+ var end = eTime.value;
+ var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时
+ var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟
+ if (Number(eh)<Number(endHour)){
+ Feng.error("预约的结束时间不应大于营业结束时间!")
+ return ;
+ }else if(Number(eh) === Number(endHour) ){
+ if (Number(em)<Number(endMinute)){
+ Feng.error("预约的开始时间不应大于开始营业时间!")
+ return ;
+ }
+ }else if(Number(sh)>Number(endHour)){
+ Feng.error("预约的结束时间不应小于营业开始时间!")
+ return ;
+ }
+ if (Number(endHour)===Number(sh)){
+ if(Number(endMinute) < Number(sm)){
+ Feng.error("预约结束时间不应小于营业开始时间");
+ return;
+ }
+ }
+ if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){
+ Feng.error("至少预约半个小时");
+ return;
+ }
+ $.ajax({
+ url: Feng.ctxPath + "/tSite/updateSite" ,
+ type: "POST",
+ data: JSON.stringify(data),
+ contentType: "application/json",
+ success: function (response) {
+ Feng.success("修改成功");
+ },
+ error: function (xhr, status, error) {
+ Feng.error("修改失败!" + error);
+ }
+ });
+ },
+ error: function (xhr, status, error) {
+ var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+ Feng.error("您的网络异常!");
+ return false;
+ }
+ });
+
+};
/**
* 关闭此对话框
*/
-TSiteInfoDlg.close = function() {
+TSiteInfo.close = function() {
parent.layer.close(window.parent.TSite.layerIndex);
}
-
-/**
- * 收集数据
- */
-TSiteInfoDlg.collectData = function() {
- this
- .set('id')
- .set('name')
- .set('province')
- .set('provinceCode')
- .set('city')
- .set('cityCode')
- .set('district')
- .set('districtCode')
- .set('state')
- .set('insertTime')
- .set('insertUserId');
+function UploadFileFn(){
+ $('#upFile').click();
}
+$(function () {
+ // 限制分钟选项为 0 和 30
+ var timeInputs = document.querySelectorAll('input[type="time"]');
+ timeInputs.forEach(function(input) {
+ input.addEventListener('change', function() {
+ var selectedTime = input.value;
+ var hour = selectedTime.split(':')[0];
+ var minute = selectedTime.split(':')[1];
+ if (minute < 30 &&minute>0) {
+ minute = '30';
+ } else if (minute >30) {
+ hour++;
+ minute = '00';
+ if (hour<10){
+ hour = '0'+hour;
+ }
+ }
+ input.value = hour + ':' + minute;
-/**
- * 提交添加
- */
-TSiteInfoDlg.addSubmit = function() {
-
- this.clearData();
- this.collectData();
- if(!this.validate()){
- return ;
- }
- var name = $("#name").val();
- var provinceCode = $("#provinceCode").val();
- var cityCode = $("#cityCode").val();
- var districtCode = $("#districtCode").val();
- if ("" == provinceCode){
- Feng.error("请选择所属城市");
- return;
- }
- var subArr=[];
- $(".areaValueClass").each(function () {
- subArr.push({
- id:$(this).find("input[name*='id']").val(),
- areaType:$(this).find("input[name*='areaType1']").val(),
- time:$(this).find("input[name*='time']").val(),
- name:$(this).find("input[name*='name']").val(),
- province:$(this).find("input[name*='province1']").val(),
- provinceCode:$(this).find("input[name*='provinceCode1']").val(),
- city:$(this).find("input[name*='city1']").val(),
- cityCode:$(this).find("input[name*='cityCode1']").val(),
- district:$(this).find("input[name*='district1']").val(),
- districtCode:$(this).find("input[name*='districtCode1']").val(),
- coordinate:$(this).find("input[name*='coordinate1']").val(),
- })
+ });
});
- if(subArr.length <= 0){
- Feng.error("请至少填写一条站点区域");
- return;
- }
- //提交信息
- var ajax = new $ax(Feng.ctxPath + "/tSite/add", function(data){
- if(data.status == 200){
- Feng.success("添加成功!");
- window.parent.TSite.table.refresh();
- TSiteInfoDlg.close();
- }else{
- Feng.error(data.msg);
- }
- },function(data){
- Feng.error("添加失败!" + data.responseJSON.message + "!");
- });
- ajax.set("name",name);
- ajax.set("provinceCode",provinceCode);
- ajax.set("province",$("#provinceCode option:selected").text());
- if ("" != cityCode && null != cityCode && undefined != cityCode){
- ajax.set("cityCode",cityCode);
- ajax.set("city",$("#cityCode option:selected").text());
- }
- if ("" != districtCode && null != districtCode && undefined != districtCode){
- ajax.set("districtCode",$("#districtCode").val());
- ajax.set("district",$("#districtCode option:selected").text());
- }
- ajax.set("subArr",JSON.stringify(subArr));
- ajax.start();
-}
+ Feng.initValidator("carInfoForm", TSiteInfo.validateFields);
+ var carPhoto = new $WebUpload("img");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
-/**
- * 提交修改
- */
-TSiteInfoDlg.editSubmit = function() {
+ var carPhoto1 = new $WebUpload("url");
+ carPhoto1.setUploadBarId("progressBar");
+ carPhoto1.init();
+ TSiteInfo.getTime()
- this.clearData();
- this.collectData();
- if(!this.validate()){
- return ;
- }
- var name = $("#name").val();
- var provinceCode = $("#provinceCode").val();
- var cityCode = $("#cityCode").val();
- var districtCode = $("#districtCode").val();
- if ("" == provinceCode){
- Feng.error("请选择所属城市");
- return;
- }
- var subArr=[];
- $(".areaValueClass").each(function () {
- subArr.push({
- id:$(this).find("input[name*='id']").val(),
- areaType:$(this).find("input[name*='areaType1']").val(),
- time:$(this).find("input[name*='time']").val(),
- name:$(this).find("input[name*='name']").val(),
- province:$(this).find("input[name*='province1']").val(),
- provinceCode:$(this).find("input[name*='provinceCode1']").val(),
- city:$(this).find("input[name*='city1']").val(),
- cityCode:$(this).find("input[name*='cityCode1']").val(),
- district:$(this).find("input[name*='district1']").val(),
- districtCode:$(this).find("input[name*='districtCode1']").val(),
- coordinate:$(this).find("input[name*='coordinate1']").val(),
- })
- });
- if(subArr.length <= 0){
- Feng.error("请至少填写一条站点区域");
- return;
- }
- //提交信息
- var ajax = new $ax(Feng.ctxPath + "/tSite/update", function(data){
- Feng.success("修改成功!");
- window.parent.TSite.table.refresh();
- TSiteInfoDlg.close();
- },function(data){
- Feng.error("修改失败!" + data.responseJSON.message + "!");
- });
- ajax.set("id",$("#id").val());
- ajax.set("name",name);
- ajax.set("provinceCode",provinceCode);
- ajax.set("province",$("#provinceCode option:selected").text());
- if ("" != cityCode && null != cityCode && undefined != cityCode){
- ajax.set("cityCode",cityCode);
- ajax.set("city",$("#cityCode option:selected").text());
- }
- if ("" != districtCode && null != districtCode && undefined != districtCode){
- ajax.set("districtCode",$("#districtCode").val());
- ajax.set("district",$("#districtCode option:selected").text());
- }
- ajax.set("subArr",JSON.stringify(subArr));
- ajax.start();
-}
-$(function() {
- Feng.initValidator("siteInfoForm", TSiteInfoDlg.validateFields);
});
-
-
-//省改变
-TSiteInfoDlg.provinceChange = function (e) {
- var provinceCode=$(e).val();
- var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){
- if(data!=null){
- if(language==1){
- var content='<option value="">选择市</option>';
- }else if(language==2){
- var content='<option value="">Please select a city</option>';
- }else {
- var content='<option value="">Pilih Kota</option>';
- }
- $.each(data, function(k,v) {
- content += "<option value='"+v.code+"'>"+v.name+"</option>";
- });
- $("#cityCode").empty().append(content);
- $("#districtCode").empty().append('<option value="">选择区</option>');
- }
- });
- ajax.set("code",provinceCode);
- ajax.start();
-}
-//市改变
-TSiteInfoDlg.cityChange = function (e) {
- var cityCode=$(e).val();
- var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){
- if(data!=null){
- if(language==1){
- var content='<option value="">选择区</option>';
- }else if(language==2){
- var content='<option value="">Please select a city</option>';
- }else {
- var content='<option value="">Pilih Kota</option>';
- }
- $.each(data, function(k,v) {
- content += "<option value='"+v.code+"'>"+v.name+"</option>";
- });
- $("#districtCode").empty().append(content);
- }
- });
- ajax.set("code",cityCode);
- ajax.start();
-}
-/**
- * 类型改变执行
- * @param e
- */
-TSiteInfoDlg.areaTypeClick = function (e) {
- if (1 == e){//行政区域
- $("#areaType1Div").show();
- $("#areaType2Div").hide();
- } else if (2 == e){
- $("#areaType2Div").show();
- $("#areaType1Div").hide();
- }
-}
-
-//站点区域省改变
-TSiteInfoDlg.provinceChange1 = function (e) {
- var provinceCode=$(e).val();
- var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){
- if(data!=null){
- if(language==1){
- var content='<option value="">选择市</option>';
- }else if(language==2){
- var content='<option value="">Please select a city</option>';
- }else {
- var content='<option value="">Pilih Kota</option>';
- }
- $.each(data, function(k,v) {
- content += "<option value='"+v.code+"'>"+v.name+"</option>";
- });
- $("#cityCode1").empty().append(content);
- $("#districtCode1").empty().append('<option value="">选择区</option>');
- }
- });
- ajax.set("code",provinceCode);
- ajax.start();
-}
-//站点区域市改变
-TSiteInfoDlg.cityChange1 = function (e) {
- var cityCode=$(e).val();
- var ajax = new $ax(Feng.ctxPath + "/tCompany/change", function(data){
- if(data!=null){
- if(language==1){
- var content='<option value="">选择区</option>';
- }else if(language==2){
- var content='<option value="">Please select a city</option>';
- }else {
- var content='<option value="">Pilih Kota</option>';
- }
- $.each(data, function(k,v) {
- content += "<option value='"+v.code+"'>"+v.name+"</option>";
- });
- $("#districtCode1").empty().append(content);
- }
- });
- ajax.set("code",cityCode);
- ajax.start();
-}
-
-/**
- * 添加区域
- */
-TSiteInfoDlg.addArea = function () {
- var areaName = $("#areaName").val();
- if ("" == areaName || null == areaName){
- Feng.error("区域名称不能为空");
- return;
- }
- var areaType = $("input[name='areaType']:checked").val();
- var b = false;
- $(".areaValueClass").each(function () {
- var areaType1 = $(this).find("input[name*='areaType1']").val();
- if(areaType != areaType1){
- b = true;
- return
- }
- });
- if(b){
- Feng.error("电子围栏和行政区域不能混合使用");
- return;
- }
-
- if (1 == areaType){
- var provinceCode1 = $("#provinceCode1").val();
- var province1 = $("#provinceCode1 option:selected").text();
- var cityCode1 = $("#cityCode1").val();
- var city1 = $("#cityCode1 option:selected").text();
- var districtCode1 = $("#districtCode1").val();
- var district1 = $("#districtCode1 option:selected").text();
- if ("" == provinceCode1){
- Feng.error("请选择行政区域所属省");
- return;
- }
- }else if (2 == areaType) {
- if("" == coordinate){
- Feng.error('请在地图上规划区域');
- return;
- }
- }
- var subArr=[];
- $(".areaValueClass").each(function () {
- subArr.push({
- areaType:$(this).find("input[name*='areaType1']").val(),
- time:$(this).find("input[name*='time']").val(),
- name:$(this).find("input[name*='name']").val(),
- province:$(this).find("input[name*='province1']").val(),
- provinceCode:$(this).find("input[name*='provinceCode1']").val(),
- city:$(this).find("input[name*='city1']").val(),
- cityCode:$(this).find("input[name*='cityCode1']").val(),
- district:$(this).find("input[name*='district1']").val(),
- districtCode:$(this).find("input[name*='districtCode1']").val(),
- coordinate:$(this).find("input[name*='coordinate1']").val(),
- })
- });
- var str = '<tr class="areaValueClass">' +
- // '<td>' + (subArr.length+1) + '</td>' +
- '<td style="text-align: center;">' +
- '<input type="hidden" id="areaType1" name="areaType1" value="'+areaType+'">' +
- '<input type="hidden" id="time" name="time" value="'+getNowFormatDate()+'">' + getNowFormatDate() + '</td>' +
-
- '<td style="text-align: center;">' +
- '<input type="hidden" id="name" name="name" value="'+areaName+'">' +
- '<input type="hidden" id="provinceCode1" name="provinceCode1" value="'+provinceCode1+'">' +
- '<input type="hidden" id="province1" name="province1" value="'+province1+'">' +
- '<input type="hidden" id="cityCode1" name="cityCode1" value="'+cityCode1+'">' +
- '<input type="hidden" id="city1" name="city1" value="'+city1+'">' +
- '<input type="hidden" id="districtCode1" name="districtCode1" value="'+districtCode1+'">' +
- '<input type="hidden" id="district1" name="district1" value="'+district1+'">' +
- '<input type="hidden" id="coordinate1" name="coordinate1" value="'+coordinate+'">' + areaName + '</td>' +
-
- '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>';
- $("#areaValue").append(str);
-
- //清除电子围栏数据
- $("#clear").click();
-}
-//删除数据
-function deleteSub(e) {
- $(e).parent().parent().remove();
-}
\ No newline at end of file
diff --git a/cloud-server-other/pom.xml b/cloud-server-other/pom.xml
index ce2069a..a516f3c 100644
--- a/cloud-server-other/pom.xml
+++ b/cloud-server-other/pom.xml
@@ -6,7 +6,7 @@
<groupId>cn.mb.cloud</groupId>
<artifactId>mb-cloud-parent</artifactId>
<version>1.1.3</version>
- <relativePath>../cloud-server-parent/pom.xml</relativePath>
+ <relativePath>../../cloud-server-parent/pom.xml</relativePath>
</parent>
<artifactId>mb-cloud-other</artifactId>
<packaging>jar</packaging>
@@ -122,10 +122,6 @@
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- </plugin>
</plugins>
</build>
<repositories>
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index f05c175..d701c3b 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -1,15 +1,24 @@
package com.dsh.other.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.other.entity.Site;
import com.dsh.other.entity.SiteBooking;
import com.dsh.other.entity.SiteType;
+import com.dsh.other.entity.TSite;
+import com.dsh.other.feignclient.account.CityManagerClient;
+import com.dsh.other.feignclient.account.model.CityManager;
import com.dsh.other.feignclient.activity.UserCouponClient;
import com.dsh.other.feignclient.activity.model.QueryUserCouponByIdAndUserId;
import com.dsh.other.feignclient.activity.model.UserCoupon;
import com.dsh.other.feignclient.model.BillingDataRequestVo;
+import com.dsh.other.feignclient.model.SiteChangeStateVO;
import com.dsh.other.feignclient.model.SiteVo;
import com.dsh.other.model.*;
+import com.dsh.other.model.dto.siteDto.TSiteDTO;
+import com.dsh.other.model.vo.questionVo.QuestionChangeStateVO;
+import com.dsh.other.model.vo.siteVo.ExpireSiteSearchVO;
+import com.dsh.other.model.vo.siteVo.SiteSearchVO;
import com.dsh.other.service.ISiteBookingService;
import com.dsh.other.service.ISiteService;
import com.dsh.other.service.ISiteTypeService;
@@ -19,6 +28,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -56,9 +66,52 @@
@Resource
private UserCouponClient userCouponClient;
+ @Autowired
+ private CityManagerClient cityManagerClient;
+ /**
+ * 获取所有场地
+ * @return
+ */
+ @RequestMapping("/base/site/list")
+ public List<TSiteDTO> listAll(@RequestBody SiteSearchVO vo){
+ return siteTypeService.listAll(vo);
+
+ }
+ /**
+ * 获取场地有效期在两个月内的场地列表
+ * @return
+ */
+ @RequestMapping("/base/site/listExipre")
+ public List<TSiteDTO> listExipre(@RequestBody ExpireSiteSearchVO vo){
+
+ return siteTypeService.listExipre(vo);
+
+ }
+
+ /**
+ * 上/下架、删除常见问题 type=1为上架 2为下架 3为删除
+ */
+ @RequestMapping("/base/site/changeState")
+ public Object changeState(@RequestBody SiteChangeStateVO vo){
+
+ return siteService.changeState(vo);
+ }
+ /**
+ * 添加场地管理
+ * @return
+ */
+ @RequestMapping("/base/site/addSite")
+ public Object addSite(@RequestBody Site site){
+ if(site.getId()!= null ){
+
+ return siteService.updateById(site);
+ }else {
+ return siteService.save(site);
+ }
+ }
@ResponseBody
@PostMapping("/base/site/querySiteType")
@@ -168,10 +221,6 @@
return ResultUtil.runErr();
}
}
-
-
-
-
/**
* 购买课程微信支付回调
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java
new file mode 100644
index 0000000..5ad9f9d
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java
@@ -0,0 +1,103 @@
+package com.dsh.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.Site;
+import com.dsh.other.entity.SiteBooking;
+import com.dsh.other.entity.SiteLock;
+import com.dsh.other.entity.SiteType;
+import com.dsh.other.feignclient.activity.UserCouponClient;
+import com.dsh.other.feignclient.activity.model.QueryUserCouponByIdAndUserId;
+import com.dsh.other.feignclient.activity.model.UserCoupon;
+import com.dsh.other.feignclient.model.BillingDataRequestVo;
+import com.dsh.other.feignclient.model.SiteChangeStateVO;
+import com.dsh.other.feignclient.model.SiteVo;
+import com.dsh.other.model.*;
+import com.dsh.other.model.dto.siteDto.TSiteDTO;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
+import com.dsh.other.model.vo.siteVo.SiteSearchVO;
+import com.dsh.other.service.ISiteBookingService;
+import com.dsh.other.service.ISiteLockService;
+import com.dsh.other.service.ISiteService;
+import com.dsh.other.service.ISiteTypeService;
+import com.dsh.other.util.PayMoneyUtil;
+import com.dsh.other.util.ResultUtil;
+import com.dsh.other.util.TokenUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/13 16:50
+ */
+@RestController
+@RequestMapping("")
+public class SiteLockController {
+
+ @Autowired
+ private ISiteService siteService;
+ @Autowired
+ private ISiteLockService siteLockService;
+
+ /**
+ * 锁定场地列表
+ * @param
+ * @return
+ */
+
+ @PostMapping("/siteLock/getListById/{id}")
+ public List<TSiteLockDTO> getListById(@PathVariable("id") Integer id){
+ return siteLockService.getListById(id);
+ }
+
+ /**
+ * 添加锁定场地
+ * @param
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/siteLock/addSiteLock")
+ public Object addSiteLock(@RequestBody TSiteLockDTO siteLock){
+ SiteLock siteLock1 = new SiteLock();
+ BeanUtils.copyProperties(siteLock,siteLock1);
+ siteLockService.save(siteLock1);
+ return siteLock1.getId();
+ }
+
+ /**
+ * 删除锁定场地
+ * @param
+ * @return
+ */
+ @PostMapping("/siteLock/deleteSiteLock/{id}")
+ public Object deleteSiteLock(@PathVariable("id") Integer id){
+ return siteLockService.removeById(id);
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
index 5290264..f1c96eb 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -30,6 +30,46 @@
private GDMapGeocodingUtil gdMapGeocodingUtil;
+ /**
+ * 根据城市管理员id获取门店
+ */
+ @RequestMapping("base/site/getStoreByCityManagerId")
+ public Object getStoreByCityManagerId(@RequestBody Integer id){
+ return storeService.getStoreByCityManagerId(id);
+ }
+ /**
+ * 根据员工id获取门店
+ */
+ @RequestMapping("base/site/getStoreByStoreStaffId")
+ public Object getStoreByStoreStaffId(@RequestBody Integer id){
+ return storeService.getStoreByStoreStaffId(id);
+ }
+
+ /**
+ * 根据门店id获取门店信息
+ */
+ @RequestMapping("base/site/getStoreById")
+ public Store getStoreById(@RequestBody Integer id){
+ return storeService.getOne(new QueryWrapper<Store>().eq("id",id));
+ }
+ /**
+ * 选择市区 展示全部门店
+ */
+ @RequestMapping("base/store/getStore")
+ public List<Store> getStore(@RequestBody String city){
+ return storeService.list(new QueryWrapper<Store>().eq("city",city));
+ }
+
+ /**
+ * 根据所选门店 查询经营时间
+ * @param oneId
+ * @return
+ */
+ @RequestMapping("base/store/getTime")
+ public Store getTime(@RequestBody String oneId){
+ return storeService.getOne(new QueryWrapper<Store>().eq("name",oneId));
+ }
+
@PostMapping("/base/protocol/storeDetail/courseOfSto")
@@ -168,7 +208,7 @@
*/
@ResponseBody
@PostMapping("/store/queryStoreByIds")
- public List<Store> queryStoreByIds(List<Integer> ids){
+ public List<Store> queryStoreByIds(@RequestBody List<Integer> ids){
try {
return storeService.list(new LambdaQueryWrapper<Store>()
.in(Store::getId,ids));
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java b/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java
index 6d9a773..877477b 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/Site.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -84,6 +85,7 @@
* 场地责任险有效期
*/
@TableField("insuranceEndTime")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date insuranceEndTime;
/**
* 场地责任险图片
@@ -104,6 +106,7 @@
* 添加时间
*/
@TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date insertTime;
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java
index d938c1d..bd6cdee 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@@ -29,10 +30,12 @@
* 锁定开始时间
*/
@TableField("startTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date startTime;
/**
* 锁定结束时间
*/
@TableField("endTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date endTime;
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java b/cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java
new file mode 100644
index 0000000..97a9541
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java
@@ -0,0 +1,111 @@
+package com.dsh.other.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:43
+ */
+@Data
+@TableName("t_site")
+public class TSite {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 门店id
+ */
+ @TableField("storeId")
+ private Integer storeId;
+ /**
+ * 场地名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 场地类型id
+ */
+ @TableField("siteTypeId")
+ private Integer siteTypeId;
+ /**
+ * 城市管理员id
+ */
+ @TableField("cityManagerId")
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ @TableField("appointmentStartTime")
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ @TableField("appointmentEndTime")
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ @TableField("cashPrice")
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ @TableField("playPaiCoin")
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ @TableField("insuranceEndTime")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ @TableField("insuranceImg")
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ @TableField("managementPlan")
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java
new file mode 100644
index 0000000..a26b7e1
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java
@@ -0,0 +1,45 @@
+package com.dsh.other.feignclient.account;
+
+import com.dsh.other.feignclient.account.model.CityManager;
+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;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:07
+ */
+@FeignClient("mb-cloud-account")
+public interface CityManagerClient {
+
+
+ /**
+ * 根据id获取数据
+ * @param id
+ * @return
+ */
+ @PostMapping("/cityManager/queryCityManagerById")
+ CityManager queryCityManagerById(Integer id);
+
+ /**
+ * 获取已有城市管理的省、市
+ */
+ @RequestMapping("/cityManager/listAll")
+ List<CityManager> listAll();
+
+ /**
+ * 选择省 展示市
+ */
+ @RequestMapping("/cityManager/getCity")
+ List<CityManager> getCity(@RequestBody String province);
+
+ /**
+ * 选择市区 展示全部账号
+ */
+ @RequestMapping("/cityManager/getAccount")
+ List<CityManager> getAccount(@RequestBody String city);
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/CityManager.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/CityManager.java
new file mode 100644
index 0000000..b7689ac
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/CityManager.java
@@ -0,0 +1,56 @@
+package com.dsh.other.feignclient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:00
+ */
+@Data
+@TableName("t_city_manager")
+public class CityManager {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 姓名
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 电话
+ */
+ @TableField("phone")
+ private String phone;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteAddDTO.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteAddDTO.java
new file mode 100644
index 0000000..1cfee2c
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteAddDTO.java
@@ -0,0 +1,91 @@
+package com.dsh.other.feignclient.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 17:43
+ */
+@Data
+public class SiteAddDTO {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 门店id
+ */
+ private Integer storeId;
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 场地类型id
+ */
+ private Integer siteTypeId;
+ /**
+ * 城市管理员id
+ */
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date insertTime;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteChangeStateVO.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteChangeStateVO.java
new file mode 100644
index 0000000..ba5279e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteChangeStateVO.java
@@ -0,0 +1,21 @@
+package com.dsh.other.feignclient.model;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 修改场地状态
+ */
+@Data
+public class SiteChangeStateVO {
+ /**
+ * 场地Id
+ */
+ List<Integer> siteIds;
+ /**
+ * 上/下架 删除场地 type=1 上架 2下架 3删除
+ */
+ Integer type;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java
index 3780f34..43a58d6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteLockMapper.java
@@ -2,10 +2,15 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsh.other.entity.SiteLock;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author zhibing.pu
* @Date 2023/7/18 14:43
*/
public interface SiteLockMapper extends BaseMapper<SiteLock> {
+ List<TSiteLockDTO> getListById(@Param("id") Integer id);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
index ff47827..2824a2f 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
@@ -5,8 +5,12 @@
import com.dsh.other.model.QueryMySiteVo;
import com.dsh.other.model.QuerySiteList;
import com.dsh.other.model.QuerySiteListVo;
+import com.dsh.other.model.dto.siteDto.TSiteDTO;
+import com.dsh.other.model.vo.siteVo.ExpireSiteSearchVO;
+import com.dsh.other.model.vo.siteVo.SiteSearchVO;
import org.apache.ibatis.annotations.Param;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -34,4 +38,12 @@
*/
List<QueryMySiteVo> queryMySite(@Param("uid") Integer uid, @Param("status") Integer status,
@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
+
+ List<TSiteDTO> listAll(@Param("query") SiteSearchVO vo);
+
+
+ Object changeState(@Param("siteIds") List<Integer> siteIds, @Param("type")Integer type);
+
+ List<TSiteDTO> listExipre(@Param("query") ExpireSiteSearchVO vo);
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
index 8c9579f..0bacdc4 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
@@ -5,6 +5,7 @@
import com.dsh.other.model.BaseVo;
import com.dsh.other.model.ProvinceAndCityVo;
import org.apache.ibatis.annotations.Param;
+import org.aspectj.lang.annotation.DeclareParents;
import java.util.List;
@@ -42,4 +43,16 @@
*/
List<BaseVo> queryStoreByCityCode(@Param("cityCode") String cityCode);
+ /**
+ * 根据城市管理员id获取门店集合
+ * @param id
+ * @return
+ */
+ List<Store> getStoreByCityManagerId(@Param("id") Integer id);
+ /**
+ * 根据门店员工id获取门店集合
+ * @param id
+ * @return
+ */
+ List<Store> getStoreByStoreStaffId(@Param("id") Integer id);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteDTO.java b/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteDTO.java
new file mode 100644
index 0000000..1d01f40
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteDTO.java
@@ -0,0 +1,97 @@
+package com.dsh.other.model.dto.siteDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author 场地管理列表DTO
+ * @Date 2023/8/1 17:43
+ */
+@Data
+public class TSiteDTO {
+ /**
+ * 主键
+ */
+ private Integer id;
+ /**
+ * 门店id
+ */
+ private Integer storeId;
+ /**
+ * 门店名称
+ */
+ private String storeName;
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 场地类型id
+ */
+ private Integer siteTypeId;
+ /**
+ * 场地类型名称
+ */
+ private String siteTypeName;
+ /**
+ * 城市管理员id
+ */
+ private Integer cityManagerId;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 预约开始时间
+ */
+ private String appointmentStartTime;
+ /**
+ * 预约结束时间
+ */
+ private String appointmentEndTime;
+ /**
+ * 现金价格(x/半小时)
+ */
+ private Double cashPrice;
+ /**
+ * 玩湃币价格(x/半小时)
+ */
+ private Integer playPaiCoin;
+ /**
+ * 场地责任险有效期
+ */
+ private Date insuranceEndTime;
+ /**
+ * 场地责任险图片
+ */
+ private String insuranceImg;
+ /**
+ * 消防应急管理方案
+ */
+ private String managementPlan;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteLockDTO.java b/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteLockDTO.java
new file mode 100644
index 0000000..e5e67cc
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/dto/siteDto/TSiteLockDTO.java
@@ -0,0 +1,39 @@
+package com.dsh.other.model.dto.siteDto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 锁定场地DTO
+ */
+@Data
+public class TSiteLockDTO {
+ /**
+ * 场地id
+ */
+ private Integer id;
+ /**
+ * 场地id
+ */
+ private Integer siteId;
+ /**
+ * 锁定开始时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ private Date startTime;
+ /**
+ * 锁定结束时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+ private Date endTime;
+
+ private String ssTime;
+
+ private String eeTime;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java b/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java
new file mode 100644
index 0000000..99a28e9
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java
@@ -0,0 +1,40 @@
+package com.dsh.other.model.vo.siteVo;
+
+import lombok.Data;
+
+@Data
+public class ExpireSiteSearchVO {
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 门店名称
+ */
+ private String storeName;
+
+ /**
+ * 场地类型
+ */
+ private Integer siteTypeId;
+
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 对象类型(1=平台,2=城市管理员,3=门店)
+ */
+ private Integer objectType;
+
+ private Integer objectId;
+
+ // 登陆人类型
+ private Integer typeId ;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/SiteSearchVO.java b/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/SiteSearchVO.java
new file mode 100644
index 0000000..c5b2cf7
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/SiteSearchVO.java
@@ -0,0 +1,36 @@
+package com.dsh.other.model.vo.siteVo;
+
+import lombok.Data;
+
+@Data
+public class SiteSearchVO {
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 市
+ */
+ private String city;
+
+ /**
+ * 门店名称
+ */
+ private String storeName;
+
+ /**
+ * 场地类型
+ */
+ private Integer siteTypeId;
+
+ /**
+ * 场地名称
+ */
+ private String name;
+ /**
+ * 对象类型(1=平台,2=城市管理员,3=门店)
+ */
+ private Integer objectType;
+
+ private Integer objectId;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java
index 7a0afde..853b66a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteLockService.java
@@ -2,10 +2,16 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.other.entity.SiteLock;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
+
+import java.util.List;
/**
* @author zhibing.pu
* @Date 2023/7/18 14:44
*/
public interface ISiteLockService extends IService<SiteLock> {
+ List<TSiteLockDTO> getListById(Integer id);
+
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
index 35db539..7c7cefd 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.other.entity.Site;
+import com.dsh.other.feignclient.model.SiteChangeStateVO;
import com.dsh.other.model.*;
import com.dsh.other.util.ResultUtil;
@@ -89,4 +90,7 @@
* @throws Exception
*/
ResultUtil<Map<String, Double>> queryContinuePaymentMySitePrice(Integer id) throws Exception;
+
+ Object changeState(SiteChangeStateVO vo);
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java
index 6560fd3..a5f75bb 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.dsh.other.entity.SiteType;
import com.dsh.other.model.BaseVo;
+import com.dsh.other.model.dto.siteDto.TSiteDTO;
+import com.dsh.other.model.vo.siteVo.ExpireSiteSearchVO;
+import com.dsh.other.model.vo.siteVo.SiteSearchVO;
import java.util.List;
@@ -19,4 +22,8 @@
* @throws Exception
*/
List<BaseVo> querySiteType() throws Exception;
+
+ List<TSiteDTO> listAll(SiteSearchVO vo);
+
+ List<TSiteDTO> listExipre(ExpireSiteSearchVO vo);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java b/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
index 068bebd..92a2931 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
@@ -64,4 +64,7 @@
*/
List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception;
+ List<Store> getStoreByCityManagerId(Integer id);
+
+ List<Store> getStoreByStoreStaffId(Integer id);
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java
index f0d0a85..7eb29aa 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java
@@ -3,8 +3,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.other.entity.SiteLock;
import com.dsh.other.mapper.SiteLockMapper;
+import com.dsh.other.model.dto.siteDto.TSiteLockDTO;
import com.dsh.other.service.ISiteLockService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @author zhibing.pu
@@ -12,4 +16,11 @@
*/
@Service
public class SiteLockServiceImpl extends ServiceImpl<SiteLockMapper, SiteLock> implements ISiteLockService {
+ @Autowired
+ private SiteLockMapper siteLockMapper;
+ @Override
+ public List<TSiteLockDTO> getListById(Integer id) {
+ return siteLockMapper.getListById(id);
+ }
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index 75a7ffd..98459ce 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -13,10 +13,13 @@
import com.dsh.other.feignclient.activity.model.Coupon;
import com.dsh.other.feignclient.activity.model.QueryUserCouponByIdAndUserId;
import com.dsh.other.feignclient.activity.model.UserCoupon;
+import com.dsh.other.feignclient.model.SiteChangeStateVO;
import com.dsh.other.mapper.SiteMapper;
import com.dsh.other.model.*;
import com.dsh.other.service.*;
import com.dsh.other.util.*;
+import io.swagger.models.auth.In;
+import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -56,6 +59,8 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
+ @Autowired
+ private SiteMapper siteMapper;
@@ -627,4 +632,13 @@
map.put("cash", payMoney);
return ResultUtil.success(map);
}
+
+ @Override
+ public Object changeState(SiteChangeStateVO vo) {
+
+ List<Integer> siteIds = vo.getSiteIds();
+ Integer type = vo.getType();
+ return siteMapper.changeState(siteIds,type);
+
+ }
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java
index 1d059c2..e656661 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java
@@ -3,12 +3,17 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.other.entity.SiteType;
+import com.dsh.other.mapper.SiteMapper;
import com.dsh.other.mapper.SiteTypeMapper;
import com.dsh.other.model.BaseVo;
+import com.dsh.other.model.dto.siteDto.TSiteDTO;
+import com.dsh.other.model.vo.siteVo.ExpireSiteSearchVO;
+import com.dsh.other.model.vo.siteVo.SiteSearchVO;
import com.dsh.other.service.ISiteTypeService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@@ -19,6 +24,8 @@
@Service
public class SiteTypeServiceImpl extends ServiceImpl<SiteTypeMapper, SiteType> implements ISiteTypeService {
+ @Resource
+ private SiteMapper siteMapper;
/**
* 获取场地分类
@@ -36,4 +43,16 @@
}
return list;
}
+
+ @Override
+ public List<TSiteDTO> listAll(SiteSearchVO vo) {
+ return siteMapper.listAll(vo);
+ }
+
+ @Override
+ public List<TSiteDTO> listExipre(ExpireSiteSearchVO vo) {
+
+
+ return siteMapper.listExipre(vo);
+ }
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
index a450214..d19338e 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
@@ -30,7 +30,29 @@
public class StoreServiceImpl extends ServiceImpl<StoreMapper,Store> implements StoreService {
@Autowired
+ private StoreMapper storeMapper;
+ @Autowired
private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+
+ /**
+ * 根据城市管理员id获取门店集合
+ * @param id
+ * @return
+ */
+ @Override
+ public List<Store> getStoreByCityManagerId(Integer id) {
+ return storeMapper.getStoreByCityManagerId(id);
+ }
+ /**
+ * 根据门店员工id获取门店集合
+ * @param id
+ * @return
+ */
+ @Override
+ public List<Store> getStoreByStoreStaffId(Integer id) {
+ return storeMapper.getStoreByStoreStaffId(id);
+ }
/**
@@ -121,4 +143,6 @@
public List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception {
return this.baseMapper.queryStoreByCityCode(cityCode);
}
+
+
}
diff --git a/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml
index 3b18446..2a736a2 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteLockMapper.xml
@@ -3,4 +3,9 @@
<mapper namespace="com.dsh.other.mapper.SiteLockMapper">
+ <select id="getListById" resultType="com.dsh.other.model.dto.siteDto.TSiteLockDTO">
+ select * from t_site_lock
+ where siteId = #{id}
+ and endTime > NOW()
+ </select>
</mapper>
diff --git a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
index 592245c..87454da 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -1,7 +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.SiteMapper">
-
+ <update id="changeState">
+ update t_site set
+ state = #{type}
+ <where>
+ <if test="siteIds != null and siteIds.size()>0">
+ AND t_site.id IN
+ <foreach collection="siteIds" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ </update>
<select id="querySiteList" resultType="com.dsh.other.model.QuerySiteListVo">
select
@@ -61,4 +72,63 @@
</if>
order by a.insertTime desc limit #{pageNo}, #{pageSize}
</select>
+ <select id="listAll" resultType="com.dsh.other.model.dto.siteDto.TSiteDTO">
+ select t1.*,t2.name storeName,t3.name siteTypeName from t_site t1
+ inner join t_store t2 on t1.storeId = t2.id
+ left join t_site_type t3 on t1.siteTypeId = t3.id
+ <where>
+ <if test="query.objectType == 2">
+ and t1.cityManagerId = #{query.objectId}
+ </if>
+ <if test="query.objectType == 3">
+ and t2.storeStaffId = #{query.objectId}
+ </if>
+ <if test="query.city!=null and query.city!= ''">
+ and t1.city = #{query.city}
+ </if>
+ <if test="query.province!=null and query.province!= ''">
+ and t1.province = #{query.province}
+ </if>
+ <if test="query.siteTypeId!=null and query.siteTypeId!= ''">
+ and t1.siteTypeId = #{query.siteTypeId}
+ </if>
+ <if test="query.storeName!=null and query.storeName!= ''">
+ and t2.name like concat('%',#{query.storeName},'%')
+ </if>
+ <if test="query.name!=null and query.name!= ''">
+ and t1.name like concat('%',#{query.name},'%')
+ </if>
+ and t1.state != 3
+ </where>
+ </select>
+ <select id="listExipre" resultType="com.dsh.other.model.dto.siteDto.TSiteDTO">
+ select t1.*,t2.name storeName,t3.name siteTypeName from t_site t1
+ inner join t_store t2 on t1.storeId = t2.id
+ left join t_site_type t3 on t1.siteTypeId = t3.id
+ <where>
+ <if test="query.objectType == 2">
+ and t1.cityManagerId = #{query.objectId}
+ </if>
+ <if test="query.objectType == 3">
+ and t2.storeStaffId = #{query.objectId}
+ </if>
+ <if test="query.city!=null and query.city!= ''">
+ and t1.city = #{query.city}
+ </if>
+ <if test="query.province!=null and query.province!= ''">
+ and t1.province = #{query.province}
+ </if>
+ <if test="query.siteTypeId!=null and query.siteTypeId!= ''">
+ and t1.siteTypeId = #{query.siteTypeId}
+ </if>
+ <if test="query.storeName!=null and query.storeName!= ''">
+ and t2.name like concat('%',#{query.storeName},'%')
+ </if>
+ <if test="query.name!=null and query.name!= ''">
+ and t1.name like concat('%',#{query.name},'%')
+ </if>
+ and t1.state != 3
+ and t1.insuranceEndTime <= DATE_ADD(CURDATE(), INTERVAL 2 MONTH);
+ </where>
+ </select>
</mapper>
diff --git a/cloud-server-other/src/main/resources/mapper/StoreMapper.xml b/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
index 244a264..01bb524 100644
--- a/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
@@ -19,4 +19,10 @@
<select id="queryStoreByCityCode" resultType="com.dsh.other.model.BaseVo">
select id, name from t_store where state = 1 and cityCode = #{cityCode}
</select>
+ <select id="getStoreByCityManagerId" resultType="com.dsh.other.entity.Store">
+ select * from t_store where cityManagerId = #{id}
+ </select>
+ <select id="getStoreByStoreStaffId" resultType="com.dsh.other.entity.Store">
+ select * from t_store where storeStaffId = #{id}
+ </select>
</mapper>
--
Gitblit v1.7.1