From 05b78ffef3e5e94825a2b361a1eb918b1d15b377 Mon Sep 17 00:00:00 2001 From: Aug <17674666882@163.com> Date: Wed, 10 Sep 2025 17:41:46 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=9F=BA=E7=A1=80=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StudytourActivityController.java | 2 +- .../entity/StudytourActivity.java | 12 +- .../mapper/StudytourActivityMapper.java | 2 +- .../service/IStudytourActivityService.java | 2 +- .../service/impl/StudytourActivityServiceImpl.java | 2 +- .../StudytourActivityDateController.java | 148 ++++++-- .../entity/StudytourActivityDate.java | 21 +- .../entity/StudytourDatePrice.java | 26 +- .../mapper/StudytourActivityDateMapper.java | 2 +- .../mapper/StudytourDatePriceMapper.java | 19 + .../mapper/xml/StudytourDatePriceMapper.xml | 16 + .../service/IStudytourActivityDateService.java | 28 +- .../service/IStudytourDatePriceService.java | 16 + .../impl/StudytourActivityDateServiceImpl.java | 62 +++- .../impl/StudytourDatePriceServiceImpl.java | 27 ++ .../vo/StudytourActivityDatePage.java | 77 +++++ .../vue/StudytourActivityDateList.vue | 21 +- .../vue/modules/StudytourActivityDateForm.vue | 189 +++++++--- .../vue/modules/StudytourActivityDateModal.vue | 20 +- .../vue3/StudytourActivityDate.api.ts | 7 + .../vue3/StudytourActivityDate.data.ts | 32 ++ .../vue3/StudytourActivityDateList.vue | 30 +- .../vue3/components/StudytourActivityDateModal.vue | 63 +++- .../controller/StudytourCategoryController.java | 2 +- .../entity/StudytourCategory.java | 6 +- .../mapper/StudytourCategoryMapper.java | 2 +- .../service/IStudytourCategoryService.java | 2 +- .../service/impl/StudytourCategoryServiceImpl.java | 2 +- .../vue/StudytourCategoryList.vue | 2 +- .../vue/modules/StudytourCategoryModal.vue | 2 +- .../vue3/StudytourCategory.data.ts | 2 +- .../controller/StudytourCollectionController.java} | 84 ++--- .../entity/StudytourCollection.java | 66 ++++ .../mapper/StudytourCollectionMapper.java | 17 + .../mapper/xml/StudytourCollectionMapper.xml} | 2 +- .../service/IStudytourCollectionService.java | 14 + .../impl/StudytourCollectionServiceImpl.java | 19 + .../vue/StudytourCollectionList.vue} | 34 +- .../vue/modules/StudytourCollectionForm.vue} | 16 +- .../StudytourCollectionModal.Style#Drawer.vue} | 8 +- .../vue/modules/StudytourCollectionModal.vue} | 8 +- .../vue3/StudytourCollection.api.ts} | 14 +- .../vue3/StudytourCollection.data.ts} | 27 +- .../vue3/StudytourCollectionList.vue} | 14 +- .../vue3/components/StudytourCollectionModal.vue} | 4 +- .../controller/StudytourConfigController.java} | 84 ++--- .../entity/StudytourConfig.java} | 41 ++- .../mapper/StudytourConfigMapper.java | 17 + .../mapper/xml/StudytourConfigMapper.xml} | 2 +- .../service/IStudytourConfigService.java | 14 + .../service/impl/StudytourConfigServiceImpl.java | 19 + .../vue/StudytourConfigList.vue} | 54 +-- .../vue/modules/StudytourConfigForm.vue} | 30 +- .../modules/StudytourConfigModal.Style#Drawer.vue} | 8 +- .../vue/modules/StudytourConfigModal.vue} | 8 +- .../vue3/StudytourConfig.api.ts} | 14 +- .../studytourConfig/vue3/StudytourConfig.data.ts | 67 ++++ .../vue3/StudytourConfigList.vue} | 14 +- .../vue3/components/StudytourConfigModal.vue} | 4 +- .../mapper/StudytourDatePriceMapper.java | 17 - .../service/IStudytourDatePriceService.java | 14 - .../impl/StudytourDatePriceServiceImpl.java | 19 - .../vue3/StudytourDatePrice.data.ts | 43 --- .../controller/StudytourOrderController.java | 148 ++++++-- .../studytourOrder/entity/StudytourOrder.java | 40 ++- .../entity/StudytourOrderPerson.java | 19 +- .../mapper/StudytourOrderMapper.java | 2 +- .../mapper/StudytourOrderPersonMapper.java | 12 +- .../mapper/xml/StudytourOrderPersonMapper.xml | 16 + .../service/IStudytourOrderPersonService.java | 8 +- .../service/IStudytourOrderService.java | 28 +- .../impl/StudytourOrderPersonServiceImpl.java | 27 ++ .../service/impl/StudytourOrderServiceImpl.java | 62 +++- .../studytourOrder/vo/StudytourOrderPage.java | 127 +++++++ .../studytourOrder/vue/StudytourOrderList.vue | 71 ++-- .../vue/modules/StudytourOrderForm.vue | 253 ++++++++++---- .../vue/modules/StudytourOrderModal.vue | 20 +- .../studytourOrder/vue3/StudytourOrder.data.ts | 43 ++- .../impl/StudytourOrderPersonServiceImpl.java | 19 - .../vue/StudytourOrderPersonList.vue | 208 ----------- .../vue/modules/StudytourOrderPersonForm.vue | 134 ------- .../vue3/StudytourOrderPerson.data.ts | 89 ----- .../StudytourOrderReceiptController.java | 171 --------- .../mapper/StudytourOrderReceiptMapper.java | 17 - .../mapper/xml/StudytourOrderReceiptMapper.xml | 5 - .../service/IStudytourOrderReceiptService.java | 14 - .../impl/StudytourOrderReceiptServiceImpl.java | 19 - .../StudytourOrderReceiptModal.Style#Drawer.vue | 84 ----- .../vue/modules/StudytourOrderReceiptModal.vue | 60 ---- .../vue3/StudytourOrderReceipt.api.ts | 61 ---- .../vue3/StudytourOrderReceiptList.vue | 162 --------- .../vue3/components/StudytourOrderReceiptModal.vue | 58 ---- .../java/org/jeecg/modules/api/bean/PageBean.java | 19 + .../jeecg/modules/api/service/ActivityService.java | 21 ++ .../jeecg/modules/api/service/CommentService.java | 4 + .../jeecg/modules/api/service/ConfigService.java | 21 ++ .../modules/api/service/ExperienceService.java | 4 + .../jeecg/modules/api/service/ImageService.java | 4 + .../api/service/Impl/ActivityServiceImpl.java | 302 ++++++++++++++++ .../api/service/Impl/CommentServiceImpl.java | 6 + .../api/service/Impl/ConfigServiceImpl.java | 134 +++++++ .../api/service/Impl/ExperienceServiceImpl.java | 6 + .../modules/api/service/Impl/ImageServiceImpl.java | 6 + .../modules/api/service/Impl/IndexServiceImpl.java | 212 ++++++++++++ .../api/service/Impl/LoginApiServiceImpl.java | 173 ++++++++++ .../modules/api/service/Impl/OrderServiceImpl.java | 383 +++++++++++++++++++++ .../api/service/Impl/PartnerServiceImpl.java | 6 + .../api/service/Impl/UserInfoServiceImpl.java | 93 +++++ .../jeecg/modules/api/service/IndexService.java | 28 ++ .../jeecg/modules/api/service/LoginApiService.java | 14 + .../jeecg/modules/api/service/OrderService.java | 39 +++ .../jeecg/modules/api/service/PartnerService.java | 4 + .../jeecg/modules/api/service/UserInfoService.java | 14 + .../studytourController/ActivityController.java | 56 +++ .../api/studytourController/CommentController.java | 34 ++ .../api/studytourController/ConfigController.java | 51 +++ .../studytourController/ExperienceController.java | 32 ++ .../api/studytourController/ImageController.java | 51 +++ .../api/studytourController/IndexController.java | 60 ++++ .../studytourController/LoginApiController.java | 41 +++ .../api/studytourController/OrderController.java | 81 +++++ .../api/studytourController/PartnerController.java | 52 +++ .../studytourController/UserInfoController.java | 41 +++ .../org/jeecg/modules/api/utils/CommonUtils.java | 35 ++ .../system/service/impl/SysBaseApiImpl.java | 17 + 125 files changed, 3900 insertions(+), 1761 deletions(-) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice => studytourActivityDate}/entity/StudytourDatePrice.java (81%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourDatePriceMapper.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/xml/StudytourDatePriceMapper.xml create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourDatePriceService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourDatePriceServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vo/StudytourActivityDatePage.java rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/controller/StudytourDatePriceController.java => studytourCollection/controller/StudytourCollectionController.java} (53%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourCollection/entity/StudytourCollection.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourCollection/mapper/StudytourCollectionMapper.java rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/mapper/xml/StudytourOrderPersonMapper.xml => studytourCollection/mapper/xml/StudytourCollectionMapper.xml} (58%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourCollection/service/IStudytourCollectionService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourCollection/service/impl/StudytourCollectionServiceImpl.java rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderReceipt/vue/StudytourOrderReceiptList.vue => studytourCollection/vue/StudytourCollectionList.vue} (81%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderReceipt/vue/modules/StudytourOrderReceiptForm.vue => studytourCollection/vue/modules/StudytourCollectionForm.vue} (75%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/vue/modules/StudytourOrderPersonModal.Style#Drawer.vue => studytourCollection/vue/modules/StudytourCollectionModal.Style#Drawer.vue} (85%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/vue/modules/StudytourOrderPersonModal.vue => studytourCollection/vue/modules/StudytourCollectionModal.vue} (79%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/vue3/StudytourOrderPerson.api.ts => studytourCollection/vue3/StudytourCollection.api.ts} (71%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderReceipt/vue3/StudytourOrderReceipt.data.ts => studytourCollection/vue3/StudytourCollection.data.ts} (53%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/vue3/StudytourOrderPersonList.vue => studytourCollection/vue3/StudytourCollectionList.vue} (90%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/vue3/components/StudytourOrderPersonModal.vue => studytourCollection/vue3/components/StudytourCollectionModal.vue} (93%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson/controller/StudytourOrderPersonController.java => studytourConfig/controller/StudytourConfigController.java} (53%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderReceipt/entity/StudytourOrderReceipt.java => studytourConfig/entity/StudytourConfig.java} (56%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourConfig/mapper/StudytourConfigMapper.java rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/mapper/xml/StudytourDatePriceMapper.xml => studytourConfig/mapper/xml/StudytourConfigMapper.xml} (59%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourConfig/service/IStudytourConfigService.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourConfig/service/impl/StudytourConfigServiceImpl.java rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue/StudytourDatePriceList.vue => studytourConfig/vue/StudytourConfigList.vue} (74%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue/modules/StudytourDatePriceForm.vue => studytourConfig/vue/modules/StudytourConfigForm.vue} (62%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue/modules/StudytourDatePriceModal.Style#Drawer.vue => studytourConfig/vue/modules/StudytourConfigModal.Style#Drawer.vue} (85%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue/modules/StudytourDatePriceModal.vue => studytourConfig/vue/modules/StudytourConfigModal.vue} (79%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue3/StudytourDatePrice.api.ts => studytourConfig/vue3/StudytourConfig.api.ts} (72%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourConfig/vue3/StudytourConfig.data.ts rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue3/StudytourDatePriceList.vue => studytourConfig/vue3/StudytourConfigList.vue} (90%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourDatePrice/vue3/components/StudytourDatePriceModal.vue => studytourConfig/vue3/components/StudytourConfigModal.vue} (93%) delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/mapper/StudytourDatePriceMapper.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/service/IStudytourDatePriceService.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/service/impl/StudytourDatePriceServiceImpl.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/vue3/StudytourDatePrice.data.ts rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson => studytourOrder}/entity/StudytourOrderPerson.java (81%) rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson => studytourOrder}/mapper/StudytourOrderPersonMapper.java (50%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/mapper/xml/StudytourOrderPersonMapper.xml rename jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/{studytourOrderPerson => studytourOrder}/service/IStudytourOrderPersonService.java (50%) create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/service/impl/StudytourOrderPersonServiceImpl.java create mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vo/StudytourOrderPage.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/service/impl/StudytourOrderPersonServiceImpl.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/StudytourOrderPersonList.vue delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/modules/StudytourOrderPersonForm.vue delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue3/StudytourOrderPerson.data.ts delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/controller/StudytourOrderReceiptController.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/StudytourOrderReceiptMapper.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/xml/StudytourOrderReceiptMapper.xml delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/IStudytourOrderReceiptService.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/impl/StudytourOrderReceiptServiceImpl.java delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.Style#Drawer.vue delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.vue delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceipt.api.ts delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceiptList.vue delete mode 100644 jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/components/StudytourOrderReceiptModal.vue create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ActivityService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/CommentService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExperienceService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/CommentServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ConfigServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/IndexServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/LoginApiServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/OrderServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/LoginApiService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/OrderService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/UserInfoService.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ActivityController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/CommentController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ConfigController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ExperienceController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/IndexController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/LoginApiController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/OrderController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/UserInfoController.java create mode 100644 jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/utils/CommonUtils.java diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/controller/StudytourActivityController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/controller/StudytourActivityController.java index 154d671..8ef12e6 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/controller/StudytourActivityController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/controller/StudytourActivityController.java @@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 活动信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-01 * @Version: V1.0 */ @Api(tags="活动信息表") diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/entity/StudytourActivity.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/entity/StudytourActivity.java index 03e1634..05cf925 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/entity/StudytourActivity.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/entity/StudytourActivity.java @@ -4,11 +4,15 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; +import java.util.List; + 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 com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; @@ -20,7 +24,7 @@ import lombok.experimental.Accessors; /** * @Description: 活动信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-01 * @Version: V1.0 */ @Data @@ -135,4 +139,10 @@ public class StudytourActivity implements Serializable { @Dict(dicCode = "is_true") @ApiModelProperty(value = "是否下架") private java.lang.String isDel; + + //活动团期 + @TableField(exist = false) + @ApiModelProperty(value = "活动团期") + List dateList; + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/mapper/StudytourActivityMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/mapper/StudytourActivityMapper.java index d3d0747..78b5968 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/mapper/StudytourActivityMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/mapper/StudytourActivityMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 活动信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-01 * @Version: V1.0 */ public interface StudytourActivityMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/IStudytourActivityService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/IStudytourActivityService.java index 195bc70..54fed1c 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/IStudytourActivityService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/IStudytourActivityService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 活动信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-01 * @Version: V1.0 */ public interface IStudytourActivityService extends IService { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/impl/StudytourActivityServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/impl/StudytourActivityServiceImpl.java index c7a54bf..e63aff0 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/impl/StudytourActivityServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivity/service/impl/StudytourActivityServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 活动信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-01 * @Version: V1.0 */ @Service diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/controller/StudytourActivityDateController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/controller/StudytourActivityDateController.java index 62ada40..bc644cc 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/controller/StudytourActivityDateController.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/controller/StudytourActivityDateController.java @@ -1,36 +1,42 @@ package org.jeecg.modules.studytourActivityDate.controller; +import java.io.UnsupportedEncodingException; +import java.io.IOException; +import java.net.URLDecoder; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; -import org.jeecg.modules.studytourActivityDate.service.IStudytourActivityDateService; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.vo.LoginUser; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; +import org.jeecg.modules.studytourActivityDate.vo.StudytourActivityDatePage; +import org.jeecg.modules.studytourActivityDate.service.IStudytourActivityDateService; +import org.jeecg.modules.studytourActivityDate.service.IStudytourDatePriceService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -39,16 +45,18 @@ import org.jeecg.common.aspect.annotation.AutoLog; /** * @Description: 团期信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ @Api(tags="团期信息表") @RestController @RequestMapping("/studytourActivityDate/studytourActivityDate") @Slf4j -public class StudytourActivityDateController extends JeecgController { +public class StudytourActivityDateController { @Autowired private IStudytourActivityDateService studytourActivityDateService; + @Autowired + private IStudytourDatePriceService studytourDatePriceService; /** * 分页列表查询 @@ -75,28 +83,36 @@ public class StudytourActivityDateController extends JeecgController add(@RequestBody StudytourActivityDate studytourActivityDate) { - studytourActivityDateService.save(studytourActivityDate); + public Result add(@RequestBody StudytourActivityDatePage studytourActivityDatePage) { + StudytourActivityDate studytourActivityDate = new StudytourActivityDate(); + BeanUtils.copyProperties(studytourActivityDatePage, studytourActivityDate); + studytourActivityDateService.saveMain(studytourActivityDate, studytourActivityDatePage.getStudytourDatePriceList()); return Result.OK("添加成功!"); } /** * 编辑 * - * @param studytourActivityDate + * @param studytourActivityDatePage * @return */ @AutoLog(value = "团期信息表-编辑") @ApiOperation(value="团期信息表-编辑", notes="团期信息表-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody StudytourActivityDate studytourActivityDate) { - studytourActivityDateService.updateById(studytourActivityDate); + public Result edit(@RequestBody StudytourActivityDatePage studytourActivityDatePage) { + StudytourActivityDate studytourActivityDate = new StudytourActivityDate(); + BeanUtils.copyProperties(studytourActivityDatePage, studytourActivityDate); + StudytourActivityDate studytourActivityDateEntity = studytourActivityDateService.getById(studytourActivityDate.getId()); + if(studytourActivityDateEntity==null) { + return Result.error("未找到对应数据"); + } + studytourActivityDateService.updateMain(studytourActivityDate, studytourActivityDatePage.getStudytourDatePriceList()); return Result.OK("编辑成功!"); } @@ -110,7 +126,7 @@ public class StudytourActivityDateController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { - studytourActivityDateService.removeById(id); + studytourActivityDateService.delMain(id); return Result.OK("删除成功!"); } @@ -124,8 +140,8 @@ public class StudytourActivityDateController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.studytourActivityDateService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); + this.studytourActivityDateService.delBatchMain(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); } /** @@ -143,6 +159,21 @@ public class StudytourActivityDateController extends JeecgController> queryStudytourDatePriceListByMainId(@RequestParam(name="id",required=true) String id) { + List studytourDatePriceList = studytourDatePriceService.selectByMainId(id); + return Result.OK(studytourDatePriceList); } /** @@ -153,11 +184,43 @@ public class StudytourActivityDateController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(studytourActivityDate, request.getParameterMap()); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //Step.2 获取导出数据 + List queryList = studytourActivityDateService.list(queryWrapper); + // 过滤选中数据 + String selections = request.getParameter("selections"); + List studytourActivityDateList = new ArrayList(); + if(oConvertUtils.isEmpty(selections)) { + studytourActivityDateList = queryList; + }else { + List selectionList = Arrays.asList(selections.split(",")); + studytourActivityDateList = queryList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList()); + } + + // Step.3 组装pageList + List pageList = new ArrayList(); + for (StudytourActivityDate main : studytourActivityDateList) { + StudytourActivityDatePage vo = new StudytourActivityDatePage(); + BeanUtils.copyProperties(main, vo); + List studytourDatePriceList = studytourDatePriceService.selectByMainId(main.getId()); + vo.setStudytourDatePriceList(studytourDatePriceList); + pageList.add(vo); + } + + // Step.4 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, "团期信息表列表"); + mv.addObject(NormalExcelConstants.CLASS, StudytourActivityDatePage.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("团期信息表数据", "导出人:"+sysUser.getRealname(), "团期信息表")); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + return mv; } /** - * 通过excel导入数据 + * 通过excel导入数据 * * @param request * @param response @@ -165,7 +228,34 @@ public class StudytourActivityDateController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, StudytourActivityDate.class); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 获取上传文件对象 + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List list = ExcelImportUtil.importExcel(file.getInputStream(), StudytourActivityDatePage.class, params); + for (StudytourActivityDatePage page : list) { + StudytourActivityDate po = new StudytourActivityDate(); + BeanUtils.copyProperties(page, po); + studytourActivityDateService.saveMain(po, page.getStudytourDatePriceList()); + } + return Result.OK("文件导入成功!数据行数:" + list.size()); + } catch (Exception e) { + log.error(e.getMessage(),e); + return Result.error("文件导入失败:"+e.getMessage()); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.OK("文件导入失败!"); } } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourActivityDate.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourActivityDate.java index fd2cf35..e918e36 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourActivityDate.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourActivityDate.java @@ -3,8 +3,10 @@ package org.jeecg.modules.studytourActivityDate.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; -import java.math.BigDecimal; +import java.util.List; + 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; @@ -14,20 +16,16 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; /** * @Description: 团期信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ +@ApiModel(value="studytour_activity_date对象", description="团期信息表") @Data @TableName("studytour_activity_date") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="studytour_activity_date对象", description="团期信息表") public class StudytourActivityDate implements Serializable { private static final long serialVersionUID = 1L; @@ -69,12 +67,17 @@ public class StudytourActivityDate implements Serializable { private java.math.BigDecimal priceDiscount; /**是否下架*/ @Excel(name = "是否下架", width = 15, dicCode = "is_true") - @Dict(dicCode = "is_true") + @Dict(dicCode = "is_true") @ApiModelProperty(value = "是否下架") private java.lang.String isDel; /**关联活动id*/ @Excel(name = "关联活动id", width = 15, dictTable = "studytour_activity", dicText = "title", dicCode = "id") - @Dict(dictTable = "studytour_activity", dicText = "title", dicCode = "id") + @Dict(dictTable = "studytour_activity", dicText = "title", dicCode = "id") @ApiModelProperty(value = "关联活动id") private java.lang.String activityId; + + //团期价格 + @TableField(exist = false) + @ApiModelProperty(value = "团期价格") + List priceList; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/entity/StudytourDatePrice.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourDatePrice.java similarity index 81% rename from jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/entity/StudytourDatePrice.java rename to jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourDatePrice.java index f0ee764..1b4128e 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourDatePrice/entity/StudytourDatePrice.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/entity/StudytourDatePrice.java @@ -1,33 +1,29 @@ -package org.jeecg.modules.studytourDatePrice.entity; +package org.jeecg.modules.studytourActivityDate.entity; import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.util.Date; -import java.math.BigDecimal; 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 com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.aspect.annotation.Dict; +import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; +import java.io.UnsupportedEncodingException; +import java.util.List; /** * @Description: 年龄段价格表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ +@ApiModel(value="studytour_date_price对象", description="年龄段价格表") @Data @TableName("studytour_date_price") -@Accessors(chain = true) -@EqualsAndHashCode(callSuper = false) -@ApiModel(value="studytour_date_price对象", description="年龄段价格表") public class StudytourDatePrice implements Serializable { private static final long serialVersionUID = 1L; @@ -48,7 +44,7 @@ public class StudytourDatePrice implements Serializable { @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; /**年龄段id*/ - @Excel(name = "年龄段id", width = 15) + @Excel(name = "年龄段id", width = 15, dictTable = "studytour_period", dicText = "title", dicCode = "id") @ApiModelProperty(value = "年龄段id") private java.lang.String periodId; /**单人价格*/ @@ -56,7 +52,11 @@ public class StudytourDatePrice implements Serializable { @ApiModelProperty(value = "单人价格") private java.math.BigDecimal price; /**关联团期id*/ - @Excel(name = "关联团期id", width = 15) @ApiModelProperty(value = "关联团期id") private java.lang.String dateId; + + //年龄段 + @TableField(exist = false) + @ApiModelProperty(value = "年龄段") + String period_dictText; } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourActivityDateMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourActivityDateMapper.java index 3c55b41..695e55a 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourActivityDateMapper.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourActivityDateMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 团期信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ public interface StudytourActivityDateMapper extends BaseMapper { diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourDatePriceMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourDatePriceMapper.java new file mode 100644 index 0000000..4ad80f7 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/StudytourDatePriceMapper.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.studytourActivityDate.mapper; + +import java.util.List; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** + * @Description: 年龄段价格表 + * @Author: jeecg-boot + * @Date: 2025-09-08 + * @Version: V1.0 + */ +public interface StudytourDatePriceMapper extends BaseMapper { + + public boolean deleteByMainId(@Param("mainId") String mainId); + + public List selectByMainId(@Param("mainId") String mainId); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/xml/StudytourDatePriceMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/xml/StudytourDatePriceMapper.xml new file mode 100644 index 0000000..6d7c3a6 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/mapper/xml/StudytourDatePriceMapper.xml @@ -0,0 +1,16 @@ + + + + + + DELETE + FROM studytour_date_price + WHERE + date_id = #{mainId} + + + diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourActivityDateService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourActivityDateService.java index ff990af..15e1d80 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourActivityDateService.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourActivityDateService.java @@ -1,14 +1,40 @@ package org.jeecg.modules.studytourActivityDate.service; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; import com.baomidou.mybatisplus.extension.service.IService; +import java.io.Serializable; +import java.util.Collection; +import java.util.List; /** * @Description: 团期信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ public interface IStudytourActivityDateService extends IService { + /** + * 添加一对多 + * + */ + public void saveMain(StudytourActivityDate studytourActivityDate,List studytourDatePriceList) ; + + /** + * 修改一对多 + * + */ + public void updateMain(StudytourActivityDate studytourActivityDate,List studytourDatePriceList); + + /** + * 删除一对多 + */ + public void delMain (String id); + + /** + * 批量删除一对多 + */ + public void delBatchMain (Collection idList); + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourDatePriceService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourDatePriceService.java new file mode 100644 index 0000000..727afdd --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/IStudytourDatePriceService.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.studytourActivityDate.service; + +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 年龄段价格表 + * @Author: jeecg-boot + * @Date: 2025-09-08 + * @Version: V1.0 + */ +public interface IStudytourDatePriceService extends IService { + + public List selectByMainId(String mainId); +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourActivityDateServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourActivityDateServiceImpl.java index 1ba0689..38705f2 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourActivityDateServiceImpl.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourActivityDateServiceImpl.java @@ -1,19 +1,77 @@ package org.jeecg.modules.studytourActivityDate.service.impl; import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import org.jeecg.modules.studytourActivityDate.mapper.StudytourDatePriceMapper; import org.jeecg.modules.studytourActivityDate.mapper.StudytourActivityDateMapper; import org.jeecg.modules.studytourActivityDate.service.IStudytourActivityDateService; import org.springframework.stereotype.Service; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; +import java.util.List; +import java.util.Collection; /** * @Description: 团期信息表 * @Author: jeecg-boot - * @Date: 2025-08-25 + * @Date: 2025-09-08 * @Version: V1.0 */ @Service public class StudytourActivityDateServiceImpl extends ServiceImpl implements IStudytourActivityDateService { + @Autowired + private StudytourActivityDateMapper studytourActivityDateMapper; + @Autowired + private StudytourDatePriceMapper studytourDatePriceMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveMain(StudytourActivityDate studytourActivityDate, List studytourDatePriceList) { + studytourActivityDateMapper.insert(studytourActivityDate); + if(studytourDatePriceList!=null && studytourDatePriceList.size()>0) { + for(StudytourDatePrice entity:studytourDatePriceList) { + //外键设置 + entity.setDateId(studytourActivityDate.getId()); + studytourDatePriceMapper.insert(entity); + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateMain(StudytourActivityDate studytourActivityDate,List studytourDatePriceList) { + studytourActivityDateMapper.updateById(studytourActivityDate); + + //1.先删除子表数据 + studytourDatePriceMapper.deleteByMainId(studytourActivityDate.getId()); + + //2.子表数据重新插入 + if(studytourDatePriceList!=null && studytourDatePriceList.size()>0) { + for(StudytourDatePrice entity:studytourDatePriceList) { + //外键设置 + entity.setDateId(studytourActivityDate.getId()); + studytourDatePriceMapper.insert(entity); + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delMain(String id) { + studytourDatePriceMapper.deleteByMainId(id); + studytourActivityDateMapper.deleteById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delBatchMain(Collection idList) { + for(Serializable id:idList) { + studytourDatePriceMapper.deleteByMainId(id.toString()); + studytourActivityDateMapper.deleteById(id); + } + } + } diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourDatePriceServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourDatePriceServiceImpl.java new file mode 100644 index 0000000..d5cab62 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/service/impl/StudytourDatePriceServiceImpl.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.studytourActivityDate.service.impl; + +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import org.jeecg.modules.studytourActivityDate.mapper.StudytourDatePriceMapper; +import org.jeecg.modules.studytourActivityDate.service.IStudytourDatePriceService; +import org.springframework.stereotype.Service; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description: 年龄段价格表 + * @Author: jeecg-boot + * @Date: 2025-09-08 + * @Version: V1.0 + */ +@Service +public class StudytourDatePriceServiceImpl extends ServiceImpl implements IStudytourDatePriceService { + + @Autowired + private StudytourDatePriceMapper studytourDatePriceMapper; + + @Override + public List selectByMainId(String mainId) { + return studytourDatePriceMapper.selectByMainId(mainId); + } +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vo/StudytourActivityDatePage.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vo/StudytourActivityDatePage.java new file mode 100644 index 0000000..a0ecc34 --- /dev/null +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vo/StudytourActivityDatePage.java @@ -0,0 +1,77 @@ +package org.jeecg.modules.studytourActivityDate.vo; + +import java.util.List; +import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelEntity; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 团期信息表 + * @Author: jeecg-boot + * @Date: 2025-09-08 + * @Version: V1.0 + */ +@Data +@ApiModel(value="studytour_activity_datePage对象", description="团期信息表") +public class StudytourActivityDatePage { + + /**主键*/ + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**开始日期*/ + @Excel(name = "开始日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "开始日期") + private java.util.Date startDate; + /**结束日期*/ + @Excel(name = "结束日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "结束日期") + private java.util.Date endDate; + /**原价*/ + @Excel(name = "原价", width = 15) + @ApiModelProperty(value = "原价") + private java.math.BigDecimal priceOrigin; + /**优惠价*/ + @Excel(name = "优惠价", width = 15) + @ApiModelProperty(value = "优惠价") + private java.math.BigDecimal priceDiscount; + /**是否下架*/ + @Excel(name = "是否下架", width = 15, dicCode = "is_true") + @Dict(dicCode = "is_true") + @ApiModelProperty(value = "是否下架") + private java.lang.String isDel; + /**关联活动id*/ + @Excel(name = "关联活动id", width = 15, dictTable = "studytour_activity", dicText = "title", dicCode = "id") + @Dict(dictTable = "studytour_activity", dicText = "title", dicCode = "id") + @ApiModelProperty(value = "关联活动id") + private java.lang.String activityId; + + @ExcelCollection(name="年龄段价格表") + @ApiModelProperty(value = "年龄段价格表") + private List studytourDatePriceList; + +} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/StudytourActivityDateList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/StudytourActivityDateList.vue index 48bb451..17f1184 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/StudytourActivityDateList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/StudytourActivityDateList.vue @@ -8,7 +8,7 @@ - +
新增 @@ -36,15 +36,15 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/modules/StudytourActivityDateModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/modules/StudytourActivityDateModal.vue index ce7733c..5dad1da 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/modules/StudytourActivityDateModal.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue/modules/StudytourActivityDateModal.vue @@ -1,26 +1,27 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.api.ts index ee65905..8f0f53f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.api.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.api.ts @@ -9,16 +9,23 @@ enum Api { deleteBatch = '/studytourActivityDate/studytourActivityDate/deleteBatch', importExcel = '/studytourActivityDate/studytourActivityDate/importExcel', exportXls = '/studytourActivityDate/studytourActivityDate/exportXls', + studytourDatePriceList = '/studytourActivityDate/studytourActivityDate/queryStudytourDatePriceByMainId', } /** * 导出api * @param params */ export const getExportUrl = Api.exportXls; + /** * 导入api */ export const getImportUrl = Api.importExcel; +/** + * 查询子表数据 + * @param params + */ +export const studytourDatePriceList = Api.studytourDatePriceList; /** * 列表接口 * @param params diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.data.ts index 5bd49d8..ab96c4b 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDate.data.ts @@ -2,6 +2,7 @@ import {BasicColumn} from '/@/components/Table'; import {FormSchema} from '/@/components/Table'; import { rules} from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; +import {JVxeTypes,JVxeColumn} from '/@/components/jeecg/JVxeTable/types' //列表数据 export const columns: BasicColumn[] = [ { @@ -83,3 +84,34 @@ export const formSchema: FormSchema[] = [ }, }, ]; +//子表单数据 +//子表表格配置 +export const studytourDatePriceColumns: JVxeColumn[] = [ + { + title: '年龄段id', + key: 'periodId', + type: JVxeTypes.select, + options:[], + dictCode:"studytour_period,title,id", + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '单人价格', + key: 'price', + type: JVxeTypes.input, + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + { + title: '关联团期id', + key: 'dateId', + type: JVxeTypes.selectSearch, + dictCode:"studytour_activity_date,id,id", + width:"200px", + placeholder: '请输入${title}', + defaultValue:'', + }, + ] diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDateList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDateList.vue index a74e79f..3a3423a 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDateList.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourActivityDate/vue3/StudytourActivityDateList.vue @@ -42,15 +42,15 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue/modules/StudytourOrderModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue/modules/StudytourOrderModal.vue index 5650c41..622dbf1 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue/modules/StudytourOrderModal.vue +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue/modules/StudytourOrderModal.vue @@ -1,26 +1,27 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue3/StudytourOrder.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue3/StudytourOrder.data.ts index 7f92dd4..d9d266f 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue3/StudytourOrder.data.ts +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrder/vue3/StudytourOrder.data.ts @@ -50,6 +50,16 @@ export const columns: BasicColumn[] = [ align:"center", dataIndex: 'discount' }, + { + title: '支付金额', + align:"center", + dataIndex: 'payAmount' + }, + { + title: '支付时间', + align:"center", + dataIndex: 'payTime' + }, { title: '关联优惠券id', align:"center", @@ -81,10 +91,15 @@ export const columns: BasicColumn[] = [ dataIndex: 'activityTag' }, { - title: '关联活动id', + title: '关联活动', align:"center", dataIndex: 'activityId_dictText' }, + { + title: '关联用户', + align:"center", + dataIndex: 'userId_dictText' + }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ @@ -131,6 +146,16 @@ export const formSchema: FormSchema[] = [ field: 'discount', component: 'InputNumber', }, + { + label: '支付金额', + field: 'payAmount', + component: 'InputNumber', + }, + { + label: '支付时间', + field: 'payTime', + component: 'Input', + }, { label: '关联优惠券id', field: 'couponId', @@ -168,11 +193,19 @@ export const formSchema: FormSchema[] = [ component: 'Input', }, { - label: '关联活动id', + label: '关联活动', field: 'activityId', - component: 'JDictSelectTag', + component: 'JSearchSelect', componentProps:{ - dictCode:"studytour_activity,title,id" - }, + dict:"studytour_activity,title,id" + }, + }, + { + label: '关联用户', + field: 'userId', + component: 'JSearchSelect', + componentProps:{ + dict:"han_hai_member,nick_name,id" + }, }, ]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/service/impl/StudytourOrderPersonServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/service/impl/StudytourOrderPersonServiceImpl.java deleted file mode 100644 index 2aa234c..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/service/impl/StudytourOrderPersonServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jeecg.modules.studytourOrderPerson.service.impl; - -import org.jeecg.modules.studytourOrderPerson.entity.StudytourOrderPerson; -import org.jeecg.modules.studytourOrderPerson.mapper.StudytourOrderPersonMapper; -import org.jeecg.modules.studytourOrderPerson.service.IStudytourOrderPersonService; -import org.springframework.stereotype.Service; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -/** - * @Description: 订单人员表 - * @Author: jeecg-boot - * @Date: 2025-08-25 - * @Version: V1.0 - */ -@Service -public class StudytourOrderPersonServiceImpl extends ServiceImpl implements IStudytourOrderPersonService { - -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/StudytourOrderPersonList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/StudytourOrderPersonList.vue deleted file mode 100644 index 66878bb..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/StudytourOrderPersonList.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/modules/StudytourOrderPersonForm.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/modules/StudytourOrderPersonForm.vue deleted file mode 100644 index 957f6c0..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue/modules/StudytourOrderPersonForm.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue3/StudytourOrderPerson.data.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue3/StudytourOrderPerson.data.ts deleted file mode 100644 index 97c5625..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderPerson/vue3/StudytourOrderPerson.data.ts +++ /dev/null @@ -1,89 +0,0 @@ -import {BasicColumn} from '/@/components/Table'; -import {FormSchema} from '/@/components/Table'; -import { rules} from '/@/utils/helper/validator'; -import { render } from '/@/utils/common/renderUtils'; -//列表数据 -export const columns: BasicColumn[] = [ - { - title: '姓名', - align:"center", - dataIndex: 'name' - }, - { - title: '年龄段', - align:"center", - dataIndex: 'period' - }, - { - title: '年龄段描述', - align:"center", - dataIndex: 'periodDesc' - }, - { - title: '身份证号', - align:"center", - dataIndex: 'cerNo' - }, - { - title: '价格', - align:"center", - dataIndex: 'price' - }, - { - title: '关联人员id', - align:"center", - dataIndex: 'personId_dictText' - }, - { - title: '关联订单id', - align:"center", - dataIndex: 'orderId_dictText' - }, -]; -//查询数据 -export const searchFormSchema: FormSchema[] = [ -]; -//表单数据 -export const formSchema: FormSchema[] = [ - { - label: '姓名', - field: 'name', - component: 'Input', - }, - { - label: '年龄段', - field: 'period', - component: 'Input', - }, - { - label: '年龄段描述', - field: 'periodDesc', - component: 'Input', - }, - { - label: '身份证号', - field: 'cerNo', - component: 'Input', - }, - { - label: '价格', - field: 'price', - component: 'InputNumber', - }, - { - label: '关联人员id', - field: 'personId', - component: 'JDictSelectTag', - componentProps:{ - dictCode:"studytour_person,name,id" - }, - }, - { - label: '关联订单id', - field: 'orderId', - component: 'JDictSelectTag', - componentProps:{ - dictCode:"studytour_order,id,id" - }, - }, -]; diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/controller/StudytourOrderReceiptController.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/controller/StudytourOrderReceiptController.java deleted file mode 100644 index 7901874..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/controller/StudytourOrderReceiptController.java +++ /dev/null @@ -1,171 +0,0 @@ -package org.jeecg.modules.studytourOrderReceipt.controller; - -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.studytourOrderReceipt.entity.StudytourOrderReceipt; -import org.jeecg.modules.studytourOrderReceipt.service.IStudytourOrderReceiptService; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.jeecg.common.system.base.controller.JeecgController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.jeecg.common.aspect.annotation.AutoLog; - - /** - * @Description: 订单发票信息表 - * @Author: jeecg-boot - * @Date: 2025-08-25 - * @Version: V1.0 - */ -@Api(tags="订单发票信息表") -@RestController -@RequestMapping("/studytourOrderReceipt/studytourOrderReceipt") -@Slf4j -public class StudytourOrderReceiptController extends JeecgController { - @Autowired - private IStudytourOrderReceiptService studytourOrderReceiptService; - - /** - * 分页列表查询 - * - * @param studytourOrderReceipt - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "订单发票信息表-分页列表查询") - @ApiOperation(value="订单发票信息表-分页列表查询", notes="订单发票信息表-分页列表查询") - @GetMapping(value = "/list") - public Result> queryPageList(StudytourOrderReceipt studytourOrderReceipt, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(studytourOrderReceipt, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = studytourOrderReceiptService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 添加 - * - * @param studytourOrderReceipt - * @return - */ - @AutoLog(value = "订单发票信息表-添加") - @ApiOperation(value="订单发票信息表-添加", notes="订单发票信息表-添加") - @PostMapping(value = "/add") - public Result add(@RequestBody StudytourOrderReceipt studytourOrderReceipt) { - studytourOrderReceiptService.save(studytourOrderReceipt); - return Result.OK("添加成功!"); - } - - /** - * 编辑 - * - * @param studytourOrderReceipt - * @return - */ - @AutoLog(value = "订单发票信息表-编辑") - @ApiOperation(value="订单发票信息表-编辑", notes="订单发票信息表-编辑") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody StudytourOrderReceipt studytourOrderReceipt) { - studytourOrderReceiptService.updateById(studytourOrderReceipt); - return Result.OK("编辑成功!"); - } - - /** - * 通过id删除 - * - * @param id - * @return - */ - @AutoLog(value = "订单发票信息表-通过id删除") - @ApiOperation(value="订单发票信息表-通过id删除", notes="订单发票信息表-通过id删除") - @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name="id",required=true) String id) { - studytourOrderReceiptService.removeById(id); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @AutoLog(value = "订单发票信息表-批量删除") - @ApiOperation(value="订单发票信息表-批量删除", notes="订单发票信息表-批量删除") - @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.studytourOrderReceiptService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } - - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "订单发票信息表-通过id查询") - @ApiOperation(value="订单发票信息表-通过id查询", notes="订单发票信息表-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - StudytourOrderReceipt studytourOrderReceipt = studytourOrderReceiptService.getById(id); - if(studytourOrderReceipt==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(studytourOrderReceipt); - } - - /** - * 导出excel - * - * @param request - * @param studytourOrderReceipt - */ - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, StudytourOrderReceipt studytourOrderReceipt) { - return super.exportXls(request, studytourOrderReceipt, StudytourOrderReceipt.class, "订单发票信息表"); - } - - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, StudytourOrderReceipt.class); - } - -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/StudytourOrderReceiptMapper.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/StudytourOrderReceiptMapper.java deleted file mode 100644 index 08c9028..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/StudytourOrderReceiptMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jeecg.modules.studytourOrderReceipt.mapper; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import org.jeecg.modules.studytourOrderReceipt.entity.StudytourOrderReceipt; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** - * @Description: 订单发票信息表 - * @Author: jeecg-boot - * @Date: 2025-08-25 - * @Version: V1.0 - */ -public interface StudytourOrderReceiptMapper extends BaseMapper { - -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/xml/StudytourOrderReceiptMapper.xml b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/xml/StudytourOrderReceiptMapper.xml deleted file mode 100644 index 00e479a..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/mapper/xml/StudytourOrderReceiptMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/IStudytourOrderReceiptService.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/IStudytourOrderReceiptService.java deleted file mode 100644 index e593990..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/IStudytourOrderReceiptService.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.jeecg.modules.studytourOrderReceipt.service; - -import org.jeecg.modules.studytourOrderReceipt.entity.StudytourOrderReceipt; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - * @Description: 订单发票信息表 - * @Author: jeecg-boot - * @Date: 2025-08-25 - * @Version: V1.0 - */ -public interface IStudytourOrderReceiptService extends IService { - -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/impl/StudytourOrderReceiptServiceImpl.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/impl/StudytourOrderReceiptServiceImpl.java deleted file mode 100644 index b80ca06..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/service/impl/StudytourOrderReceiptServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.jeecg.modules.studytourOrderReceipt.service.impl; - -import org.jeecg.modules.studytourOrderReceipt.entity.StudytourOrderReceipt; -import org.jeecg.modules.studytourOrderReceipt.mapper.StudytourOrderReceiptMapper; -import org.jeecg.modules.studytourOrderReceipt.service.IStudytourOrderReceiptService; -import org.springframework.stereotype.Service; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -/** - * @Description: 订单发票信息表 - * @Author: jeecg-boot - * @Date: 2025-08-25 - * @Version: V1.0 - */ -@Service -public class StudytourOrderReceiptServiceImpl extends ServiceImpl implements IStudytourOrderReceiptService { - -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.Style#Drawer.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.Style#Drawer.vue deleted file mode 100644 index e90187d..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.Style#Drawer.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.vue deleted file mode 100644 index 3a92e6d..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue/modules/StudytourOrderReceiptModal.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceipt.api.ts b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceipt.api.ts deleted file mode 100644 index 5e6b09e..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceipt.api.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {defHttp} from '/@/utils/http/axios'; -import {Modal} from 'ant-design-vue'; - -enum Api { - list = '/studytourOrderReceipt/studytourOrderReceipt/list', - save='/studytourOrderReceipt/studytourOrderReceipt/add', - edit='/studytourOrderReceipt/studytourOrderReceipt/edit', - deleteOne = '/studytourOrderReceipt/studytourOrderReceipt/delete', - deleteBatch = '/studytourOrderReceipt/studytourOrderReceipt/deleteBatch', - importExcel = '/studytourOrderReceipt/studytourOrderReceipt/importExcel', - exportXls = '/studytourOrderReceipt/studytourOrderReceipt/exportXls', -} -/** - * 导出api - * @param params - */ -export const getExportUrl = Api.exportXls; -/** - * 导入api - */ -export const getImportUrl = Api.importExcel; -/** - * 列表接口 - * @param params - */ -export const list = (params) => - defHttp.get({url: Api.list, params}); - -/** - * 删除单个 - */ -export const deleteOne = (params,handleSuccess) => { - return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { - handleSuccess(); - }); -} -/** - * 批量删除 - * @param params - */ -export const batchDelete = (params, handleSuccess) => { - Modal.confirm({ - title: '确认删除', - content: '是否删除选中数据', - okText: '确认', - cancelText: '取消', - onOk: () => { - return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { - handleSuccess(); - }); - } - }); -} -/** - * 保存或者更新 - * @param params - */ -export const saveOrUpdate = (params, isUpdate) => { - let url = isUpdate ? Api.edit : Api.save; - return defHttp.post({url: url, params}); -} diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceiptList.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceiptList.vue deleted file mode 100644 index e151b9b..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/StudytourOrderReceiptList.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/components/StudytourOrderReceiptModal.vue b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/components/StudytourOrderReceiptModal.vue deleted file mode 100644 index ab44127..0000000 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourOrderReceipt/vue3/components/StudytourOrderReceiptModal.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - \ No newline at end of file diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java new file mode 100644 index 0000000..e2fe1a1 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/bean/PageBean.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.api.bean; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PageBean { + /**显示条数*/ + @ApiModelProperty(value = "显示条数" ) + private Integer pageSize; + /**当前页*/ + @ApiModelProperty(value = "当前页" ) + private Integer pageNo; + + public PageBean() { + this.pageNo = 1; + this.pageSize = 1000; + } +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ActivityService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ActivityService.java new file mode 100644 index 0000000..9605eef --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ActivityService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.api.service; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; + +public interface ActivityService { + + //首页&分类-查询研学活动列表 + public Result queryActivityList(StudytourActivity studytourActivity, PageBean pageBean); + + //首页&分类-查询研学活动详情 + public Result queryActivityById(String activityId); + + //首页&分类-查询我收藏的研学活动列表 + public Result queryCollectionActivityList(String token, PageBean pageBean); + + //首页&分类-收藏研学活动 + public Result collectionActivity(String token, String activityId); + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/CommentService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/CommentService.java new file mode 100644 index 0000000..701a482 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/CommentService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.api.service; + +public interface CommentService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java new file mode 100644 index 0000000..da126f7 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.api.service; + +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourCategory.entity.StudytourCategory; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +public interface ConfigService { + + //查询系统配置列表 + public Result queryConfigList(PageBean pageBean); + + //查询系统配置详情 + public Result queryConfigByParamCode(String paramCode); + + //系统配置-查询研学活动分类列表 + public Result queryCategoryList(StudytourCategory studytourCategory, PageBean pageBean); + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExperienceService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExperienceService.java new file mode 100644 index 0000000..3b7f409 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExperienceService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.api.service; + +public interface ExperienceService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java new file mode 100644 index 0000000..2a7b106 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.api.service; + +public interface ImageService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java new file mode 100644 index 0000000..f77d9eb --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java @@ -0,0 +1,302 @@ +package org.jeecg.modules.api.service.Impl; + +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.config.shiro.ShiroRealm; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.ActivityService; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; +import org.jeecg.modules.studytourActivity.service.IStudytourActivityService; +import org.jeecg.modules.studytourActivityDate.entity.StudytourActivityDate; +import org.jeecg.modules.studytourActivityDate.entity.StudytourDatePrice; +import org.jeecg.modules.studytourActivityDate.service.IStudytourActivityDateService; +import org.jeecg.modules.studytourActivityDate.service.IStudytourDatePriceService; +import org.jeecg.modules.studytourBanner.entity.StudytourBanner; +import org.jeecg.modules.studytourBanner.service.IStudytourBannerService; +import org.jeecg.modules.studytourCollection.entity.StudytourCollection; +import org.jeecg.modules.studytourCollection.service.IStudytourCollectionService; +import org.jeecg.modules.studytourPeriod.entity.StudytourPeriod; +import org.jeecg.modules.studytourPeriod.service.IStudytourPeriodService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Slf4j +public class ActivityServiceImpl implements ActivityService { + + /******************************************************************************************************************/ + //权限验证 + @Resource + private ShiroRealm shiroRealm; + //用户信息 + @Resource + private IHanHaiMemberService hanHaiMemberService; + //年龄段信息 + @Resource + private IStudytourPeriodService studytourPeriodService; + //研学活动信息 + @Resource + private IStudytourActivityService studytourActivityService; + //研学活动团期信息 + @Resource + private IStudytourActivityDateService studytourActivityDateService; + //研学活动团期价格 + @Resource + private IStudytourDatePriceService studytourDatePriceService; + //研学活动收藏信息 + @Resource + private IStudytourCollectionService studytourCollectionService; + /******************************************************************************************************************/ + + //首页&分类-查询研学活动列表 + @Override + public Result queryActivityList(StudytourActivity studytourActivity, PageBean pageBean) { + log.info("开始查询研学活动列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourActivityService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(studytourActivity.getIsDiscount())){ + //限时优惠 + query.eq(StudytourActivity::getIsDiscount, studytourActivity.getIsDiscount()); + } + if(StringUtils.isNotBlank(studytourActivity.getIsHot())){ + //口碑爆款 + query.eq(StudytourActivity::getIsHot, studytourActivity.getIsHot()); + } + if(StringUtils.isNotBlank(studytourActivity.getIsNew())){ + //新上线路 + query.eq(StudytourActivity::getIsNew, studytourActivity.getIsNew()); + } + if(StringUtils.isNotBlank(studytourActivity.getAddressId())){ + //地点 + query.eq(StudytourActivity::getAddressId, studytourActivity.getAddressId()); + } + if(StringUtils.isNotBlank(studytourActivity.getAgeId())){ + //适合年龄 + query.eq(StudytourActivity::getAgeId, studytourActivity.getAgeId()); + } + if(StringUtils.isNotBlank(studytourActivity.getTimeId())){ + //活动时长 + query.eq(StudytourActivity::getTimeId, studytourActivity.getTimeId()); + } + if(StringUtils.isNotBlank(studytourActivity.getCategoryId())){ + //活动分类 + query.eq(StudytourActivity::getCategoryId, studytourActivity.getCategoryId()); + } + if(StringUtils.isNotBlank(studytourActivity.getTitle())){ + //标题 + query.like(StudytourActivity::getTitle, studytourActivity.getTitle()); + } + + //是否下架 + query.eq(StudytourActivity::getIsDel, "0"); + + //按照排序编号升序排列 + query.orderByDesc(StudytourActivity::getCreateTime); + + //获取研学活动列表 + pageList = query.page(page); + + log.info("研学活动列表查询结束"); + return Result.OK("研学活动列表", pageList); + }catch (Exception e){ + log.info("研学活动列表查询失败"); + e.printStackTrace(); + return Result.error("研学活动列表查询失败"); + } + } + + //首页&分类-查询研学活动详情 + @Override + public Result queryActivityById(String activityId) { + log.info("开始查询研学活动详情"); + //返回信息 + String massege = ""; + + try{ + StudytourActivity one = studytourActivityService + .lambdaQuery() + .eq(StudytourActivity::getId, activityId) + .one(); + if(null == one){ + log.info("研学活动不存在,请检查活动id:{}", activityId); + return Result.error("研学活动不存在,请检查活动id:"+activityId, one); + } + + List dateList = studytourActivityDateService + .lambdaQuery() + .eq(StudytourActivityDate::getActivityId, activityId) + .list(); + + List periodList = studytourPeriodService.list(); + if(null != dateList){ + //填充活动团期 + one.setDateList(dateList); + for (StudytourActivityDate studytourActivityDate : dateList) { + + //填充团期价格 + List priceList = studytourDatePriceService + .lambdaQuery() + .eq(StudytourDatePrice::getDateId,studytourActivityDate.getId()) + .list(); + if(null != priceList){ + //填充团期价格 + studytourActivityDate.setPriceList(priceList); + + //填充价格年龄段名称 + for (StudytourDatePrice studytourDatePrice : priceList) { + for (StudytourPeriod studytourPeriod : periodList) { + if(studytourDatePrice.getPeriodId().equals(studytourPeriod.getId())){ + studytourDatePrice.setPeriod_dictText(studytourPeriod.getTitle()); + break; + } + } + } + } + } + } + + log.info("研学活动详情查询结束"); + return Result.OK("研学活动详情", one); + }catch (Exception e){ + log.info("研学活动详情查询失败"); + e.printStackTrace(); + return Result.error("研学活动详情查询失败"); + } + } + + //首页&分类-查询我收藏的研学活动列表 + @Override + public Result queryCollectionActivityList(String token, PageBean pageBean) { + log.info("开始查询活动信息"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //1、获取活动列表 + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourCollectionService + .lambdaQuery() + .eq(StudytourCollection::getUserId, hanHaiMember.getId()); + + //组装查询条件 + + //按照创建时间降序排列 + query.orderByDesc(StudytourCollection::getCreateTime); + + //获取活动信息 + pageList = query.page(page); + + //2、添加活动信息至收藏内 + for (StudytourCollection record : pageList.getRecords()) { + StudytourActivity one = studytourActivityService + .lambdaQuery() + .eq(StudytourActivity::getId, record.getActivityId()) + .one(); + record.setActivity(one); + } + + log.info("活动信息查询结束"); + return Result.OK("活动列表", pageList); + }catch (Exception e){ + log.info("活动信息查询失败"); + e.printStackTrace(); + return Result.error("活动列表查询失败"); + } + } + + //首页&分类-收藏研学活动 + @Override + public Result collectionActivity(String token, String activityId) { + log.info("收藏活动开始"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + + try{ + //1、校验活动是否存在 + StudytourActivity activity = studytourActivityService.getById(activityId); + if(null == activity){ + log.info("活动不存在,请检查活动id:{}", activityId); + return Result.error("活动不存在,请检查活动id:" + activityId); + } + + //2、校验活动是否已被用户收藏 + StudytourCollection collection = studytourCollectionService + .lambdaQuery() + .eq(StudytourCollection::getActivityId, activityId) + .eq(StudytourCollection::getUserId, hanHaiMember.getId()) + .one(); + + //3、添加/取消收藏 + if(null == collection){ + //3.1、添加收藏 + log.info("执行添加收藏"); + StudytourCollection studytourCollection = new StudytourCollection(); + studytourCollection.setActivityId(activityId); + studytourCollection.setUserId(hanHaiMember.getId()); + boolean result = studytourCollectionService.save(studytourCollection); + + //判断是否新增成功 + if(result){ + log.info("收藏成功"); + return Result.OK("收藏成功"); + }else { + log.info("收藏失败"); + return Result.error("收藏失败"); + } + + }else { + //3.2、取消收藏 + log.info("执行取消收藏"); + boolean result = studytourCollectionService.removeById(collection.getId()); + + //判断是否新增成功 + if(result){ + log.info("取消收藏成功"); + return Result.OK("取消收藏成功"); + }else { + log.info("取消收藏失败"); + return Result.error("取消收藏失败"); + } + } + + }catch (Exception e){ + log.error("操作失败"); + e.printStackTrace(); + return Result.error("操作失败"); + } + } +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/CommentServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/CommentServiceImpl.java new file mode 100644 index 0000000..12ee848 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/CommentServiceImpl.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.api.service.Impl; + +import org.jeecg.modules.api.service.CommentService; + +public class CommentServiceImpl implements CommentService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ConfigServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ConfigServiceImpl.java new file mode 100644 index 0000000..3abd0bf --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ConfigServiceImpl.java @@ -0,0 +1,134 @@ +package org.jeecg.modules.api.service.Impl; + +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.ConfigService; +import org.jeecg.modules.studytourCategory.entity.StudytourCategory; +import org.jeecg.modules.studytourCategory.service.IStudytourCategoryService; +import org.jeecg.modules.studytourCollection.service.IStudytourCollectionService; +import org.jeecg.modules.studytourConfig.entity.StudytourConfig; +import org.jeecg.modules.studytourConfig.service.IStudytourConfigService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class ConfigServiceImpl implements ConfigService { + + /******************************************************************************************************************/ + //研学活动分类信息 + @Resource + private IStudytourCategoryService studytourCategoryService; + //研学活动分类信息 + @Resource + private IStudytourConfigService studytourConfigService; + /******************************************************************************************************************/ + + //查询系统配置列表 + @Override + public Result queryConfigList(PageBean pageBean) { + log.info("开始查询系统配置列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourConfigService + .lambdaQuery(); + + //组装查询条件 + //按照创建时间降序排列 + query.orderByDesc(StudytourConfig::getCreateTime); + + //获取系统配置列表信息 + pageList = query.page(page); + + log.info("系统配置查询结束"); + return Result.OK("系统配置列表", pageList); + }catch (Exception e){ + log.error("系统配置查询失败"); + e.printStackTrace(); + return Result.error("系统配置列表查询失败"); + } + } + + //查询系统配置详情 + @Override + public Result queryConfigByParamCode(String paramCode) { + log.info("开始查询系统配置详情"); + //返回信息 + String massege = ""; + + try{ + StudytourConfig config = studytourConfigService + .lambdaQuery() + .eq(StudytourConfig::getParamCode, paramCode) + .one(); + + log.info("系统配置详情查询结束"); + return Result.OK("配置详情", config); + }catch (Exception e){ + log.error("系统配置详情查询失败"); + e.printStackTrace(); + return Result.error("配置详情查询失败"); + } + } + + //系统配置-查询研学活动分类列表 + @Override + public Result queryCategoryList(StudytourCategory studytourCategory, PageBean pageBean) { + log.info("开始查询研学活动分类列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourCategoryService + .lambdaQuery(); + + //组装查询条件 + //父id + if(StringUtils.isNotEmpty(studytourCategory.getPid())){ + query.eq(StudytourCategory::getPid, studytourCategory.getPid()); + }else { + query.eq(StudytourCategory::getPid, "0"); + } + + if(StringUtils.isNotEmpty(studytourCategory.getIsShow())){ + query.eq(StudytourCategory::getIsShow, studytourCategory.getIsShow()); + } + + //按照排序编号升序排列 + query.orderByDesc(StudytourCategory::getCreateTime); + + //获取研学活动分类列表信息 + pageList = query.page(page); + + log.info("研学活动分类查询结束"); + return Result.OK("研学活动分类列表", pageList); + }catch (Exception e){ + log.error("研学活动分类查询失败"); + e.printStackTrace(); + return Result.error("研学活动分类列表查询失败"); + } + } +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java new file mode 100644 index 0000000..058df02 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.api.service.Impl; + +import org.jeecg.modules.api.service.ExperienceService; + +public class ExperienceServiceImpl implements ExperienceService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java new file mode 100644 index 0000000..a91233f --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.api.service.Impl; + +import org.jeecg.modules.api.service.ImageService; + +public class ImageServiceImpl implements ImageService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/IndexServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/IndexServiceImpl.java new file mode 100644 index 0000000..28a4179 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/IndexServiceImpl.java @@ -0,0 +1,212 @@ +package org.jeecg.modules.api.service.Impl; + +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.IndexService; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; +import org.jeecg.modules.studytourBanner.entity.StudytourBanner; +import org.jeecg.modules.studytourBanner.service.IStudytourBannerService; +import org.jeecg.modules.studytourNews.entity.StudytourNews; +import org.jeecg.modules.studytourNews.service.IStudytourNewsService; +import org.jeecg.modules.studytourPolicy.entity.StudytourPolicy; +import org.jeecg.modules.studytourPolicy.service.IStudytourPolicyService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class IndexServiceImpl implements IndexService { + + /******************************************************************************************************************/ + //轮播图列表 + @Resource + private IStudytourBannerService studytourBannerService; + //研学政策列表 + @Resource + private IStudytourPolicyService studytourPolicyService; + //公司动态列表 + @Resource + private IStudytourNewsService studytourNewsService; + /******************************************************************************************************************/ + + //首页-查询banner图列表 + @Override + public Result queryBannerList(StudytourBanner studytourBanner, PageBean pageBean) { + log.info("开始查询轮播图列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourBannerService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(studytourBanner.getTitle())){ + //标题 + query.like(StudytourBanner::getTitle, studytourBanner.getTitle()); + } + if(StringUtils.isNotBlank(studytourBanner.getType())){ + //分类 + query.eq(StudytourBanner::getType, studytourBanner.getType()); + } + + //按照排序编号升序排列 + query.orderByAsc(StudytourBanner::getOrderNo); + + //获取轮播图列表 + pageList = query.page(page); + + log.info("轮播图列表查询结束"); + return Result.OK("轮播图列表", pageList); + }catch (Exception e){ + log.info("轮播图列表查询失败"); + e.printStackTrace(); + return Result.error("轮播图列表查询失败"); + } + } + + //首页-查询研学政策列表 + @Override + public Result queryPolicyList(StudytourPolicy studytourPolicy, PageBean pageBean) { + log.info("开始查询研学政策列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourPolicyService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(studytourPolicy.getTitle())){ + //标题 + query.like(StudytourPolicy::getTitle, studytourPolicy.getTitle()); + } + + //按照创建时间降序排列 + query.orderByDesc(StudytourPolicy::getCreateTime); + + //获取研学政策列表 + pageList = query.page(page); + + log.info("研学政策列表查询结束"); + return Result.OK("研学政策列表", pageList); + }catch (Exception e){ + log.info("研学政策列表查询失败"); + e.printStackTrace(); + return Result.error("研学政策列表查询失败"); + } + } + + //首页-查询研学政策详情 + @Override + public Result queryPolicyById(String policyId) { + log.info("开始查询研学政策详情"); + //返回信息 + String massege = ""; + + try{ + StudytourPolicy one = studytourPolicyService + .lambdaQuery() + .eq(StudytourPolicy::getId, policyId) + .one(); + if(null == one){ + log.info("研学政策不存在,请检查政策id:{}", policyId); + return Result.error("研学政策不存在,请检查政策id:"+policyId); + } + + log.info("研学政策详情查询结束"); + return Result.OK("研学政策详情", one); + }catch (Exception e){ + log.info("研学政策详情查询失败"); + e.printStackTrace(); + return Result.error("研学政策详情查询失败"); + } + } + + //首页-查询公司动态详情 + @Override + public Result queryNewsList(StudytourNews studytourNews, PageBean pageBean) { + log.info("开始查询公司动态列表"); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourNewsService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(studytourNews.getTitle())){ + //标题 + query.like(StudytourNews::getTitle, studytourNews.getTitle()); + } + + //按照创建时间降序排列 + query.orderByDesc(StudytourNews::getCreateTime); + + //获取公司动态列表 + pageList = query.page(page); + + log.info("公司动态列表查询结束"); + return Result.OK("公司动态列表", pageList); + }catch (Exception e){ + log.info("公司动态列表查询失败"); + e.printStackTrace(); + return Result.error("公司动态列表查询失败"); + } + } + + //首页-查询公司动态详情 + @Override + public Result queryNewsById(String newsId) { + log.info("开始查询公司动态详情"); + //返回信息 + String massege = ""; + + try{ + StudytourNews one = studytourNewsService + .lambdaQuery() + .eq(StudytourNews::getId, newsId) + .one(); + if(null == one){ + log.info("公司动态不存在,请检查动态id:{}", newsId); + return Result.error("公司动态不存在,请检查动态id:"+newsId); + } + + log.info("公司动态详情查询结束"); + return Result.OK("公司动态详情", one); + }catch (Exception e){ + log.info("公司动态详情查询失败"); + e.printStackTrace(); + return Result.error("公司动态详情查询失败"); + } + } +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/LoginApiServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/LoginApiServiceImpl.java new file mode 100644 index 0000000..51e8bc5 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/LoginApiServiceImpl.java @@ -0,0 +1,173 @@ +package org.jeecg.modules.api.service.Impl; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.api.service.LoginApiService; +import org.jeecg.modules.bean.HttpConf; +import org.jeecg.modules.bean.LoginReq; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +@Service +@Slf4j +public class LoginApiServiceImpl implements LoginApiService { + + /******************************************************************************************************************/ + //微信小程序appid(鸿宇研学生) + private static final String mpAppId = "wxee64675d48680dd4"; + //微信小程序appSecret(鸿宇研学生) + private static final String mpAppSecret = "d7e3f49858350cf40b1aeeb8fa1c61eb"; + + @Resource + private RedisUtil redisUtil; + + @Resource + private IHanHaiMemberService hanHaiMemberService; + + @Resource + private HttpConf httpConf; + /******************************************************************************************************************/ + + @Override + public Result login(LoginReq loginReq) { + Result result = new Result<>(); + Map map = new HashMap<>(); + if (StringUtils.isBlank(loginReq.getCode())) { + throw new JeecgBootException("小程序code为空"); + } + String loginUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=" + mpAppId + "&secret=" + mpAppSecret+ "&js_code=" + loginReq.getCode() + "&grant_type=authorization_code"; + //使用工具类 + JSONObject json_test = httpConf.getJSONObject(loginUrl); + String wxOpenid = json_test.getString("openid"); + String sessionKey = json_test.getString("session_key"); + if (StringUtils.isBlank(wxOpenid)) { + throw new JeecgBootException("未获取到openid"); + } + + HanHaiMember member = hanHaiMemberService.lambdaQuery().eq(HanHaiMember::getAppletOpenid,wxOpenid).one(); + if (member == null) { + //如果user等于null说明该用户第一次登录,数据库没有该用户信息。 + loginReq.setOpenid(wxOpenid); + loginReq.setSession_key(sessionKey); + member = new HanHaiMember(); +// member.setSesssionKey(sessionKey); + member.setAppletOpenid(wxOpenid); + member.setNickName(loginReq.getNickName()); + member.setHeadImage(loginReq.getHeadimgurl()); + // 生成token返回给小程序端 + String token = JwtUtil.sign(member.getAppletOpenid(), wxOpenid); + hanHaiMemberService.save(member); + redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); + // 设置超时时间 + redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 100); + map.put("userInfo", member); + map.put("token", token); + + result.setCode(200); + result.setResult(map); + return result; + } else { +// member.setHeadImage(loginReq.getHeadimgurl()); +// member.setSessionKey(sessionKey); +// memberService.saveOrUpdate(member); + // 生成token返回给小程序端 + + String token = JwtUtil.sign(member.getAppletOpenid(), wxOpenid); + redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); + // 设置超时时间 + redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 100); + map.put("userInfo", member); + map.put("token", token); + //用户id做im账号 + result.setResult(map); + result.setCode(200); +// result.setMessage(member.getNickName()+"已于"+member.getCreateTime()+"注册成功!请勿重复注册!"); +// // 未绑定手机号,跳转授权绑定手机号 +// if (StringUtils.isBlank(member.getPhone())) { +// result.setMessage("该微信用户尚未绑定手机号,请授权手机进行绑定"); +// result.setCode(905); +// result.setResult(map); +// return result; +// } + } + return result; + } + + @Override + public Result bindPhone(String phoneCode) { + try { + String phoneNumber = this.getPhoneNumber(phoneCode); + return Result.OK(phoneNumber); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + + private static final String API_URL = "https://api.weixin.qq.com/wxa/business/getuserphonenumber"; + public String getPhoneNumber(String code) throws Exception { + URL url = new URL(API_URL + "?access_token=" + this.getAccessToken()); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/json; utf-8"); + conn.setRequestProperty("Accept", "application/json"); + conn.setDoOutput(true); + + JSONObject jsonInput = new JSONObject(); + jsonInput.put("code", code); + + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + byte[] input = jsonInput.toString().getBytes(StandardCharsets.UTF_8); + os.write(input, 0, input.length); + } + + try (BufferedReader br = new BufferedReader( + new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) { + StringBuilder response = new StringBuilder(); + String responseLine; + while ((responseLine = br.readLine()) != null) { + response.append(responseLine.trim()); + } + //获取手机号码 + return response.toString(); + } + } + + private static final String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; + public String getAccessToken() throws Exception { + String requestUrl = String.format(TOKEN_URL, mpAppId, mpAppSecret); + URL url = new URL(requestUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + + try (BufferedReader br = new BufferedReader( + new InputStreamReader(conn.getInputStream(), "UTF-8"))) { + StringBuilder response = new StringBuilder(); + String responseLine; + while ((responseLine = br.readLine()) != null) { + response.append(responseLine.trim()); + } + + org.json.JSONObject jsonResponse = new org.json.JSONObject(response.toString()); + return jsonResponse.getString("access_token"); + } + } + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/OrderServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/OrderServiceImpl.java new file mode 100644 index 0000000..a1868a9 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/OrderServiceImpl.java @@ -0,0 +1,383 @@ +package org.jeecg.modules.api.service.Impl; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.config.shiro.ShiroRealm; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.OrderService; +import org.jeecg.modules.api.utils.CommonUtils; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; +import org.jeecg.modules.pay.MpWxPayService; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; +import org.jeecg.modules.studytourActivity.service.IStudytourActivityService; +import org.jeecg.modules.studytourOrder.entity.StudytourOrder; +import org.jeecg.modules.studytourOrder.entity.StudytourOrderPerson; +import org.jeecg.modules.studytourOrder.service.IStudytourOrderPersonService; +import org.jeecg.modules.studytourOrder.service.IStudytourOrderService; +import org.jeecg.modules.studytourPerson.entity.StudytourPerson; +import org.jeecg.modules.studytourPerson.service.IStudytourPersonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Service +@Slf4j +public class OrderServiceImpl implements OrderService { + + /******************************************************************************************************************/ + //支付接口 + @Autowired + private MpWxPayService mpWxPayService; + //权限验证 + @Resource + private ShiroRealm shiroRealm; + //用户信息 + @Resource + private IHanHaiMemberService hanHaiMemberService; + //研学活动信息 + @Resource + private IStudytourActivityService studytourActivityService; + //订单信息 + @Resource + private IStudytourOrderService studytourOrderService; + //出行人信息 + @Resource + private IStudytourPersonService studytourPersonService; + //订单出行人信息 + @Resource + private IStudytourOrderPersonService studytourOrderPersonService; + /******************************************************************************************************************/ + + + //我的订单-查询订单列表 + @Override + public Result queryOrderList(String token, StudytourOrder studytourOrder, PageBean pageBean) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourOrderService + .lambdaQuery(); + + //组装查询条件 + if(StringUtils.isNotBlank(studytourOrder.getStatus())){ + //订单状态 + query.eq(StudytourOrder::getStatus, studytourOrder.getStatus()); + } + //订单所属 + query.eq(StudytourOrder::getUserId, hanHaiMember.getId()); + //按照创建时间降序排列 + query.orderByDesc(StudytourOrder::getCreateTime); + + //获取订单信息 + pageList = query.page(page); + + return Result.OK("订单列表", pageList); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("订单列表查询失败"); + } + } + + //我的订单-查询订单详情 + @Override + public Result queryOrderById(String token, String orderId) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //返回信息 + String massege = ""; + + try{ + //订单信息 + StudytourOrder order = studytourOrderService + .lambdaQuery() + .eq(StudytourOrder::getId, orderId) + .eq(StudytourOrder::getUserId, hanHaiMember.getId()) + .one(); + if(null == order){ + return Result.error("订单详情查询失败,请检查输入的订单编号:", order); + } + + return Result.OK("订单详情", order); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("订单详情查询失败"); + } + } + + //我的订单-创建订单 + @Override + public Result createOrder(String token, StudytourOrder studytourOrder) { + //权限验证 + //HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + + try{ + //0、校验活动信息 + StudytourActivity activity = studytourActivityService.getById(studytourOrder.getActivityId()); + if(null == activity){ + return Result.error("研学活动不存在,请检查活动id" + studytourOrder.getActivityId()); + } + + //1、订单信息 + String payNo = IdWorker.getIdStr();//生成订单号 + studytourOrder.setId(payNo); + studytourOrder.setUserId(hanHaiMember.getId()); + + //1.1 活动相关信息 + studytourOrder.setActivityTitle(activity.getTitle()); + studytourOrder.setActivityBrief(activity.getBrief()); + studytourOrder.setActivityTag(activity.getTagDetails()); + + //1.2 出行人信息 + if(StringUtils.isNotEmpty(studytourOrder.getTourisIds())){ + String[] touristIds = studytourOrder.getTourisIds().split(";"); + List ids = Arrays.asList(touristIds); + List personList = studytourPersonService.listByIds(ids);//出行人信息 + List orderPersonList = new ArrayList<>();//订单出行人信息 + for (StudytourPerson person : personList) { + StudytourOrderPerson orderPerson = new StudytourOrderPerson(); + orderPerson.setOrderId(payNo);//关联订单id + orderPerson.setName(person.getName());//出行人姓名 + orderPerson.setCerNo(person.getCerNo());//出行人身份证号 + orderPersonList.add(orderPerson); + } + studytourOrderPersonService.saveBatch(orderPersonList); + }else { + return Result.error("出行人信息为空,至少需要一个出行人"); + } + + + + //2、创建订单 + studytourOrderService.save(studytourOrder); + + //3、订单支付 + //吊起微信支付 + BigDecimal price = studytourOrder.getPayAmount();//价格 + String productName = activity.getTitle();//服务名称 + + String s = price.multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); + Object appOrder = mpWxPayService.createOrder( + "购买"+ productName , + "127.0.0.1", + studytourOrder.getId(), + i1, + studytourOrder.getId(), + hanHaiMember.getAppletOpenid(), + studytourOrder.toString()); + return Result.OK("支付成功",appOrder); + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("支付失败"); + } + } + + //我的订单-支付订单 + @Override + public Result payOrder(String token, String orderId) { + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + + try{ + //订单信息 + StudytourOrder studytourOrder = studytourOrderService.getById(orderId); + + //订单支付 + //吊起微信支付 + BigDecimal price = studytourOrder.getPayAmount();//价格 + String productName = studytourOrder.getActivityTitle();//服务名称 + + String s = price.multiply(new BigDecimal(100)).toString(); + int i1 = Double.valueOf(s).intValue(); + Object appOrder = mpWxPayService.createOrder( + "购买"+ productName , + "127.0.0.1", + studytourOrder.getId(), + i1, + studytourOrder.getId(), + hanHaiMember.getAppletOpenid(), + studytourOrder.toString()); + return Result.OK("支付成功",appOrder); + + }catch (Exception e){ + e.printStackTrace(); + return Result.error("支付失败"); + } + } + + //我的订单-查询出行人列表 + @Override + public Result queryTouristList(String token, StudytourPerson studytourPerson, PageBean pageBean) { + //权限验证 + //HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + //分页信息 + Page page = null; + //查询信息 + LambdaQueryChainWrapper query = null; + //返回信息 + Page pageList = null; + + try{ + //分页 + page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); + query = studytourPersonService + .lambdaQuery(); + + //组装查询条件 + //出行人关联用户 + query.eq(StudytourPerson::getUserId, hanHaiMember.getId()); + //按照创建时间降序排列 + query.orderByDesc(StudytourPerson::getCreateTime); + + //获取订单信息 + pageList = query.page(page); + + return Result.OK("出行人列表", pageList); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("出行人列表查询失败"); + } + } + + //我的订单-查询出行人详情 + @Override + public Result queryTouristById(String token, String personId) { + log.info("开始查询出行人信息"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + + try{ + //1、查询出行人详情 + StudytourPerson one = studytourPersonService.getById(personId); + if(null == one){ + log.info("出行人信息不存在,请检查出行人id:{}", personId); + return Result.error("出行人信息不存在,请检查出行人id:"+personId); + } + + //2、返回出行人信息 + log.info("出行人信息查询结束"); + return Result.OK("出行人信息", one); + }catch (Exception e){ + log.info("出行人信息查询失败"); + e.printStackTrace(); + return Result.error("出行人查询失败"); + } + } + + //我的订单-添加出行人 + @Override + public Result addTourist(String token, StudytourPerson studytourPerson) { + log.info("添加出行人信息开始"); + //权限验证 + //HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + + try{ + //1、添加出行人信息 + studytourPerson.setUserId(hanHaiMember.getId()); + boolean result = studytourPersonService.save(studytourPerson); + //判断是否新增成功 + log.info("添加出行人信息结束"); + if(result){ + return Result.OK("信息添加成功"); + }else { + return Result.error("信息添加失败"); + } + + }catch (Exception e){ + log.error("添加出行人信息失败"); + e.printStackTrace(); + return Result.error("信息添加失败"); + } + } + + //我的订单-修改出行人信息 + @Override + public Result updateTourist(String token, StudytourPerson studytourPerson) { + log.info("添加出行人信息开始"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + //返回信息 + String massege = ""; + + try{ + //1、修改出行人信息 + boolean result = studytourPersonService.updateById(studytourPerson); + //判断是否修改成功 + log.info("修改出行人信息结束"); + if(result){ + return Result.OK("信息修改成功"); + }else { + return Result.error("信息修改失败"); + } + + }catch (Exception e){ + log.error("修改出行人信息失败"); + e.printStackTrace(); + return Result.error("信息修改失败"); + } + } + + //支付回调 + @Override + public Object payOrderNotify(String requestBody) { + WxPayOrderNotifyResult notify = mpWxPayService.notify(requestBody); + String outTradeNo = notify.getOutTradeNo(); + log.info("支付回调订单号码:"+outTradeNo); + + try{ + //查询订单信息 + StudytourOrder studytourOrder = studytourOrderService.getById(outTradeNo); + //如果订单存在则修改订单状态 + if (null != studytourOrder){ + if("0".equals(studytourOrder.getStatus())){ + + studytourOrder.setStatus("1");//订单状态 + studytourOrder.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 + studytourOrderService.updateById(studytourOrder); + } + } + + }catch (Exception e){ + log.info("支付回调失败,订单号码:"+outTradeNo); + e.printStackTrace(); + } + return null; + } + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java new file mode 100644 index 0000000..5759c67 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.api.service.Impl; + +import org.jeecg.modules.api.service.PartnerService; + +public class PartnerServiceImpl implements PartnerService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java new file mode 100644 index 0000000..553a6a9 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java @@ -0,0 +1,93 @@ +package org.jeecg.modules.api.service.Impl; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.config.shiro.ShiroRealm; +import org.jeecg.modules.api.service.UserInfoService; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class UserInfoServiceImpl implements UserInfoService { + + /******************************************************************************************************************/ + //权限验证 + @Resource + private ShiroRealm shiroRealm; + //用户信息 + @Resource + private IHanHaiMemberService hanHaiMemberService; + /******************************************************************************************************************/ + +//查询个人信息 + @Override + public Result queryUserInfo(String token){ + log.info("开始查询个人信息"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + + try{ + log.info("个人信息获取成功"); + return Result.OK("个人信息", hanHaiMember); + }catch (Exception e){ + e.printStackTrace(); + return Result.error("个人信息获取失败", hanHaiMember); + } + } + + //修改个人信息 + @Override + public Result updateUserInfo(String token, HanHaiMember member){ + log.info("开始修改个人信息"); + //权限验证 + HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + //HanHaiMember hanHaiMember = hanHaiMemberService.getById(token); + + try{ + //用户昵称不能为空 + if(StringUtils.isBlank(member.getNickName())){ + log.error("用户昵称不能为空"); + return Result.error("用户昵称不能为空"); + } + if(StringUtils.isBlank(member.getNickName())){ + log.error("头像不能为空"); + return Result.error("头像不能为空"); + } + if(StringUtils.isNotEmpty(member.getPhone())){ + HanHaiMember one = hanHaiMemberService + .lambdaQuery() + .eq(HanHaiMember::getPhone, member.getPhone()) + .ne(HanHaiMember::getId, hanHaiMember.getId()) + .one(); + if(null != one){ + return Result.error("该号码已经有人使用,不能重复填写"); + } + } + + hanHaiMember.setNickName(member.getNickName()); + hanHaiMember.setPhone(member.getPhone()); + hanHaiMember.setHeadImage(member.getHeadImage()); + boolean result = hanHaiMemberService.updateById(hanHaiMember); + + if(result){ + log.info("个人信息修改成功"); + return Result.OK("个人信息修改成功"); + }else { + log.info("个人信息修改失败"); + return Result.error("个人信息修改失败"); + } + + }catch (Exception e){ + log.info("个人信息修改失败"); + e.printStackTrace(); + return Result.error("个人信息修改失败"); + } + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java new file mode 100644 index 0000000..d8fdfe2 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.api.service; + +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourBanner.entity.StudytourBanner; +import org.jeecg.modules.studytourNews.entity.StudytourNews; +import org.jeecg.modules.studytourPolicy.entity.StudytourPolicy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +public interface IndexService { + + //首页-查询banner图列表 + public Result queryBannerList(StudytourBanner studytourBanner, PageBean pageBean); + + //首页-查询研学政策列表 + public Result queryPolicyList(StudytourPolicy studytourPolicy, PageBean pageBean); + + //首页-查询研学政策详情 + public Result queryPolicyById(String policyId); + + //首页-查询公司动态详情 + public Result queryNewsList(StudytourNews studytourNews, PageBean pageBean); + + //首页-查询公司动态详情 + public Result queryNewsById(String newsId); +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/LoginApiService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/LoginApiService.java new file mode 100644 index 0000000..2971225 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/LoginApiService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.api.service; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.bean.LoginReq; + +public interface LoginApiService { + + //小程序-微信授权登录接口 + public Result login(LoginReq loginReq); + + //绑定手机号码 + public Result bindPhone(String phoneCode); + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/OrderService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/OrderService.java new file mode 100644 index 0000000..a11ee93 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/OrderService.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.api.service; + +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourOrder.entity.StudytourOrder; +import org.jeecg.modules.studytourPerson.entity.StudytourPerson; +import org.springframework.web.bind.annotation.*; + +public interface OrderService { + + //我的订单-查询订单列表 + public Result queryOrderList(String token, StudytourOrder studytourOrder, PageBean pageBean); + + //我的订单-查询订单详情 + public Result queryOrderById(String token, String orderId); + + //我的订单-创建订单 + public Result createOrder(String token, StudytourOrder studytourOrder); + + //我的订单-支付订单 + public Result payOrder(String token, String orderId); + + //我的订单-查询出行人列表 + public Result queryTouristList(String token, StudytourPerson studytourPerson, PageBean pageBean); + + //我的订单-查询出行人详情 + public Result queryTouristById(String token, String personId); + + //我的订单-添加出行人 + public Result addTourist(String token, StudytourPerson studytourPerson); + + //我的订单-修改出行人信息 + public Result updateTourist(String token, StudytourPerson studytourPerson); + + //支付回调 + Object payOrderNotify(String requestBody); + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java new file mode 100644 index 0000000..6e1c5f0 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.api.service; + +public interface PartnerService { +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/UserInfoService.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/UserInfoService.java new file mode 100644 index 0000000..8011b4e --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/UserInfoService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.api.service; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; + +public interface UserInfoService { + + //获取个人信息 + Result queryUserInfo(String token); + + //修改个人信息 + Result updateUserInfo(String token, HanHaiMember member); + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ActivityController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ActivityController.java new file mode 100644 index 0000000..f4533d7 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ActivityController.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.ActivityService; +import org.jeecg.modules.api.service.IndexService; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; +import org.jeecg.modules.studytourBanner.entity.StudytourBanner; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags="研学活动-相关接口") +@RestController +@RequestMapping("/studytour/activity") +@Slf4j +public class ActivityController { + + /******************************************************************************************************************/ + @Resource + private ActivityService activityService; + /******************************************************************************************************************/ + + @ApiOperation(value="首页&分类-查询研学活动列表", notes="首页&分类-查询研学活动列表") + @RequestMapping(value = "/queryActivityList", method = {RequestMethod.GET}) + public Result queryActivityList(StudytourActivity activity, PageBean pageBean){ + return activityService.queryActivityList(activity, pageBean); + } + + @ApiOperation(value="首页&分类-查询研学活动详情", notes="首页&分类-查询研学活动详情") + @RequestMapping(value = "/queryActivityById", method = {RequestMethod.GET}) + public Result queryActivityById(String activityId){ + return activityService.queryActivityById(activityId); + } + + @ApiOperation(value="首页&分类-查询我收藏的研学活动列表", notes="首页&分类-查询我收藏的研学活动列表") + @RequestMapping(value = "/queryCollectionActivityList", method = {RequestMethod.GET}) + public Result queryCollectionActivityList(@RequestHeader("X-Access-Token") String token, PageBean pageBean){ + return activityService.queryCollectionActivityList(token, pageBean); + } + + @ApiOperation(value="首页&分类-收藏研学活动", notes="首页&分类-收藏研学活动") + @RequestMapping(value = "/collectionActivity", method = {RequestMethod.POST}) + public Result collectionActivity(@RequestHeader("X-Access-Token") String token, String activityId){ + return activityService.collectionActivity(token, activityId); + } + + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/CommentController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/CommentController.java new file mode 100644 index 0000000..177c87f --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/CommentController.java @@ -0,0 +1,34 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourActivity.entity.StudytourActivity; +import org.jeecg.modules.studytourComment.entity.StudytourComment; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags="评价&&心得-相关接口") +@RestController +@RequestMapping("/studytour/comment") +@Slf4j +public class CommentController { + + @ApiOperation(value="我的评论-查询我的评价列表", notes="我的评论-查询我的评价列表") + @RequestMapping(value = "/queryMyCommentList", method = {RequestMethod.GET}) + public Result queryMyCommentList(@RequestHeader("X-Access-Token") String token, StudytourComment studytourComment, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="我的订单&&成长档案-添加订单评价&&添加心得", notes="我的订单&&成长档案-添加订单评价&&添加心得") + @RequestMapping(value = "/addComment", method = {RequestMethod.POST}) + public Result addComment(@RequestHeader("X-Access-Token") String token, StudytourComment studytourComment, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ConfigController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ConfigController.java new file mode 100644 index 0000000..5569920 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ConfigController.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.ConfigService; +import org.jeecg.modules.studytourCategory.entity.StudytourCategory; +import org.jeecg.modules.studytourComment.entity.StudytourComment; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags="系统配置-相关接口") +@RestController +@RequestMapping("/studytour/config") +@Slf4j +public class ConfigController { + + /******************************************************************************************************************/ + //配置信息 + @Resource + private ConfigService configService; + /******************************************************************************************************************/ + + //查看系统配置列表 + @ApiOperation(value="系统配置-查询系统配置列表", notes="系统配置-查询系统配置列表") + @RequestMapping(value = "/queryConfigList", method = {RequestMethod.GET}) + public Result queryConfigList(PageBean pageBean){ + return configService.queryConfigList(pageBean); + } + + //查看系统配置详情 + @ApiOperation(value="系统配置-查询系统配置详情", notes="系统配置-查询系统配置详情") + @RequestMapping(value = "/queryConfigByParamCode", method = {RequestMethod.GET}) + public Result queryConfigByParamCode(String paramCode){ + return configService.queryConfigByParamCode(paramCode); + } + + @ApiOperation(value="系统配置-查询研学活动分类列表", notes="系统配置-查询研学活动分类列表") + @RequestMapping(value = "/queryCategoryList", method = {RequestMethod.GET}) + public Result queryCategoryList(StudytourCategory studytourCategory, PageBean pageBean){ + return configService.queryCategoryList(studytourCategory, pageBean); + } + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ExperienceController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ExperienceController.java new file mode 100644 index 0000000..5f13bbb --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ExperienceController.java @@ -0,0 +1,32 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourComment.entity.StudytourComment; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags="成长档案&&学员管理-相关接口") +@RestController +@RequestMapping("/studytour/experience") +@Slf4j +public class ExperienceController { + + @ApiOperation(value="成长档案-查询成长档案列表", notes="成长档案-查询成长档案列表") + @RequestMapping(value = "/queryExperienceList", method = {RequestMethod.GET}) + public Result queryExperienceList(@RequestHeader("X-Access-Token") String token, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="成长档案-查询成长档案详情", notes="成长档案-查询成长档案详情") + @RequestMapping(value = "/queryExperienceById", method = {RequestMethod.GET}) + public Result queryExperienceById(@RequestHeader("X-Access-Token") String token, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java new file mode 100644 index 0000000..d3b7e69 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourImage.entity.StudytourImage; +import org.jeecg.modules.studytourImageContent.entity.StudytourImageContent; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags="图片直播-相关接口") +@RestController +@RequestMapping("/studytour/image") +@Slf4j +public class ImageController { + + @ApiOperation(value="图片直播-查询图片直播列表", notes="图片直播-查询图片直播列表") + @RequestMapping(value = "/queryImageList", method = {RequestMethod.GET}) + public Result queryImageList(StudytourImage studytourImage, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="图片直播-查询图片直播内容列表", notes="图片直播-查询图片直播内容列表") + @RequestMapping(value = "/queryImageContentList", method = {RequestMethod.GET}) + public Result queryImageContentList(String imageId, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="图片直播-新增图片直播信息", notes="图片直播-新增图片直播信息") + @RequestMapping(value = "/addImage", method = {RequestMethod.GET}) + public Result addImage(StudytourImage studytourImage){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="图片直播-新增图片直播内容信息", notes="图片直播-新增图片直播内容信息") + @RequestMapping(value = "/addImageContent", method = {RequestMethod.GET}) + public Result addImageContent(StudytourImageContent studytourImageContent){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="图片直播-标记有我", notes="图片直播-标记有我") + @RequestMapping(value = "/queryMarkmeList", method = {RequestMethod.GET}) + public Result queryMarkmeList(@RequestHeader("X-Access-Token") String token, String imagePath){ + return Result.OK("接口暂未处理"); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/IndexController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/IndexController.java new file mode 100644 index 0000000..23a04a2 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/IndexController.java @@ -0,0 +1,60 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.IndexService; +import org.jeecg.modules.studytourBanner.entity.StudytourBanner; +import org.jeecg.modules.studytourNews.entity.StudytourNews; +import org.jeecg.modules.studytourPolicy.entity.StudytourPolicy; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags="首页-相关接口") +@RestController +@RequestMapping("/studytour/index") +@Slf4j +public class IndexController { + /******************************************************************************************************************/ + @Resource + private IndexService indexService; + /******************************************************************************************************************/ + + @ApiOperation(value="首页-查询banner图列表", notes="type:0-首页顶部 1-首页中部") + @RequestMapping(value = "/queryBannerList", method = {RequestMethod.GET}) + public Result queryBannerList(StudytourBanner studytourBanner, PageBean pageBean){ + return indexService.queryBannerList(studytourBanner, pageBean); + } + + @ApiOperation(value="首页-查询研学政策列表", notes="首页-查询研学政策列表") + @RequestMapping(value = "/queryPolicyList", method = {RequestMethod.GET}) + public Result queryPolicyList(StudytourPolicy studytourPolicy, PageBean pageBean){ + return indexService.queryPolicyList(studytourPolicy, pageBean); + } + + @ApiOperation(value="首页-查询研学政策详情", notes="首页-查询研学政策详情") + @RequestMapping(value = "/queryPolicyById", method = {RequestMethod.GET}) + public Result queryPolicyById(String policyId){ + return indexService.queryPolicyById(policyId); + } + + @ApiOperation(value="首页-查询公司动态列表", notes="首页-查询公司动态列表") + @RequestMapping(value = "/queryNewsList", method = {RequestMethod.GET}) + public Result queryNewsList(StudytourNews studytourNews, PageBean pageBean){ + return indexService.queryNewsList(studytourNews, pageBean); + } + + @ApiOperation(value="首页-查询公司动态详情", notes="首页-查询公司动态详情") + @RequestMapping(value = "/queryNewsById", method = {RequestMethod.GET}) + public Result queryNewsById(String newsId){ + return indexService.queryNewsById(newsId); + } + + + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/LoginApiController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/LoginApiController.java new file mode 100644 index 0000000..059db82 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/LoginApiController.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.service.LoginApiService; +import org.jeecg.modules.bean.LoginReq; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags="登录-相关接口") +@RestController +@RequestMapping("/studytour/login") +@Slf4j +public class LoginApiController { + + /******************************************************************************************************************/ + //登录信息 + @Resource + private LoginApiService loginApiService; + /******************************************************************************************************************/ + + //小程序-微信授权登录接口 + @ApiOperation(value="小程序-微信授权登录接口", notes="小程序-微信授权登录接口") + @GetMapping("/login") + public Result login(LoginReq loginReq){ + return loginApiService.login(loginReq); + } + + //绑定手机号码 + @ApiOperation(value="小程序-绑定手机号码", notes="小程序-绑定手机号码") + @GetMapping(value = "/bindPhone") + public Result bindPhone(String phoneCode){ + return loginApiService.bindPhone(phoneCode); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/OrderController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/OrderController.java new file mode 100644 index 0000000..c31ab76 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/OrderController.java @@ -0,0 +1,81 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.api.service.OrderService; +import org.jeecg.modules.studytourOrder.entity.StudytourOrder; +import org.jeecg.modules.studytourPerson.entity.StudytourPerson; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags="研学订单-相关接口") +@RestController +@RequestMapping("/studytour/order") +@Slf4j +public class OrderController { + + /******************************************************************************************************************/ + //订单 + @Resource + private OrderService orderService; + /******************************************************************************************************************/ + + @ApiOperation(value="我的订单-查询订单列表", notes="我的订单-查询订单列表") + @RequestMapping(value = "/queryOrderList", method = {RequestMethod.GET}) + public Result queryOrderList(@RequestHeader("X-Access-Token") String token, StudytourOrder studytourOrder, PageBean pageBean){ + return orderService.queryOrderList(token, studytourOrder, pageBean); + } + + @ApiOperation(value="我的订单-查询订单详情", notes="我的订单-查询订单详情") + @RequestMapping(value = "/queryOrderById", method = {RequestMethod.GET}) + public Result queryOrderById(@RequestHeader("X-Access-Token") String token, String orderId){ + return orderService.queryOrderById(token, orderId); + } + + @ApiOperation(value="我的订单-创建订单", notes="我的订单-创建订单") + @RequestMapping(value = "/createOrder", method = {RequestMethod.POST}) + public Result createOrder(@RequestHeader("X-Access-Token") String token, StudytourOrder studytourOrder){ + return orderService.createOrder(token, studytourOrder); + } + + @ApiOperation(value="我的订单-支付订单", notes="我的订单-支付订单") + @RequestMapping(value = "/payOrder", method = {RequestMethod.POST}) + public Result payOrder(@RequestHeader("X-Access-Token") String token, String orderId){ + return orderService.payOrder(token, orderId); + } + + @ApiOperation(value="我的订单-查询出行人列表", notes="我的订单-查询出行人列表") + @RequestMapping(value = "/queryTouristList", method = {RequestMethod.GET}) + public Result queryTouristList(@RequestHeader("X-Access-Token") String token, StudytourPerson studytourPerson, PageBean pageBean){ + return orderService.queryTouristList(token, studytourPerson, pageBean); + } + + @ApiOperation(value="我的订单-查询出行人详情", notes="我的订单-查询出行人详情") + @RequestMapping(value = "/queryTouristById", method = {RequestMethod.GET}) + public Result queryTouristById(@RequestHeader("X-Access-Token") String token, String personId){ + return orderService.queryTouristById(token, personId); + } + + @ApiOperation(value="我的订单-添加出行人", notes="我的订单-添加出行人") + @RequestMapping(value = "/addTourist", method = {RequestMethod.POST}) + public Result addTourist(@RequestHeader("X-Access-Token") String token, StudytourPerson studytourPerson){ + return orderService.addTourist(token, studytourPerson); + } + + @ApiOperation(value="我的订单-修改出行人信息", notes="我的订单-修改出行人信息") + @RequestMapping(value = "/updateTourist", method = {RequestMethod.POST}) + public Result updateTourist(@RequestHeader("X-Access-Token") String token, StudytourPerson studytourPerson){ + return orderService.updateTourist(token, studytourPerson); + } + + //支付回调 + @PostMapping("/payOrderNotify") + public Object payOrderNotify(@RequestBody String requestBody){ + return orderService.payOrderNotify(requestBody); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java new file mode 100644 index 0000000..d27d1c2 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java @@ -0,0 +1,52 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.bean.PageBean; +import org.jeecg.modules.studytourPartner.entity.StudytourPartner; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; + +@Api(tags="合伙人-相关接口") +@RestController +@RequestMapping("/studytour/partner") +@Slf4j +public class PartnerController { + + @ApiOperation(value="合伙人-申请成为合伙人", notes="合伙人-申请成为合伙人") + @RequestMapping(value = "/applyPartner", method = {RequestMethod.POST}) + public Result applyPartner(@RequestHeader("X-Access-Token") String token, StudytourPartner studytourPartner){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="我的团队-获取直推用户列表", notes="我的团队-获取直推用户列表") + @RequestMapping(value = "/queryDirectList", method = {RequestMethod.GET}) + public Result queryDirectList(@RequestHeader("X-Access-Token") String token, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="我的团队-获取间推用户列表", notes="我的团队-获取间推用户列表") + @RequestMapping(value = "/queryIndirectList", method = {RequestMethod.GET}) + public Result queryIndirectList(@RequestHeader("X-Access-Token") String token, PageBean pageBean){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="合伙人-邀请二维码", notes="合伙人-邀请二维码") + @RequestMapping(value = "/getInviteCode", method = {RequestMethod.POST}) + public Result getInviteCode(String path){ + return Result.OK("接口暂未处理"); + } + + @ApiOperation(value="合伙人-提现", notes="合伙人-提现") + @RequestMapping(value = "/cashout", method = {RequestMethod.POST}) + public Result cashout(@RequestHeader("X-Access-Token") String token, String userName, BigDecimal transferAmount){ + return Result.OK("接口暂未处理"); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/UserInfoController.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/UserInfoController.java new file mode 100644 index 0000000..61252ea --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/UserInfoController.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.api.studytourController; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.api.service.UserInfoService; +import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags="我的-相关接口") +@RestController +@RequestMapping("/studytour/userInfo") +@Slf4j +public class UserInfoController { + + /******************************************************************************************************************/ + @Resource + private UserInfoService userInfoService; + /******************************************************************************************************************/ + + //获取个人信息 + @ApiOperation(value="我的资料-获取个人信息", notes="我的资料-获取个人信息") + @RequestMapping(value = "/queryUser", method = {RequestMethod.GET}) + public Result queryUser(@RequestHeader("X-Access-Token") String token){ + return userInfoService.queryUserInfo(token); + } + + //修改个人信息 + @ApiOperation(value="我的资料-修改个人信息", notes="我的资料-修改个人信息") + @RequestMapping(value = "/updateUser", method = {RequestMethod.POST}) + public Result updateUser(@RequestHeader("X-Access-Token") String token, HanHaiMember member){ + return userInfoService.updateUserInfo(token, member); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/utils/CommonUtils.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/utils/CommonUtils.java new file mode 100644 index 0000000..f0c99e3 --- /dev/null +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/utils/CommonUtils.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.api.utils; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +public class CommonUtils { + + //获取当前时间 + public static Date getCurrentTime(){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date now = new Date(); + String formattedDate = sdf.format(now); +// System.out.println(now); // 输出格式化后的当前时间 +// System.out.println(formattedDate); // 输出格式化后的当前时间 + return now; + } + + //获取延长时间 + public static Date getValidTime(Date oldTime, int month){ + // 创建Calendar实例 + Calendar cal = Calendar.getInstance(); + cal.setTime(oldTime); // 设置当前时间 + + // 在当前时间基础上加n个月 + cal.add(Calendar.MONTH, month); + Date newTime = cal.getTime(); + return newTime; + } + + public static void main(String[] args) { + System.out.println(getValidTime(getCurrentTime(), 3)); + } + +} diff --git a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java index 7dbb082..fac4cf2 100644 --- a/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java +++ b/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java @@ -144,6 +144,23 @@ public class SysBaseApiImpl implements ISysBaseAPI { return user; } + /** + * 公共验证--根据账号查询验证用户信息-客户端 + * @param username + * @return + * */ + @Override + public HanHaiMember getUserByNameHanHaiXcxOpenId(String username){ + if(oConvertUtils.isEmpty(username)) { + return null; + } + HanHaiMember user = hanHaiMemberService.lambdaQuery().eq(HanHaiMember::getAppletOpenid,username).one(); + if(user==null) { + return null; + } + return user; + } + @Override public String translateDictFromTable(String table, String text, String code, String key) {