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