From 80102a56fc5f726660c3ed6d9b5d3c76502cb4a8 Mon Sep 17 00:00:00 2001 From: admin <1752476835@qq.com> Date: Wed, 5 Jun 2024 15:54:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- play-admin/pom.xml | 7 + .../java/com/starry/admin/Application.java | 8 + .../admin/common/component/JwtToken.java | 6 +- ...dler.java => AbstractListTypeHandler.java} | 17 +- .../admin/common/conf/StringTypeHandler.java | 7 +- .../mybatis/handler/MyMetaObjectHandler.java | 28 +- .../oss/service/impl/OssFileServiceImpl.java | 4 +- .../admin/common/play/wx/CommonText.java | 38 - .../common/play/wx/WxCustomPayUtils.java | 4 +- .../common/task/ClerkWagesSettlementTask.java | 158 ++++ .../task/OrderRankingSettlementTask.java | 118 +++ .../PlayClerkArticleInfoController.java | 87 --- .../module/vo/PlayClerkArticleReturnVo.java | 68 -- .../impl/PlayClerkArticleInfoServiceImpl.java | 106 --- .../PlayBalanceDetailsInfoController.java | 5 +- .../entity/PlayBalanceDetailsInfoEntity.java | 8 +- .../module/vo/PlayBalanceDetailsQueryVo.java | 26 + .../module/vo/PlayBalanceDetailsReturnVo.java | 40 +- .../IPlayBalanceDetailsInfoService.java | 6 +- .../PlayBalanceDetailsInfoServiceImpl.java | 35 +- .../PlayClerkArticleInfoController.java | 70 ++ .../PlayClerkDataReviewInfoController.java | 97 +-- .../PlayClerkGroupInfoController.java | 77 ++ .../PlayClerkGroupUserInfoController.java | 77 ++ .../PlayClerkRankingInfoController.java | 77 ++ .../PlayClerkTypeInfoController.java | 78 ++ .../PlayClerkUserInfoController.java | 86 ++- .../PlayClerkUserReviewInfoController.java | 55 ++ .../PlayClerkWagesDetailsInfoController.java | 77 ++ .../PlayClerkWagesInfoController.java | 107 +++ .../PlayCustomArticleInfoController.java | 6 +- .../mapper/PlayClerkArticleInfoMapper.java | 4 +- .../mapper/PlayClerkDataReviewInfoMapper.java | 6 +- .../mapper/PlayClerkGroupInfoMapper.java | 16 + .../mapper/PlayClerkGroupUserInfoMapper.java | 16 + .../mapper/PlayClerkRankingInfoMapper.java | 16 + .../clerk/mapper/PlayClerkTypeInfoMapper.java | 16 + .../mapper/PlayClerkTypeUserInfoMapper.java | 16 + .../mapper/PlayClerkUserReviewInfoMapper.java | 16 + .../PlayClerkWagesDetailsInfoMapper.java | 16 + .../mapper/PlayClerkWagesInfoMapper.java | 16 + .../mapper/PlayCustomArticleInfoMapper.java | 4 +- .../entity/PlayClerkArticleInfoEntity.java | 50 +- .../entity/PlayClerkCommodityEntity.java | 20 +- .../entity/PlayClerkDataReviewInfoEditVo.java | 2 +- .../entity/PlayClerkDataReviewInfoEntity.java | 45 +- .../PlayClerkDataReviewInfoQueryVo.java | 2 +- .../entity/PlayClerkGroupInfoEntity.java | 41 + .../entity/PlayClerkGroupUserInfoEntity.java | 51 ++ .../entity/PlayClerkRankingInfoEntity.java | 90 +++ .../entity/PlayClerkTypeInfoEntity.java | 45 ++ .../entity/PlayClerkTypeUserInfoEntity.java | 45 ++ .../entity/PlayClerkUserInfoEntity.java | 24 +- .../module/entity/PlayClerkUserQueryVo.java | 133 ++++ .../module/entity/PlayClerkUserReturnVo.java | 156 ++++ .../entity/PlayClerkUserReviewInfoEntity.java | 119 +++ .../PlayClerkWagesDetailsInfoEntity.java | 69 ++ .../entity/PlayClerkWagesInfoEntity.java | 114 +++ .../entity/PlayCustomArticleInfoEntity.java | 17 +- .../module/vo/PlayClerkArticleQueryVo.java | 39 + .../module/vo/PlayClerkArticleReturnVo.java | 82 ++ .../vo/PlayClerkArticleReviewStateEditVo.java | 36 + .../module/vo/PlayClerkCommodityQueryVo.java | 5 + .../module/vo/PlayClerkDataReviewQueryVo.java | 38 + .../vo/PlayClerkDataReviewReturnVo.java | 80 ++ .../vo/PlayClerkDataReviewStateEditVo.java | 36 + .../module/vo/PlayClerkTypeInfoAddVo.java | 33 + .../PlayClerkUnsettledWagesInfoQueryVo.java | 25 + .../PlayClerkUnsettledWagesInfoReturnVo.java | 74 ++ .../module/vo/PlayClerkUserAddToWxVo.java | 2 +- .../clerk/module/vo/PlayClerkUserAddVo.java | 2 +- .../clerk/module/vo/PlayClerkUserEditVo.java | 2 +- .../module/vo/PlayClerkUserReviewQueryVo.java | 57 ++ .../vo/PlayClerkUserReviewReturnVo.java | 118 +++ .../vo/PlayClerkUserReviewStateEditVo.java | 36 + .../module/vo/PlayClerkUserStateEditVo.java | 12 +- .../module/vo/PlayClerkWagesInfoQueryVo.java | 33 + .../module/vo/PlayClerkWagesInfoReturnVo.java | 108 +++ .../service/IPlayClerkArticleInfoService.java | 23 +- .../service/IPlayClerkCommodityService.java | 8 +- .../IPlayClerkDataReviewInfoService.java | 33 +- .../service/IPlayClerkGroupInfoService.java | 61 ++ .../IPlayClerkGroupUserInfoService.java | 61 ++ .../service/IPlayClerkRankingInfoService.java | 109 +++ .../service/IPlayClerkTypeInfoService.java | 71 ++ .../IPlayClerkTypeUserInfoService.java | 61 ++ .../service/IPlayClerkUserInfoService.java | 62 +- .../IPlayClerkUserReviewInfoService.java | 84 +++ .../IPlayClerkWagesDetailsInfoService.java | 89 +++ .../service/IPlayClerkWagesInfoService.java | 111 +++ .../IPlayCustomArticleInfoService.java | 15 +- .../impl/PlayClerkArticleInfoServiceImpl.java | 207 ++++++ ...layClerkClassificationInfoServiceImpl.java | 4 +- .../impl/PlayClerkCommodityServiceImpl.java | 35 +- .../PlayClerkDataReviewInfoServiceImpl.java | 119 ++- .../impl/PlayClerkGroupInfoServiceImpl.java | 97 +++ .../PlayClerkGroupUserInfoServiceImpl.java | 97 +++ .../impl/PlayClerkLevelInfoServiceImpl.java | 6 +- .../impl/PlayClerkRankingInfoServiceImpl.java | 186 +++++ .../impl/PlayClerkTypeInfoServiceImpl.java | 104 +++ .../PlayClerkTypeUserInfoServiceImpl.java | 97 +++ .../impl/PlayClerkUserInfoServiceImpl.java | 229 ++++-- .../PlayClerkUserReviewInfoServiceImpl.java | 177 +++++ .../PlayClerkWagesDetailsInfoServiceImpl.java | 123 +++ .../impl/PlayClerkWagesInfoServiceImpl.java | 173 +++++ .../PlayCustomArticleInfoServiceImpl.java | 23 +- .../impl/PlayClerkServiceServiceImpl.java | 4 +- .../impl/PlayServiceInfoServiceImpl.java | 4 +- .../PlayCustomLeaveMsgController.java | 5 +- .../PlayCustomLevelInfoController.java | 3 +- .../PlayCustomRankingController.java | 37 + .../PlayCustomUserInfoController.java | 8 +- .../mapper/PlayCustomUserInfoMapper.java | 4 +- .../entity/PlayCustomUserInfoEntity.java | 29 +- .../module/vo/PlayCustomLeaveMsgReturnVo.java | 6 +- .../module/vo/PlayCustomLevelReturnVo.java | 44 ++ .../module/vo/PlayCustomRankingQueryVo.java | 27 + .../module/vo/PlayCustomRankingReturnVo.java | 81 ++ .../module/vo/PlayCustomUserQueryVo.java | 113 +++ .../module/vo/PlayCustomUserReturnVo.java | 174 +++++ .../module/vo/PlayCustomUserStateEditVo.java | 5 +- .../service/IPlayCustomUserInfoService.java | 33 +- .../impl/PlayCustomLeaveMsgServiceImpl.java | 6 +- .../impl/PlayCustomLevelInfoServiceImpl.java | 4 +- .../impl/PlayCustomUserInfoServiceImpl.java | 179 ++++- .../mapper/PlayCustomFollowInfoMapper.java | 4 +- .../entity/PlayCustomFollowInfoEntity.java | 4 +- .../service/IPlayCustomFollowInfoService.java | 13 + .../impl/PlayCustomFollowInfoServiceImpl.java | 44 +- .../PlayClerkGiftInfoController.java | 77 ++ .../gift/mapper/PlayClerkGiftInfoMapper.java | 16 + .../gift/mapper/PlayGiftInfoMapper.java | 4 +- .../entity/PlayClerkGiftInfoEntity.java | 46 ++ .../module/entity/PlayGiftInfoEntity.java | 12 +- .../service/IPlayClerkGiftInfoService.java | 72 ++ .../gift/service/IPlayGiftInfoService.java | 13 + .../impl/PlayClerkGiftInfoServiceImpl.java | 112 +++ .../service/impl/PlayGiftInfoServiceImpl.java | 47 +- .../PlayOrderComplaintInfoController.java | 5 +- .../PlayOrderContinueInfoController.java | 46 ++ .../PlayOrderEvaluateInfoController.java | 42 +- .../controller/PlayOrderInfoController.java | 5 +- .../PlayOrderRefundInfoController.java | 80 ++ .../PlayOrderRewardInfoController.java | 2 +- .../mapper/PlayOrderContinueInfoMapper.java | 16 + .../mapper/PlayOrderRandomInfoMapper.java | 17 + .../mapper/PlayOrderRefundInfoMapper.java | 16 + .../entity/PlayOrderComplaintInfoEntity.java | 5 + .../entity/PlayOrderContinueInfoEntity.java | 119 +++ .../entity/PlayOrderEvaluateInfoEntity.java | 6 +- .../module/entity/PlayOrderInfoEntity.java | 139 +++- .../entity/PlayOrderRandomInfoEntity.java | 97 +++ .../entity/PlayOrderRefundInfoEntity.java | 119 +++ .../order/module/vo/OrderInfoAddVo.java | 11 +- .../module/vo/PlayOrderComplaintQueryVo.java | 36 + .../module/vo/PlayOrderComplaintReturnVo.java | 51 ++ .../module/vo/PlayOrderContinueQueryVo.java | 44 ++ .../module/vo/PlayOrderContinueReturnVo.java | 123 +++ .../module/vo/PlayOrderDetailsReturnVo.java | 35 +- .../vo/PlayOrderEvaluateEditStateVo.java | 29 + .../module/vo/PlayOrderEvaluateEditVo.java | 24 - .../module/vo/PlayOrderEvaluateQueryVo.java | 37 + .../module/vo/PlayOrderEvaluateReturnVo.java | 58 +- .../order/module/vo/PlayOrderInfoQueryVo.java | 71 +- .../module/vo/PlayOrderInfoReturnVo.java | 59 +- .../module/vo/PlayOrderRefundQueryVo.java | 14 + .../module/vo/PlayOrderRefundReturnVo.java | 8 + .../module/vo/PlayOrderReviewStateEditVo.java | 30 + .../module/vo/PlayOrderRewardQueryVo.java | 43 ++ .../order/module/vo/PlayOrderStateEditVo.java | 34 + .../IPlayOrderContinueInfoService.java | 90 +++ .../IPlayOrderEvaluateInfoService.java | 25 + .../order/service/IPlayOrderInfoService.java | 255 ++++++- .../service/IPlayOrderRandomInfoService.java | 83 +++ .../service/IPlayOrderRefundInfoService.java | 80 ++ .../PlayOrderComplaintInfoServiceImpl.java | 40 +- .../PlayOrderContinueInfoServiceImpl.java | 169 +++++ .../PlayOrderEvaluateInfoServiceImpl.java | 68 +- .../impl/PlayOrderInfoServiceImpl.java | 698 ++++++++++++++---- .../impl/PlayOrderRandomInfoServiceImpl.java | 133 ++++ .../impl/PlayOrderRefundInfoServiceImpl.java | 114 +++ .../platform/service/ISysTenantService.java | 7 + .../impl/SysTenantPackageServiceImpl.java | 4 +- .../service/impl/SysTenantServiceImpl.java | 13 +- .../modules/platform/vo/SysTenantAddVo.java | 8 +- .../platform/vo/SysTenantPackageVo.java | 1 - .../play/mapper/PlayCommodityInfoMapper.java | 16 +- .../entity/PlayCommodityInfoEntity.java | 21 +- .../play/module/vo/PlayCommodityInfoVo.java | 35 + .../service/IPlayCommodityInfoService.java | 39 + .../impl/PlayCommodityInfoServiceImpl.java | 84 ++- .../impl/PlayNoticeInfoServiceImpl.java | 4 +- .../impl/PlayResourcesInfoServiceImpl.java | 4 +- .../service/impl/PlayUserInfoServiceImpl.java | 4 +- .../PlayShopCarouselInfoController.java | 83 +++ .../mapper/PlayShopCarouselInfoMapper.java | 16 + .../entity/PlayShopCarouselInfoEntity.java | 66 ++ .../module/vo/PlayShopCarouselInfoAddVo.java | 47 ++ .../vo/PlayShopCarouselInfoQueryVo.java | 35 + .../vo/PlayShopCarouselInfoReturnVo.java | 14 + .../vo/PlayShopCarouselInfoUpdateStateVo.java | 22 + .../service/IPlayShopCarouselInfoService.java | 63 ++ .../impl/PlayShopCarouselInfoServiceImpl.java | 104 +++ ...AdministrativeAreaDictInfoServiceImpl.java | 4 +- .../service/impl/SysUserServiceImpl.java | 4 +- .../controller/WxArticleController.java | 148 ++++ .../WxClerkCommodityController.java | 41 + .../weichat/controller/WxClerkController.java | 310 ++++---- .../controller/WxClerkLeveController.java | 50 ++ .../controller/WxClerkWagesController.java | 140 ++++ .../controller/WxCommonController.java | 8 +- .../controller/WxCustomController.java | 225 ++++-- .../weichat/controller/WxGiftController.java | 36 +- .../weichat/controller/WxLevelController.java | 48 ++ .../weichat/controller/WxOauthController.java | 4 +- .../controller/WxOrderInfoController.java | 166 +++++ .../weichat/controller/WxPlayController.java | 12 +- .../WxPlayOrderRankingController.java | 52 ++ .../entity/PlayClerkFollowQueryVo.java | 23 + .../entity/PlayClerkFollowReturnVo.java | 74 ++ .../entity/PlayClerkUserLoginResponseVo.java | 2 +- .../weichat/entity/PlayCommodityReturnVo.java | 41 + .../entity/PlayOrderCancellationVo.java | 35 + ...eryVo.java => WxPlayClerkUserQueryVo.java} | 2 +- .../entity/article/PlayClerkAddArticleVo.java | 58 ++ .../PlayClerkArticleCustomQueryVo.java | 27 + .../PlayClerkArticleCustomReturnVo.java | 87 +++ ...cleFollowCustomFollowStateEditStateVo.java | 30 + ...icleFollowCustomGreedStateEditStateVo.java | 30 + .../clerk}/PlayClerkUserInfoQueryVo.java | 4 +- .../clerk/PlayClerkUserInfoResultVo.java} | 5 +- .../PlayCustomHideLevelStateEditVo.java | 29 + .../PlayCustomHideRankingStateEditVo.java | 28 + .../PlayCustomOrderEvaluateReturnVo.java | 41 + .../entity/gift/PlayClerkGiftReturnVo.java | 52 ++ .../entity/level/PlayClerkLevelReturnVo.java | 15 + .../order/PlayClearOrderInfoQueryVo.java | 45 ++ .../order/PlayClerkOrderDetailsReturnVo.java | 198 +++++ .../order/PlayClerkOrderInfoQueryVo.java | 45 ++ .../order/PlayClerkOrderListReturnVo.java | 141 ++++ .../PlayClerkRandomOrderDetailReturnVo.java | 126 ++++ .../order/PlayCustomOrderDetailsReturnVo.java | 194 +++++ .../order/PlayCustomOrderInfoQueryVo.java | 45 ++ .../order/PlayCustomOrderListReturnVo.java | 132 ++++ .../PlayOrderHistoryRankingReturnVo.java | 36 + .../PlayOrderInfoCommodityAdd.java | 4 +- .../order/PlayOrderInfoContinueAdd.java | 37 + .../order/PlayOrderInfoContinueQueryVo.java | 21 + .../order/PlayOrderInfoRandomQueryVo.java} | 10 +- .../order/PlayOrderInfoRandomReturnVo.java | 130 ++++ .../entity/order/PlayOrderRankingListVo.java | 50 ++ .../entity/order/PlayOrderRankingQueryVo.java | 18 + .../order/PlayOrderRankingReturnVo.java | 106 +++ .../order/PlayRandomOrderInfoReturnVo.java | 123 +++ .../entity/order/PlayRewardInfoReturnVo.java | 67 ++ .../entity/order/PlayRewardOrderQueryVo.java | 12 + .../user/PlayCustomUserReturnDetailVo.java | 143 ++++ .../vo/PlayCustomLevelInfoReturnVo.java | 31 + .../ClerkCurrentPeriodWagesReturnVo.java | 49 ++ .../wages/ClerkHistoricalWagesReturnVo.java | 43 ++ .../wages/ClerkUnsettledWagesReturnVo.java | 38 + .../wages/ClerkWagesDetailsReturnVo.java | 62 ++ .../entity/wages/OrderWagesReturnVo.java | 49 ++ .../weichat/service/WxOauthService.java | 6 +- .../src/main/resources/application-test.yml | 10 +- .../platform/SysTenantPackageMapper.xml | 3 +- .../resources/mapper/system/SysDictMapper.xml | 3 +- .../mapper/system/SysLoginLogMapper.xml | 3 +- .../mapper/system/SysOperationLogMapper.xml | 4 +- .../context/CustomSecurityContextHolder.java | 4 + .../com/starry/common/domain/BaseEntity.java | 5 - .../java/com/starry/common/utils/IdUtils.java | 20 + .../resources/vm/java/serviceImpl.java.vm | 4 +- pom.xml | 6 + 274 files changed, 13634 insertions(+), 1347 deletions(-) rename play-admin/src/main/java/com/starry/admin/common/conf/{ListTypeHandler.java => AbstractListTypeHandler.java} (75%) delete mode 100644 play-admin/src/main/java/com/starry/admin/common/play/wx/CommonText.java create mode 100644 play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java create mode 100644 play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java delete mode 100644 play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayClerkArticleInfoController.java delete mode 100644 play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleReturnVo.java delete mode 100644 play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayClerkArticleInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkArticleInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupUserInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkTypeInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserReviewInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesDetailsInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesInfoController.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/controller/PlayCustomArticleInfoController.java (92%) rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/mapper/PlayClerkArticleInfoMapper.java (64%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupUserInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkRankingInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeUserInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkUserReviewInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesDetailsInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesInfoMapper.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/mapper/PlayCustomArticleInfoMapper.java (65%) rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/module/entity/PlayClerkArticleInfoEntity.java (55%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupUserInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeUserInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReviewInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesDetailsInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesInfoEntity.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/module/entity/PlayCustomArticleInfoEntity.java (71%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReviewStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkTypeInfoAddVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoReturnVo.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/service/IPlayClerkArticleInfoService.java (63%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupUserInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkRankingInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeUserInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserReviewInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesDetailsInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesInfoService.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/service/IPlayCustomArticleInfoService.java (79%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkArticleInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupUserInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkRankingInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeUserInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserReviewInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesDetailsInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesInfoServiceImpl.java rename play-admin/src/main/java/com/starry/admin/modules/{article => clerk}/service/impl/PlayCustomArticleInfoServiceImpl.java (76%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomRankingController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomLevelReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/gift/controller/PlayClerkGiftInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayClerkGiftInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayClerkGiftInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayClerkGiftInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayClerkGiftInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderContinueInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRefundInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderContinueInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRandomInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRefundInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderContinueInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRandomInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRefundInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditStateVo.java delete mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderReviewStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderContinueInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRandomInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRefundInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderContinueInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderRandomInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderRefundInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/play/module/vo/PlayCommodityInfoVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/controller/PlayShopCarouselInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/mapper/PlayShopCarouselInfoMapper.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/module/entity/PlayShopCarouselInfoEntity.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoAddVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoUpdateStateVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/service/IPlayShopCarouselInfoService.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/shop/service/impl/PlayShopCarouselInfoServiceImpl.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxArticleController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkCommodityController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkLeveController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkWagesController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxLevelController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOrderInfoController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayOrderRankingController.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayCommodityReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderCancellationVo.java rename play-admin/src/main/java/com/starry/admin/modules/weichat/entity/{PlayClerkUserQueryVo.java => WxPlayClerkUserQueryVo.java} (89%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkAddArticleVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomFollowStateEditStateVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomGreedStateEditStateVo.java rename play-admin/src/main/java/com/starry/admin/modules/{clerk/module/entity => weichat/entity/clerk}/PlayClerkUserInfoQueryVo.java (91%) rename play-admin/src/main/java/com/starry/admin/modules/{clerk/module/entity/PlayClerkUserListResultVo.java => weichat/entity/clerk/PlayClerkUserInfoResultVo.java} (95%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideLevelStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideRankingStateEditVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/evaluate/PlayCustomOrderEvaluateReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/gift/PlayClerkGiftReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/level/PlayClerkLevelReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClearOrderInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkRandomOrderDetailReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderInfoQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java rename play-admin/src/main/java/com/starry/admin/modules/weichat/entity/{ => order}/PlayOrderInfoCommodityAdd.java (86%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueAdd.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueQueryVo.java rename play-admin/src/main/java/com/starry/admin/modules/{article/module/vo/PlayClerkArticleQueryVo.java => weichat/entity/order/PlayOrderInfoRandomQueryVo.java} (54%) create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardInfoReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardOrderQueryVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/user/PlayCustomUserReturnDetailVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/vo/PlayCustomLevelInfoReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkCurrentPeriodWagesReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkHistoricalWagesReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkUnsettledWagesReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkWagesDetailsReturnVo.java create mode 100644 play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/OrderWagesReturnVo.java create mode 100644 play-common/src/main/java/com/starry/common/utils/IdUtils.java diff --git a/play-admin/pom.xml b/play-admin/pom.xml index 0a4847c..16c6a88 100644 --- a/play-admin/pom.xml +++ b/play-admin/pom.xml @@ -100,6 +100,13 @@ 4.5.0 + + com.squareup.okio + okio + 3.4.0 + + + com.tencentcloudapi tencentcloud-sdk-java-dnspod diff --git a/play-admin/src/main/java/com/starry/admin/Application.java b/play-admin/src/main/java/com/starry/admin/Application.java index 4c6bdfd..ec7e469 100644 --- a/play-admin/src/main/java/com/starry/admin/Application.java +++ b/play-admin/src/main/java/com/starry/admin/Application.java @@ -3,15 +3,23 @@ package com.starry.admin; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.transaction.annotation.EnableTransactionManagement; /** * @author admin */ +@EnableTransactionManagement @SpringBootApplication +@EnableScheduling @ComponentScan("com.starry") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } + + + + } diff --git a/play-admin/src/main/java/com/starry/admin/common/component/JwtToken.java b/play-admin/src/main/java/com/starry/admin/common/component/JwtToken.java index 81844bb..73f0ea0 100644 --- a/play-admin/src/main/java/com/starry/admin/common/component/JwtToken.java +++ b/play-admin/src/main/java/com/starry/admin/common/component/JwtToken.java @@ -1,6 +1,6 @@ package com.starry.admin.common.component; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.http.useragent.UserAgent; @@ -96,7 +96,7 @@ public class JwtToken { * @return 令牌 */ public String createToken(JwtUser jwtUser) { - String token = IdUtil.fastSimpleUUID(); + String token = IdUtils.getUuid(); jwtUser.setToken(token); setUserAgent(jwtUser); refersToken(jwtUser); @@ -243,7 +243,7 @@ public class JwtToken { * 创建令牌 */ public Map createToken(LoginUser loginUser) { - String token = IdUtil.fastSimpleUUID(); + String token = IdUtils.getUuid(); String userId = loginUser.getUser().getUserId(); String userName = loginUser.getUser().getUserCode(); String tenantId = loginUser.getUser().getTenantId(); diff --git a/play-admin/src/main/java/com/starry/admin/common/conf/ListTypeHandler.java b/play-admin/src/main/java/com/starry/admin/common/conf/AbstractListTypeHandler.java similarity index 75% rename from play-admin/src/main/java/com/starry/admin/common/conf/ListTypeHandler.java rename to play-admin/src/main/java/com/starry/admin/common/conf/AbstractListTypeHandler.java index fc0272f..3aca90d 100644 --- a/play-admin/src/main/java/com/starry/admin/common/conf/ListTypeHandler.java +++ b/play-admin/src/main/java/com/starry/admin/common/conf/AbstractListTypeHandler.java @@ -1,5 +1,6 @@ package com.starry.admin.common.conf; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.TypeReference; import lombok.extern.slf4j.Slf4j; @@ -7,7 +8,6 @@ import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedTypes; -import org.springframework.util.StringUtils; import java.sql.CallableStatement; import java.sql.PreparedStatement; @@ -16,13 +16,18 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.List; +/** + * 数据库数据-String 和 List 自动转换 + * + * @author admin + */ @Slf4j -@MappedJdbcTypes(JdbcType.VARCHAR) //数据库类型 -@MappedTypes({List.class}) //java数据类型 -public abstract class ListTypeHandler extends BaseTypeHandler> { +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes({List.class}) +public abstract class AbstractListTypeHandler extends BaseTypeHandler> { @Override public void setNonNullParameter(PreparedStatement ps, int i, List parameter, JdbcType jdbcType) throws SQLException { - String content = StringUtils.isEmpty(parameter) ? null : JSON.toJSONString(parameter); + String content = StrUtil.isEmptyIfStr(parameter) ? null : JSON.toJSONString(parameter); ps.setString(i, content); } @@ -42,7 +47,7 @@ public abstract class ListTypeHandler extends BaseTypeHandler> { } private List getListByJsonArrayString(String content) { - return StringUtils.isEmpty(content) ? new ArrayList<>() : JSON.parseObject(content, this.specificType()); + return StrUtil.isEmptyIfStr(content) ? new ArrayList<>() : JSON.parseObject(content, this.specificType()); } /** diff --git a/play-admin/src/main/java/com/starry/admin/common/conf/StringTypeHandler.java b/play-admin/src/main/java/com/starry/admin/common/conf/StringTypeHandler.java index a6ca59b..428405f 100644 --- a/play-admin/src/main/java/com/starry/admin/common/conf/StringTypeHandler.java +++ b/play-admin/src/main/java/com/starry/admin/common/conf/StringTypeHandler.java @@ -1,10 +1,13 @@ package com.starry.admin.common.conf; import com.alibaba.fastjson2.TypeReference; + import java.util.List; -public class StringTypeHandler extends ListTypeHandler { - // 将ListTypeHandler(T为任意对象),具体为特定的对象String +/** + * @author admin + */ +public class StringTypeHandler extends AbstractListTypeHandler { @Override protected TypeReference> specificType() { return new TypeReference>() { diff --git a/play-admin/src/main/java/com/starry/admin/common/mybatis/handler/MyMetaObjectHandler.java b/play-admin/src/main/java/com/starry/admin/common/mybatis/handler/MyMetaObjectHandler.java index 4e36f5f..715169f 100644 --- a/play-admin/src/main/java/com/starry/admin/common/mybatis/handler/MyMetaObjectHandler.java +++ b/play-admin/src/main/java/com/starry/admin/common/mybatis/handler/MyMetaObjectHandler.java @@ -63,20 +63,26 @@ public class MyMetaObjectHandler implements MetaObjectHandler { } public String getOperatorId() { - if (request.getServletPath().startsWith("/wx/")) { - String tenantKey = request.getHeader("tenantkey"); - if (StrUtil.isBlankIfStr(tenantKey)) { - String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN); - String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN); - if (clerkToken != null) { - return tokenService.getWxUserIdByToken(clerkToken); + try { + if (request.getServletPath().startsWith("/wx/")) { + String tenantKey = request.getHeader("tenantkey"); + if (StrUtil.isBlankIfStr(tenantKey)) { + String clerkToken = request.getHeader(Constants.CLERK_USER_LOGIN_TOKEN); + String customToken = request.getHeader(Constants.CUSTOM_USER_LOGIN_TOKEN); + if (clerkToken != null) { + return tokenService.getWxUserIdByToken(clerkToken); + } + if (customToken != null) { + return tokenService.getWxUserIdByToken(customToken); + } } - if (customToken != null) { - return tokenService.getWxUserIdByToken(customToken); + return ""; + } else { + if (SecurityUtils.isLogin()) { + return SecurityUtils.getUserId(); } } - return ""; - } else { + } catch (Exception ignored) { if (SecurityUtils.isLogin()) { return SecurityUtils.getUserId(); } diff --git a/play-admin/src/main/java/com/starry/admin/common/oss/service/impl/OssFileServiceImpl.java b/play-admin/src/main/java/com/starry/admin/common/oss/service/impl/OssFileServiceImpl.java index 21f1b8f..f902cdc 100644 --- a/play-admin/src/main/java/com/starry/admin/common/oss/service/impl/OssFileServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/common/oss/service/impl/OssFileServiceImpl.java @@ -3,7 +3,7 @@ package com.starry.admin.common.oss.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.io.FileTypeUtil; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; @@ -58,7 +58,7 @@ public class OssFileServiceImpl implements IOssFileService { // 文件名:uuid.扩展名 - filename = IdUtil.fastSimpleUUID() + "." + fileType; + filename = IdUtils.getUuid() + "." + fileType; // 文件根路径 String key = module + "/" + folder + "/" + filename; // 创建PutObjectRequest对象。 diff --git a/play-admin/src/main/java/com/starry/admin/common/play/wx/CommonText.java b/play-admin/src/main/java/com/starry/admin/common/play/wx/CommonText.java deleted file mode 100644 index 31da476..0000000 --- a/play-admin/src/main/java/com/starry/admin/common/play/wx/CommonText.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.starry.admin.common.play.wx; - -public class CommonText { - - public static final String DATA_NOT_EXIST = "数据不存在"; - - /** - * 微信公众号 - */ - public static final String WECHAT_CONFIG_DOES_NOT_EXIST = "未配置公司微信公众号的相关信息"; - public static final String WECHAT_PAY_CONFIG_DOES_NOT_EXIST = "未配置公司微信支付的相关信息"; - public static final String OPENID_DOES_NOT_EXIST = "请上传微信用户openid"; - public static final String WECHAT_TRADE_TYPE_DOES_NOT_EXIST = "请上传微信支付交易类型"; - public static final String OPENID_ALREADY_BIND = "该微信号已被其他账号绑定!"; - public static final String ADMIN_OPENID_DOES_NOT_EXIST = "请上传管理员openid"; - public static final String OPENID_DOES_NOT_FIND = "未获取到对应微信用户openid"; - public static final String WECHAT_CODE_DOES_NOT_EXIST = "请上传微信用户code"; - public static final String WECHAT_USER_TOKEN_DOES_ERR = "获取微信用户token失败"; - public static final String UNIFIEDORDER_ERR = "统一下单失败"; - public static final String UNIFIEDORDER_ERR_PREPAY_ID_NOT_FIND = "统一下单失败,未生成PREPAY_ID"; - - /** - * 微信小程序 - */ - public static final String MINI_OPENID_DOES_NOT_EXIST = "请上传小程序用户openid"; - public static final String WECHAT_MINI_CONFIG_DOES_NOT_EXIST = "未配置公司微信小程序的相关信息"; - public static final String WECHAT_MINI_PARAM_NOT_EXIST = "缺少所需小程序参数!"; - public static final String WECHAT_MINI_IV_NOT_EXIST = "请上传iv参数"; - public static final String WECHAT_MINI_SESSION_KEY_DOES_NOT_EXIST = "请上传session_key参数"; - public static final String WECHAT_MINI_ENCRYPTED_DATA_DOES_NOT_EXIST = "请上传encrypted_data参数"; - public static final String WECHAT_MINI_ENCRYPTED_DATA_PARSE_ERR = "encrypted_data解析失败"; - public static final String WECHAT_MINI_ENCRYPTED_DATA_NOT_HAVE_PHONE_NUM = "encrypted_data中未解析出电话号码"; - - /** - * 支付相关 - */ - public static final String ORDER_PAY_TYPE_NOT_EXIST = "请上传支付方式!"; -} diff --git a/play-admin/src/main/java/com/starry/admin/common/play/wx/WxCustomPayUtils.java b/play-admin/src/main/java/com/starry/admin/common/play/wx/WxCustomPayUtils.java index fc4dfdf..39aa1f8 100644 --- a/play-admin/src/main/java/com/starry/admin/common/play/wx/WxCustomPayUtils.java +++ b/play-admin/src/main/java/com/starry/admin/common/play/wx/WxCustomPayUtils.java @@ -1,6 +1,6 @@ package com.starry.admin.common.play.wx; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.crypto.digest.MD5; import com.github.wxpay.sdk.WXPayUtil; import com.starry.admin.common.exception.CustomException; @@ -114,7 +114,7 @@ public class WxCustomPayUtils { Map paraMap = new HashMap(); paraMap.put("appid", wechat_appid); paraMap.put("mch_id", wechat_mchid); - paraMap.put("nonce_str", IdUtil.fastSimpleUUID()); + paraMap.put("nonce_str", IdUtils.getUuid()); paraMap.put("out_trade_no", out_trade_no);// 订单号 String sign = WXPayUtil.generateSignature(paraMap, wechat_seckey); paraMap.put("sign", sign); diff --git a/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java b/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java new file mode 100644 index 0000000..8350694 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java @@ -0,0 +1,158 @@ +package com.starry.admin.common.task; + +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.platform.entity.SysTenantEntity; +import com.starry.admin.modules.platform.service.ISysTenantService; +import com.starry.admin.utils.SecurityUtils; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +/** + * 订单工资结算 + * + * @author admin + * @since 2024/5/28 下午2:42 + **/ +@Component +public class ClerkWagesSettlementTask { + + @Resource + ISysTenantService sysTenantService; + + @Resource + private IPlayClerkUserInfoService clerkUserInfoService; + + @Resource + private IPlayOrderInfoService playOrderInfoService; + + @Resource + private IPlayClerkRankingInfoService clerkRankingInfoService; + + @Resource + private IPlayClerkWagesInfoService playClerkWagesInfoService; + + @Resource + private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService; + + /** + * 每分钟查询未结算订单 + * 如果订单完成时间超过24小时,可进行结算,生成工资 + */ +// @Scheduled(cron = "0 0/1 * * * ?") + public void dailyRanking() { + //1、查询所有的租户信息 + List tenantEntities = sysTenantService.listAll(); + for (SysTenantEntity tenantEntity : tenantEntities) { + SecurityUtils.setTenantId(tenantEntity.getTenantId()); + List clerkUserReturnVos = clerkUserInfoService.listAll(); + //生成每个人的工资信息 + for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) { + updateClerkWagesInfo(clerkUserInfo.getId()); + } + } + } + + + /** + * 活动24小时前完成的订单,对订单进行结算 + * + * @param clerkId 店员ID + */ + public void updateClerkWagesInfo(String clerkId) { + //获得24小时前完成,并且未结算的订单 + LocalDateTime lastTime = LocalDateTime.now().minusDays(1); + //查询当前店员上次结算工资到现在的订单 + List orderInfoEntities = playOrderInfoService.listByEndTime(clerkId, lastTime); + PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.getLastSettlement(clerkId); + //更新订单信息 + updateClerkWagesInfo(clerkId, entity == null ? IdUtils.getUuid() : entity.getId(), orderInfoEntities); + } + + + /** + * 更新最新一次工资统计信息 + * 更新订单记录 + * + * @param orderInfoEntities 订单列表 + */ + public void updateClerkWagesInfo(String clerkId, String wagesId, List orderInfoEntities) { + //修改订单状态并且新增订单结算详情 + for (PlayOrderInfoEntity orderInfo : orderInfoEntities) { + //修改订单状态 + orderInfo.setOrderSettlementState("1"); + orderInfo.setOrderSettlementTime(LocalDateTime.now()); + playOrderInfoService.update(orderInfo); + + PlayClerkWagesDetailsInfoEntity wagesDetailsInfo = playClerkWagesDetailsInfoService.selectByOrderId(orderInfo.getId()); + if (wagesDetailsInfo == null) { + wagesDetailsInfo = new PlayClerkWagesDetailsInfoEntity(); + wagesDetailsInfo.setId(IdUtils.getUuid()); + } + //新增订单结算详情 + wagesDetailsInfo.setWagesId(wagesId); + wagesDetailsInfo.setClerkId(clerkId); + wagesDetailsInfo.setOrderId(orderInfo.getId()); + wagesDetailsInfo.setOrderNo(orderInfo.getOrderNo()); + wagesDetailsInfo.setFinalAmount(orderInfo.getFinalAmount()); + wagesDetailsInfo.setEstimatedRevenue(orderInfo.getEstimatedRevenue()); + wagesDetailsInfo.setEndOrderTime(orderInfo.getOrderEndTime()); + playClerkWagesDetailsInfoService.saveOrUpdate(wagesDetailsInfo); + } + //新增订单结算信息 + BigDecimal finalAmount = BigDecimal.ZERO; + Integer orderContinueNumber = 0; + BigDecimal orderContinueMoney = BigDecimal.ZERO; + Integer ordersExpiredNumber = 0; + BigDecimal estimatedRevenue = BigDecimal.ZERO; + Integer orderNumber = 0; + LocalDate lastTime = playClerkWagesInfoService.getLastSettlementTime(clerkId); + for (PlayClerkWagesDetailsInfoEntity entity : playClerkWagesDetailsInfoService.selectByWagesId(wagesId)) { + PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(entity.getOrderId()); + finalAmount = finalAmount.add(orderInfo.getFinalAmount()); + orderNumber++; + estimatedRevenue = estimatedRevenue.add(orderInfo.getEstimatedRevenue()); + if ("0".equals(orderInfo.getFirstOrder())) { + orderContinueNumber++; + orderContinueMoney = orderContinueMoney.add(orderInfo.getFinalAmount()); + } + if ("1".equals(orderInfo.getOrdersExpiredState())) { + ordersExpiredNumber++; + } + } + + PlayClerkWagesInfoEntity wagesInfo = new PlayClerkWagesInfoEntity(); + wagesInfo.setId(wagesId); + wagesInfo.setClerkId(clerkId); + wagesInfo.setStartCountDate(lastTime); + wagesInfo.setEndCountDate(LocalDate.now()); + wagesInfo.setOrderNumber(orderNumber); + wagesInfo.setFinalAmount(finalAmount); + wagesInfo.setOrderContinueNumber(orderContinueNumber); + wagesInfo.setOrderContinueMoney(orderContinueMoney); + wagesInfo.setOrdersExpiredNumber(ordersExpiredNumber); + wagesInfo.setSettlementDate(LocalDate.now()); + wagesInfo.setEstimatedRevenue(estimatedRevenue); + if (ChronoUnit.DAYS.between(LocalDate.now(), lastTime) <= 7) { + wagesInfo.setHistoricalStatistics("0"); + } else { + wagesInfo.setHistoricalStatistics("1"); + } + + playClerkWagesInfoService.saveOrUpdate(wagesInfo); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java new file mode 100644 index 0000000..243c041 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java @@ -0,0 +1,118 @@ +package com.starry.admin.common.task; + +import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.platform.entity.SysTenantEntity; +import com.starry.admin.modules.platform.service.ISysTenantService; +import com.starry.admin.utils.SecurityUtils; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 订单排名结算信息 + * + * @author admin + * @since 2024/5/28 下午2:42 + **/ +@Component +public class OrderRankingSettlementTask { + + @Resource + ISysTenantService sysTenantService; + + @Resource + private IPlayClerkUserInfoService clerkUserInfoService; + + @Resource + private IPlayOrderInfoService orderInfoService; + + @Resource + private IPlayClerkRankingInfoService clerkRankingInfoService; + + /** + * 当日订单结算,查询前一日的订单信息,生成订单排名数据 + * 每天凌晨0点5分0秒时触发执行 + */ +// @Scheduled(cron = "0 10 0 * * ?") + public void dailyRanking() { + //1、查询所有的租户信息 + List tenantEntities = sysTenantService.listAll(); + LocalDate startTime = LocalDate.now().minusDays(1); + LocalDate endTime = LocalDate.now(); + //2、查询每个租户的用户,以及他们的订单信息 + Integer newSerialNumber = clerkRankingInfoService.selectSerialNumber(); + for (SysTenantEntity tenantEntity : tenantEntities) { + SecurityUtils.setTenantId(tenantEntity.getTenantId()); + List clerkUserReturnVos = clerkUserInfoService.listAll(); + //生成每个人的订单排行信息 + for (PlayClerkUserInfoEntity clerkUserInfo : clerkUserReturnVos) { + //查询当前店员一定时间的订单信息 + List orderInfoEntities = orderInfoService.listByTime(clerkUserInfo.getId(), startTime, endTime); + PlayClerkRankingInfoEntity rankingInfo = clerkRankingInfoService.selectByTime(clerkUserInfo.getId(), startTime, endTime); + //3、根据订单信息,生成对应排名数据 + updateClerkRanking(clerkUserInfo.getId(), startTime, endTime, rankingInfo, orderInfoEntities, newSerialNumber); + } + //根据订单数量,更新排行名词 + List list = clerkRankingInfoService.selectMaxSerialNumber(); + // 使用匿名比较器排序 + list.sort((p1, p2) -> p2.getOrderNumber() - p1.getOrderNumber()); + for (int i = 0; i < list.size(); i++) { + PlayClerkRankingInfoEntity item = list.get(i); + item.setRankingIndex(i + 1); + if (i > 0) { + item.setPreviousMoney(list.get(i - 1).getOrderMoney().subtract(item.getOrderMoney())); + } + clerkRankingInfoService.update(item); + } + } + } + + /** + * 更新当前店员的排名信息 + * + * @param clerkId 店员ID + * @param rankingInfo 店员排名信息 + * @param orderInfoEntities 店员订单信息 + */ + public void updateClerkRanking(String clerkId, LocalDate startTime, LocalDate endTime, PlayClerkRankingInfoEntity rankingInfo, List orderInfoEntities, Integer newSerialNumber) { + //排行-订单信息 + BigDecimal orderMoney = BigDecimal.ZERO; + Integer orderContinueNumber = 0; + BigDecimal orderContinueMoney = BigDecimal.ZERO; + Integer ordersExpiredNumber = 0; + for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) { + orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney()); + if ("0".equals(orderInfoEntity.getFirstOrder())) { + orderContinueNumber++; + orderContinueMoney = orderContinueMoney.add(orderInfoEntity.getOrderMoney()); + } + } + + if (rankingInfo == null) { + rankingInfo = new PlayClerkRankingInfoEntity(); + rankingInfo.setId(IdUtils.getUuid()); + rankingInfo.setSerialNumber(newSerialNumber + 1); + } + rankingInfo.setClerkId(clerkId); + rankingInfo.setStartCountDate(startTime); + rankingInfo.setEndCountDate(endTime); + rankingInfo.setOrderNumber(orderInfoEntities.size()); + rankingInfo.setSerialNumber(newSerialNumber); + rankingInfo.setOrderMoney(orderMoney); + rankingInfo.setOrderContinueMoney(orderContinueMoney); + rankingInfo.setOrderContinueNumber(orderContinueNumber); + rankingInfo.setOrdersExpiredNumber(ordersExpiredNumber); + clerkRankingInfoService.saveOrUpdate(rankingInfo); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayClerkArticleInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayClerkArticleInfoController.java deleted file mode 100644 index 7d2b78c..0000000 --- a/play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayClerkArticleInfoController.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.starry.admin.modules.article.controller; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo; -import com.starry.admin.modules.article.service.IPlayClerkArticleInfoService; -import com.starry.admin.modules.article.service.IPlayCustomArticleInfoService; -import com.starry.common.annotation.Log; -import com.starry.common.enums.BusinessType; -import com.starry.common.result.R; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -/** - * 店员动态信息Controller - * - * @author admin - * @since 2024-05-04 - */ -@RestController -@RequestMapping("/clerk/article") -public class PlayClerkArticleInfoController { - @Resource - private IPlayClerkArticleInfoService playClerkArticleInfoService; - @Resource - private IPlayCustomArticleInfoService playCustomArticleInfoService; - - - /** - * 查询店员动态信息列表 - */ - @PostMapping("/list") - public R list(PlayClerkArticleQueryVo vo) { - IPage list = playClerkArticleInfoService.selectPlayClerkArticleInfoByPage(vo); - return R.ok(list); - } - - /** - * 获取店员动态信息详细信息 - */ - @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") String id) { - return R.ok(playClerkArticleInfoService.selectPlayClerkArticleInfoById(id)); - } - - /** - * 新增店员动态信息 - */ - @Log(title = "店员动态信息", businessType = BusinessType.INSERT) - @PostMapping("/create") - public R create(@RequestBody PlayClerkArticleInfoEntity playClerkArticleInfo) { - boolean success = playClerkArticleInfoService.create(playClerkArticleInfo); - if (success) { - return R.ok(); - } - return R.error("添加失败"); - } - - /** - * 修改店员动态信息 - */ - @Log(title = "店员动态信息", businessType = BusinessType.UPDATE) - @PostMapping(value = "/update/{id}") - public R update(@PathVariable String id, @RequestBody PlayClerkArticleInfoEntity playClerkArticleInfo) { - playClerkArticleInfo.setId(id); - boolean success = playClerkArticleInfoService.update(playClerkArticleInfo); - if (success) { - return R.ok(); - } - return R.error("修改失败"); - } - - /** - * 删除店员动态信息 - */ - @Log(title = "店员动态信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@PathVariable String[] ids) { - for (String id : ids) { - playClerkArticleInfoService.deletePlayClerkArticleInfoById(id); - playCustomArticleInfoService.deleteByArticleId(id); - } - return R.ok(); - } -} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleReturnVo.java deleted file mode 100644 index e4e45a5..0000000 --- a/play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleReturnVo.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.starry.admin.modules.article.module.vo; - -import lombok.Data; - -import java.util.Date; - -/** - * @author admin - * 动态信息查询返回对象 - */ -@Data -public class PlayClerkArticleReturnVo { - - - /** - * UUID - */ - private String id; - /** - * 陪聊用户ID - */ - private String userId; - - /** - * 陪聊用户昵称 - */ - private String nickname; - - /** - * 陪聊用户头像 - */ - private String avatar; - - /** - * 动态标题 - */ - private String articleTitle; - - /** - * 动态内容类型(0:图片,1:视频) - */ - private String articleType; - - /** - * 动态内容 - */ - private String articleCon; - - /** - * 发布时间 - */ - private Date releaseTime; - - /** - * 备注 - */ - private String remark; - - /** - * 点赞人数 - */ - private Long agreedQuantity; - - /** - * 审核状态(0:未审核:1:审核通过,2:审核不通过) - */ - private String reviewState; -} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayClerkArticleInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayClerkArticleInfoServiceImpl.java deleted file mode 100644 index b00e036..0000000 --- a/play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayClerkArticleInfoServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.starry.admin.modules.article.service.impl; - -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.starry.admin.modules.article.mapper.PlayClerkArticleInfoMapper; -import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo; -import com.starry.admin.modules.article.service.IPlayClerkArticleInfoService; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.Arrays; - -/** - * 店员动态信息Service业务层处理 - * - * @author admin - * @since 2024-05-04 - */ -@Service -public class PlayClerkArticleInfoServiceImpl extends ServiceImpl implements IPlayClerkArticleInfoService { - @Resource - private PlayClerkArticleInfoMapper playClerkArticleInfoMapper; - - /** - * 查询店员动态信息 - * - * @param id 店员动态信息主键 - * @return 店员动态信息 - */ - @Override - public PlayClerkArticleInfoEntity selectPlayClerkArticleInfoById(String id) { - return this.baseMapper.selectById(id); - } - - /** - * 查询店员动态信息列表 - * - * @param vo 店员动态信息查询对象 - * @return 店员动态信息 - */ - @Override - public IPage selectPlayClerkArticleInfoByPage(PlayClerkArticleQueryVo vo) { - MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() - //查询主表全部字段 - .selectAll(PlayClerkArticleInfoEntity.class) - //陪聊用户表全部字段 - .selectAll(PlayClerkUserInfoEntity.class) - //陪聊用户表 - .leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getPlayUserId); - return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper); - } - - /** - * 新增店员动态信息 - * - * @param playClerkArticleInfo 店员动态信息 - * @return 结果 - */ - @Override - public boolean create(PlayClerkArticleInfoEntity playClerkArticleInfo) { - if (StrUtil.isBlankIfStr(playClerkArticleInfo.getId())) { - playClerkArticleInfo.setId(IdUtil.fastSimpleUUID()); - } - return save(playClerkArticleInfo); - } - - /** - * 修改店员动态信息 - * - * @param playClerkArticleInfo 店员动态信息 - * @return 结果 - */ - @Override - public boolean update(PlayClerkArticleInfoEntity playClerkArticleInfo) { - return updateById(playClerkArticleInfo); - } - - /** - * 批量删除店员动态信息 - * - * @param ids 需要删除的店员动态信息主键 - * @return 结果 - */ - @Override - public int deletePlayClerkArticleInfoByIds(String[] ids) { - return playClerkArticleInfoMapper.deleteBatchIds(Arrays.asList(ids)); - } - - /** - * 删除店员动态信息信息 - * - * @param id 店员动态信息主键 - * @return 结果 - */ - @Override - public int deletePlayClerkArticleInfoById(String id) { - return playClerkArticleInfoMapper.deleteById(id); - } -} diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java index 92b1bbf..c0c0d1d 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/controller/PlayBalanceDetailsInfoController.java @@ -6,6 +6,7 @@ import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -26,8 +27,8 @@ public class PlayBalanceDetailsInfoController { /** * 查询余额明细列表 */ - @PostMapping("/list") - public R list(@RequestBody PlayBalanceDetailsQueryVo vo) { + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayBalanceDetailsQueryVo vo) { return R.ok(playBalanceDetailsInfoService.selectByPage(vo)); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java index f34642e..8d5c8ae 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/module/entity/PlayBalanceDetailsInfoEntity.java @@ -50,11 +50,17 @@ public class PlayBalanceDetailsInfoEntity extends BaseEntity operationTime; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/module/vo/PlayBalanceDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/balance/module/vo/PlayBalanceDetailsReturnVo.java index 3c75bbd..ceafbe1 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/module/vo/PlayBalanceDetailsReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/module/vo/PlayBalanceDetailsReturnVo.java @@ -1,15 +1,17 @@ package com.starry.admin.modules.balance.module.vo; -import com.starry.common.domain.BasePageEntity; import lombok.Data; -import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; -@EqualsAndHashCode(callSuper = true) +/** + * 余额明细查询对象 + * + * @author admin + */ @Data -public class PlayBalanceDetailsReturnVo extends BasePageEntity { +public class PlayBalanceDetailsReturnVo { /** * UUID @@ -27,10 +29,15 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity { private BigDecimal balanceAfterOperation; /** - * 操作类型 + * 操作类型(0:充值;1:消费;2:服务) */ private String operationType; + /** + * 操作动作 + */ + private String operationAction; + /** * 操作时间 */ @@ -41,21 +48,28 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity { */ private BigDecimal balanceMoney; + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + /** * 订单ID */ private String orderId; + /** + * 订单ID + */ + private String orderNo; + /** * 订单金额 */ private BigDecimal orderMoney; - /** - * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 - */ - private String payMethod; /** * 赠送金额 @@ -77,15 +91,15 @@ public class PlayBalanceDetailsReturnVo extends BasePageEntity { /** * 顾客Id */ - private String customUserId; + private String customId; /** * 顾客昵称 */ - private String nickname; + private String customNickname; /** - * 头像 + * 顾客头像 */ - private String avatar; + private String customAvatar; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/balance/service/IPlayBalanceDetailsInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/balance/service/IPlayBalanceDetailsInfoService.java index a329b37..aa007cf 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/balance/service/IPlayBalanceDetailsInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/balance/service/IPlayBalanceDetailsInfoService.java @@ -49,10 +49,12 @@ public interface IPlayBalanceDetailsInfoService extends IService(vo.getPageNum(), vo.getPageSize()), PlayBalanceDetailsReturnVo.class, lambdaQueryWrapper); @@ -78,9 +94,9 @@ public class PlayBalanceDetailsInfoServiceImpl extends ServiceImpl list = playClerkArticleInfoService.selectByPage(vo); + return R.ok(list); + } + + + /** + * 修改店员动态信息 + */ + @Log(title = "店员动态信息", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update") + public R update(@RequestBody PlayClerkArticleReviewStateEditVo vo) { + PlayClerkArticleInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkArticleInfoEntity.class); + boolean success = playClerkArticleInfoService.update(entity); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员动态信息 + */ + @Log(title = "店员动态信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + for (String id : ids) { + playClerkArticleInfoService.deletePlayClerkArticleInfoById(id); + playCustomArticleInfoService.deleteByArticleId(id); + } + return R.ok(); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkDataReviewInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkDataReviewInfoController.java index d09cb0f..4fbaaa3 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkDataReviewInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkDataReviewInfoController.java @@ -1,23 +1,14 @@ package com.starry.admin.modules.clerk.controller; -import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEditVo; -import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoQueryVo; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; -import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo; import com.starry.admin.modules.clerk.service.IPlayClerkDataReviewInfoService; -import com.starry.admin.modules.clerk.service.impl.PlayClerkUserInfoServiceImpl; -import com.starry.admin.modules.weichat.entity.PlayClerkUserAlbumVo; -import com.starry.admin.modules.weichat.entity.PlayClerkUserAudioVo; -import com.starry.admin.modules.weichat.entity.PlayClerkUserAvatarVo; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; -import com.starry.common.utils.ConvertUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -26,99 +17,33 @@ import javax.annotation.Resource; * 店员资料审核Controller * * @author admin - * @since 2024-04-11 + * @since 2024-05-19 */ @RestController @RequestMapping("/clerk/data/review") public class PlayClerkDataReviewInfoController { - private static final Logger log = LoggerFactory.getLogger(PlayClerkDataReviewInfoController.class); + @Resource private IPlayClerkDataReviewInfoService playClerkDataReviewInfoService; - @Resource - private PlayClerkUserInfoServiceImpl playClerkUserInfoService; - - - @Resource - private IPlayClerkCommodityService playClerkCommodityService; - - /** * 查询店员资料审核列表 */ @PostMapping("/listByPage") - public R list(PlayClerkDataReviewInfoQueryVo vo) { - IPage list = playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoByPage(vo); + public R list(@Validated @RequestBody PlayClerkDataReviewQueryVo vo) { + IPage list = playClerkDataReviewInfoService.selectByPage(vo); return R.ok(list); } - /** - * 获取店员资料审核详细信息 - */ - @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") String id) { - return R.ok(playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoById(id)); - } - - /** * 修改店员资料审核 */ - @Log(title = "店员资料审核", businessType = BusinessType.UPDATE) @PostMapping(value = "/update") - public R update(@RequestBody PlayClerkDataReviewInfoEditVo vo) { - PlayClerkDataReviewInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkDataReviewInfoEntity.class); - boolean success = playClerkDataReviewInfoService.update(entity); - if (success) { - entity = playClerkDataReviewInfoService.selectPlayClerkDataReviewInfoById(entity.getId()); - if (entity != null && "1".equals(entity.getState())) { - switch (entity.getDataType()) { - case "0": { - //陪聊申请审批通过,初始化陪聊信息 - PlayClerkUserInfoEntity item = JSONObject.parseObject(entity.getContent(), PlayClerkUserInfoEntity.class); - item.setId(entity.getPlayUserId()); - item.setClerkState("1"); - playClerkUserInfoService.update(item); - //初始化陪聊服务项目 - playClerkCommodityService.initClerkCommodity(entity.getPlayUserId()); - break; - } - case "1": { - PlayClerkUserAvatarVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAvatarVo.class); - PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity(); - userInfo.setId(entity.getPlayUserId()); - userInfo.setAvatar(item.getAvatar()); - playClerkUserInfoService.update(userInfo); - break; - } - case "2": { - PlayClerkUserAlbumVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAlbumVo.class); - PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity(); - userInfo.setId(entity.getPlayUserId()); - userInfo.setAlbum(item.getAlbum()); - playClerkUserInfoService.update(userInfo); - - break; - } - case "3": { - PlayClerkUserAudioVo item = JSONObject.parseObject(entity.getContent(), PlayClerkUserAudioVo.class); - PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity(); - userInfo.setId(entity.getPlayUserId()); - userInfo.setAudio(item.getAudio()); - playClerkUserInfoService.update(userInfo); - break; - } - default: - log.error("dataType not,dataType = {}", entity.getDataType()); - } - - } - - return R.ok(); - } - return R.error("修改失败"); + public R update(@Validated @RequestBody PlayClerkDataReviewStateEditVo vo) { + playClerkDataReviewInfoService.updateDataReviewState(vo); + return R.ok(); } /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java new file mode 100644 index 0000000..b0ae521 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupInfoController.java @@ -0,0 +1,77 @@ +package com.starry.admin.modules.clerk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkGroupInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员分组信息Controller + * + * @author admin + * @since 2024-05-31 + */ +@RestController +@RequestMapping("/clerk/group") +public class PlayClerkGroupInfoController { + @Resource + private IPlayClerkGroupInfoService playClerkGroupInfoService; + + /** + * 查询店员分组信息列表 + */ + @GetMapping("/list") + public R list(PlayClerkGroupInfoEntity playClerkGroupInfo) { + IPage list = playClerkGroupInfoService.selectPlayClerkGroupInfoByPage(playClerkGroupInfo); + return R.ok(list); + } + + /** + * 获取店员分组信息详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkGroupInfoService.selectPlayClerkGroupInfoById(id)); + } + + /** + * 新增店员分组信息 + */ + @Log(title = "店员分组信息", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { + boolean success = playClerkGroupInfoService.create(playClerkGroupInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员分组信息 + */ + @Log(title = "店员分组信息", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkGroupInfoEntity playClerkGroupInfo) { + playClerkGroupInfo.setId(id); + boolean success = playClerkGroupInfoService.update(playClerkGroupInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员分组信息 + */ + @Log(title = "店员分组信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkGroupInfoService.deletePlayClerkGroupInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupUserInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupUserInfoController.java new file mode 100644 index 0000000..19e48e6 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkGroupUserInfoController.java @@ -0,0 +1,77 @@ +package com.starry.admin.modules.clerk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkGroupUserInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员和分组关系Controller + * + * @author admin + * @since 2024-05-31 + */ +@RestController +@RequestMapping("/group/clerk") +public class PlayClerkGroupUserInfoController { + @Resource + private IPlayClerkGroupUserInfoService playClerkGroupUserInfoService; + + /** + * 查询店员和分组关系列表 + */ + @GetMapping("/list") + public R list(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + IPage list = playClerkGroupUserInfoService.selectPlayClerkGroupUserInfoByPage(playClerkGroupUserInfo); + return R.ok(list); + } + + /** + * 获取店员和分组关系详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkGroupUserInfoService.selectPlayClerkGroupUserInfoById(id)); + } + + /** + * 新增店员和分组关系 + */ + @Log(title = "店员和分组关系", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + boolean success = playClerkGroupUserInfoService.create(playClerkGroupUserInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员和分组关系 + */ + @Log(title = "店员和分组关系", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + playClerkGroupUserInfo.setId(id); + boolean success = playClerkGroupUserInfoService.update(playClerkGroupUserInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员和分组关系 + */ + @Log(title = "店员和分组关系", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkGroupUserInfoService.deletePlayClerkGroupUserInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java new file mode 100644 index 0000000..1ad8d56 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkRankingInfoController.java @@ -0,0 +1,77 @@ +package com.starry.admin.modules.clerk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员排行Controller + * + * @author admin + * @since 2024-05-25 + */ +@RestController +@RequestMapping("/clerk/ranking") +public class PlayClerkRankingInfoController { + @Resource + private IPlayClerkRankingInfoService playClerkRankingInfoService; + + /** + * 查询店员排行列表 + */ + @GetMapping("/listByPage") + public R list(PlayClerkRankingInfoEntity playClerkRankingInfo) { + IPage list = playClerkRankingInfoService.selectPlayClerkRankingInfoByPage(playClerkRankingInfo); + return R.ok(list); + } + + /** + * 获取店员排行详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkRankingInfoService.selectPlayClerkRankingInfoById(id)); + } + + /** + * 新增店员排行 + */ + @Log(title = "店员排行", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayClerkRankingInfoEntity playClerkRankingInfo) { + boolean success = playClerkRankingInfoService.create(playClerkRankingInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员排行 + */ + @Log(title = "店员排行", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkRankingInfoEntity playClerkRankingInfo) { + playClerkRankingInfo.setId(id); + boolean success = playClerkRankingInfoService.update(playClerkRankingInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员排行 + */ + @Log(title = "店员排行", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkRankingInfoService.deletePlayClerkRankingInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkTypeInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkTypeInfoController.java new file mode 100644 index 0000000..8e47eef --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkTypeInfoController.java @@ -0,0 +1,78 @@ +package com.starry.admin.modules.clerk.controller; + +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkTypeInfoAddVo; +import com.starry.admin.modules.clerk.service.IPlayClerkTypeInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import com.starry.common.utils.ConvertUtil; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员分类信息Controller + * + * @author admin + * @since 2024-05-31 + */ +@RestController +@RequestMapping("/clerk/type") +public class PlayClerkTypeInfoController { + @Resource + private IPlayClerkTypeInfoService playClerkTypeInfoService; + + /** + * 查询店员分类信息列表 + */ + @GetMapping("/listByAll") + public R listByAll() { + return R.ok(playClerkTypeInfoService.selectByAll()); + } + + /** + * 获取店员分类信息详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkTypeInfoService.selectPlayClerkTypeInfoById(id)); + } + + /** + * 新增店员分类信息 + */ + @Log(title = "店员分类信息", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@Validated @RequestBody PlayClerkTypeInfoAddVo vo) { + boolean success = playClerkTypeInfoService.create(ConvertUtil.entityToVo(vo, PlayClerkTypeInfoEntity.class)); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员分类信息 + */ + @Log(title = "店员分类信息", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkTypeInfoEntity playClerkTypeInfo) { + playClerkTypeInfo.setId(id); + boolean success = playClerkTypeInfoService.update(playClerkTypeInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员分类信息 + */ + @Log(title = "店员分类信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkTypeInfoService.deletePlayClerkTypeInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java index a633ab3..23090b9 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserInfoController.java @@ -1,18 +1,16 @@ package com.starry.admin.modules.clerk.controller; -import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoQueryVo; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo; -import com.starry.admin.modules.clerk.module.vo.PlayClerkUserAddToWxVo; -import com.starry.admin.modules.clerk.module.vo.PlayClerkUserAddVo; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserQueryVo; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReturnVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkUserEditVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkUserStateEditVo; import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; -import com.starry.admin.modules.play.module.entity.PlayUserInfoEntity; import com.starry.admin.modules.play.service.IPlayUserInfoService; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; @@ -44,8 +42,8 @@ public class PlayClerkUserInfoController { * 查询店员列表 */ @PostMapping("listByPage") - public R listByPage(PlayClerkUserInfoQueryVo vo) { - IPage list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo); + public R listByPage(@Validated @RequestBody PlayClerkUserQueryVo vo) { + IPage list = playClerkUserInfoService.selectByPage(vo); return R.ok(list); } @@ -55,7 +53,7 @@ public class PlayClerkUserInfoController { */ @GetMapping("/list") public R list(PlayClerkUserInfoQueryVo vo) { - IPage list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo); + IPage list = playClerkUserInfoService.selectPlayClerkUserInfoByPage(vo); return R.ok(list); } @@ -67,43 +65,43 @@ public class PlayClerkUserInfoController { return R.ok(playClerkUserInfoService.selectById(id)); } - - /** - * 微信端口新增店员 - */ - @Log(title = "店员", businessType = BusinessType.INSERT) - @PostMapping("/wx/add") - public R add(@Validated @RequestBody PlayClerkUserAddToWxVo vo) { - //微信申请成为店员,需要先创建账户。 - PlayUserInfoEntity userInfoEntity = ConvertUtil.entityToVo(vo, PlayUserInfoEntity.class); - userInfoEntity.setId(IdUtil.fastSimpleUUID()); - playUserInfoService.create(userInfoEntity); - //账号创建完成后,创建店员 - PlayClerkUserInfoEntity clerkUserInfoEntity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); - clerkUserInfoEntity.setPlayUserId(userInfoEntity.getId()); - boolean success = playClerkUserInfoService.create(clerkUserInfoEntity); - if (success) { - clerkCommodityService.initClerkCommodity(userInfoEntity.getId()); - return R.ok(); - } - return R.error("添加失败"); - } +// +// /** +// * 微信端口新增店员 +// */ +// @Log(title = "店员", businessType = BusinessType.INSERT) +// @PostMapping("/wx/add") +// public R add(@Validated @RequestBody PlayClerkUserAddToWxVo vo) { +// //微信申请成为店员,需要先创建账户。 +// PlayUserInfoEntity userInfoEntity = ConvertUtil.entityToVo(vo, PlayUserInfoEntity.class); +// userInfoEntity.setId(IdUtils.getUuid()); +// playUserInfoService.create(userInfoEntity); +// //账号创建完成后,创建店员 +// PlayClerkUserInfoEntity clerkUserInfoEntity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); +// clerkUserInfoEntity.setPlayUserId(userInfoEntity.getId()); +// boolean success = playClerkUserInfoService.create(clerkUserInfoEntity); +// if (success) { +// clerkCommodityService.initClerkCommodity(userInfoEntity.getId()); +// return R.ok(); +// } +// return R.error("添加失败"); +// } - /** - * 新增店员 - */ - @Log(title = "店员", businessType = BusinessType.INSERT) - @PostMapping("/create") - public R create(@Validated @RequestBody PlayClerkUserAddVo vo) { - PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); - boolean success = playClerkUserInfoService.create(entity); - if (success) { - clerkCommodityService.initClerkCommodity(vo.getPlayUserId()); - return R.ok(); - } - return R.error("添加失败"); - } +// /** +// * 新增店员 +// */ +// @Log(title = "店员", businessType = BusinessType.INSERT) +// @PostMapping("/create") +// public R create(@Validated @RequestBody PlayClerkUserAddVo vo) { +// PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(vo, PlayClerkUserInfoEntity.class); +// boolean success = playClerkUserInfoService.create(entity); +// if (success) { +// clerkCommodityService.initClerkCommodity(vo.getPlayUserId()); +// return R.ok(); +// } +// return R.error("添加失败"); +// } /** * 修改店员 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserReviewInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserReviewInfoController.java new file mode 100644 index 0000000..f8aa67d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkUserReviewInfoController.java @@ -0,0 +1,55 @@ +package com.starry.admin.modules.clerk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewStateEditVo; +import com.starry.admin.modules.clerk.service.IPlayClerkUserReviewInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员资料审核Controller + * + * @author admin + * @since 2024-05-19 + */ +@RestController +@RequestMapping("/clerk/user/review") +public class PlayClerkUserReviewInfoController { + @Resource + private IPlayClerkUserReviewInfoService playClerkUserReviewInfoService; + + /** + * 查询店员资料审核列表 + */ + @PostMapping("/listByPage") + public R listByPage(@Validated @RequestBody PlayClerkUserReviewQueryVo vo) { + IPage list = playClerkUserReviewInfoService.selectByPage(vo); + return R.ok(list); + } + + /** + * 修改店员资料审核 + */ + @Log(title = "店员资料审核", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update") + public R update(@Validated @RequestBody PlayClerkUserReviewStateEditVo vo) { + playClerkUserReviewInfoService.updateDataReviewState(vo); + return R.ok("修改成功"); + } + + /** + * 删除店员资料审核 + */ + @Log(title = "店员资料审核", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkUserReviewInfoService.deletePlayClerkUserReviewInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesDetailsInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesDetailsInfoController.java new file mode 100644 index 0000000..41452ab --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesDetailsInfoController.java @@ -0,0 +1,77 @@ +package com.starry.admin.modules.clerk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 店员工资明细信息Controller + * + * @author admin + * @since 2024-05-31 + */ +@RestController +@RequestMapping("/wages/details") +public class PlayClerkWagesDetailsInfoController { + @Resource + private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService; + + /** + * 查询店员工资明细信息列表 + */ + @GetMapping("/list") + public R list(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + IPage list = playClerkWagesDetailsInfoService.selectPlayClerkWagesDetailsInfoByPage(playClerkWagesDetailsInfo); + return R.ok(list); + } + + /** + * 获取店员工资明细信息详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkWagesDetailsInfoService.selectPlayClerkWagesDetailsInfoById(id)); + } + + /** + * 新增店员工资明细信息 + */ + @Log(title = "店员工资明细信息", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + boolean success = playClerkWagesDetailsInfoService.create(playClerkWagesDetailsInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员工资明细信息 + */ + @Log(title = "店员工资明细信息", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + playClerkWagesDetailsInfo.setId(id); + boolean success = playClerkWagesDetailsInfoService.update(playClerkWagesDetailsInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员工资明细信息 + */ + @Log(title = "店员工资明细信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkWagesDetailsInfoService.deletePlayClerkWagesDetailsInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesInfoController.java new file mode 100644 index 0000000..44e9c8b --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayClerkWagesInfoController.java @@ -0,0 +1,107 @@ +package com.starry.admin.modules.clerk.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoQueryVo; +import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.weichat.entity.wages.ClerkWagesDetailsReturnVo; +import com.starry.common.result.R; +import com.starry.common.utils.ConvertUtil; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 店员工资结算信息Controller + * + * @author admin + * @since 2024-05-31 + */ +@RestController +@RequestMapping("/clerk/wages") +public class PlayClerkWagesInfoController { + @Resource + private IPlayClerkWagesInfoService playClerkWagesInfoService; + + @Resource + private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService; + + @Resource + private IPlayClerkUserInfoService playClerkUserInfoService; + + /** + * 查询店员工资结算信息列表 + */ + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayClerkWagesInfoQueryVo vo) { + return R.ok(playClerkWagesInfoService.selectHistoricalByPage(vo)); + } + + /** + * 查询店员工未结算工资 + */ + @PostMapping("/listUnsettledWagesByPage") + public R list(@Validated @RequestBody PlayClerkUnsettledWagesInfoQueryVo vo) { + IPage page = playClerkUserInfoService.listUnsettledWagesByPage(vo); + for (PlayClerkUnsettledWagesInfoReturnVo record : page.getRecords()) { + Integer orderState1Number = 0; + BigDecimal orderState1Money = BigDecimal.ZERO; + Integer orderState2Number = 0; + BigDecimal orderState2Money = BigDecimal.ZERO; + BigDecimal orderState2Revenue = BigDecimal.ZERO; + Integer orderState3Number = 0; + BigDecimal orderState3Money = BigDecimal.ZERO; + BigDecimal orderState3Revenue = BigDecimal.ZERO; + for (PlayOrderInfoEntity orderInfoEntity : record.getOrderInfoEntities()) { + if ("1".equals(orderInfoEntity.getOrderStatus())) { + orderState1Number++; + orderState1Money = orderState1Money.add(orderInfoEntity.getFinalAmount()); + } else if ("2".equals(orderInfoEntity.getOrderStatus())) { + orderState2Number++; + orderState2Money = orderState2Money.add(orderInfoEntity.getFinalAmount()); + orderState2Revenue = orderState2Revenue.add(orderInfoEntity.getEstimatedRevenue()); + } else if ("3".equals(orderInfoEntity.getOrderStatus())) { + orderState3Number++; + orderState3Money = orderState3Money.add(orderInfoEntity.getFinalAmount()); + orderState3Revenue = orderState3Revenue.add(orderInfoEntity.getEstimatedRevenue()); + } + } + record.setOrderState1Number(orderState1Number); + record.setOrderState1Money(orderState1Money); + record.setOrderState2Number(orderState2Number); + record.setOrderState2Money(orderState2Money); + record.setOrderState2Revenue(orderState2Revenue); + record.setOrderState3Number(orderState3Number); + record.setOrderState3Money(orderState3Money); + record.setOrderState3Revenue(orderState3Revenue); + } + return R.ok(page); + } + + + @GetMapping("queryWagesDetailsById") + public R clerkQueryWagesDetails(@RequestParam("id") String id) { + if (StrUtil.isBlankIfStr(id)) { + throw new CustomException("ID不能为空"); + } + List list = playClerkWagesDetailsInfoService.selectByWagesId(id); + List returnVos = new ArrayList<>(list.size()); + for (PlayClerkWagesDetailsInfoEntity entity : list) { + returnVos.add(ConvertUtil.entityToVo(entity, ClerkWagesDetailsReturnVo.class)); + } + return R.ok(returnVos); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayCustomArticleInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayCustomArticleInfoController.java similarity index 92% rename from play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayCustomArticleInfoController.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayCustomArticleInfoController.java index 8f09cd1..469df5d 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/controller/PlayCustomArticleInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/controller/PlayCustomArticleInfoController.java @@ -1,8 +1,8 @@ -package com.starry.admin.modules.article.controller; +package com.starry.admin.modules.clerk.controller; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; -import com.starry.admin.modules.article.service.IPlayCustomArticleInfoService; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayCustomArticleInfoService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayClerkArticleInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkArticleInfoMapper.java similarity index 64% rename from play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayClerkArticleInfoMapper.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkArticleInfoMapper.java index 6c47a35..fdd01e6 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayClerkArticleInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkArticleInfoMapper.java @@ -1,8 +1,8 @@ -package com.starry.admin.modules.article.mapper; +package com.starry.admin.modules.clerk.mapper; import com.github.yulichang.base.MPJBaseMapper; -import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity; /** * 店员动态信息Mapper接口 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkDataReviewInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkDataReviewInfoMapper.java index 8215950..cc132d4 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkDataReviewInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkDataReviewInfoMapper.java @@ -1,16 +1,16 @@ package com.starry.admin.modules.clerk.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; /** * 店员资料审核Mapper接口 * * @author admin - * @since 2024-04-11 + * @since 2024-05-19 */ -public interface PlayClerkDataReviewInfoMapper extends BaseMapper { +public interface PlayClerkDataReviewInfoMapper extends MPJBaseMapper { } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java new file mode 100644 index 0000000..39dceef --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; + +/** + * 店员分组信息Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkGroupInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupUserInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupUserInfoMapper.java new file mode 100644 index 0000000..debb054 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkGroupUserInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity; + +/** + * 店员和分组关系Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkGroupUserInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkRankingInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkRankingInfoMapper.java new file mode 100644 index 0000000..6ceb053 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkRankingInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; + +/** + * 店员排行Mapper接口 + * + * @author admin + * @since 2024-05-25 + */ +public interface PlayClerkRankingInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeInfoMapper.java new file mode 100644 index 0000000..fef83fe --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity; + +/** + * 店员分类信息Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkTypeInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeUserInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeUserInfoMapper.java new file mode 100644 index 0000000..e4901a8 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkTypeUserInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeUserInfoEntity; + +/** + * 店员和分类关系Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkTypeUserInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkUserReviewInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkUserReviewInfoMapper.java new file mode 100644 index 0000000..1d636e8 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkUserReviewInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity; + +/** + * 店员资料审核Mapper接口 + * + * @author admin + * @since 2024-05-19 + */ +public interface PlayClerkUserReviewInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesDetailsInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesDetailsInfoMapper.java new file mode 100644 index 0000000..5b2028d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesDetailsInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; + +/** + * 店员工资明细信息Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkWagesDetailsInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesInfoMapper.java new file mode 100644 index 0000000..fa1ce81 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayClerkWagesInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.clerk.mapper; + + +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; + +/** + * 店员工资结算信息Mapper接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface PlayClerkWagesInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayCustomArticleInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayCustomArticleInfoMapper.java similarity index 65% rename from play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayCustomArticleInfoMapper.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayCustomArticleInfoMapper.java index e74b5a4..88064f7 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/mapper/PlayCustomArticleInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/mapper/PlayCustomArticleInfoMapper.java @@ -1,8 +1,8 @@ -package com.starry.admin.modules.article.mapper; +package com.starry.admin.modules.clerk.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; /** * 陪聊点赞动态信息Mapper接口 diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayClerkArticleInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkArticleInfoEntity.java similarity index 55% rename from play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayClerkArticleInfoEntity.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkArticleInfoEntity.java index 11aff81..c1b0586 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayClerkArticleInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkArticleInfoEntity.java @@ -1,11 +1,14 @@ -package com.starry.admin.modules.article.module.entity; +package com.starry.admin.modules.clerk.module.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.admin.common.conf.StringTypeHandler; import com.starry.common.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import java.time.LocalDateTime; +import java.util.List; /** * 店员动态信息对象 play_clerk_article_info @@ -15,7 +18,7 @@ import java.util.Date; */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("play_clerk_article_info") +@TableName(value = "play_clerk_article_info", autoResultMap = true) public class PlayClerkArticleInfoEntity extends BaseEntity { @@ -32,32 +35,30 @@ public class PlayClerkArticleInfoEntity extends BaseEntity annexCon; + + /** * 发布时间 */ - private Date releaseTime; - - /** - * 点赞人数 - */ - private Long agreedQuantity; + private LocalDateTime releaseTime; /** * 审核状态(0:未审核:1:审核通过,2:审核不通过) @@ -65,9 +66,14 @@ public class PlayClerkArticleInfoEntity extends BaseEntity { @@ -32,55 +35,47 @@ public class PlayClerkDataReviewInfoEntity extends BaseEntity dataContent; /** - * 审核状态 - * 0:未审核 - * 1:审核通过 - * 2:审核未通过 + * 审核状态(0:未审核:1:审核通过,2:审核不通过) */ - private String state; + private String reviewState; /** * 资料添加时间 */ - private Date addTime; + private LocalDateTime addTime; /** * 审核时间 */ - private Date reviewTime; + private LocalDateTime reviewTime; /** * 审核人 */ private String reviewBy; + /** + * 审核内容 + */ + private String reviewCon; + /** * 备注 */ private String remark; - } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoQueryVo.java index b9308a2..7cc22d9 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkDataReviewInfoQueryVo.java @@ -7,7 +7,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; /** - * 店员资料审核对象 play_clerk_data_review_info + * 店员申请对象 play_clerk_data_review_info * * @author admin * @since 2024-04-11 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java new file mode 100644 index 0000000..c68acb4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupInfoEntity.java @@ -0,0 +1,41 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员分组信息对象 play_clerk_group_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_group_info") +public class PlayClerkGroupInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 排序 + */ + private Long sort; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupUserInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupUserInfoEntity.java new file mode 100644 index 0000000..7c40a06 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkGroupUserInfoEntity.java @@ -0,0 +1,51 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员和分组关系对象 play_clerk_group_user_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_group_user_info") +public class PlayClerkGroupUserInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 分组ID + */ + private String groupId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 排序 + */ + private Integer sort; + + /** + * 创建人的id + */ + private String createdBy; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java new file mode 100644 index 0000000..22e51fb --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkRankingInfoEntity.java @@ -0,0 +1,90 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 店员排行对象 play_clerk_ranking_info + * + * @author admin + * @since 2024-05-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_ranking_info") +public class PlayClerkRankingInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 统计批次 + */ + private Integer serialNumber; + + /** + * 排序名词 + */ + private Integer rankingIndex; + + /** + * 开始统计时间 + */ + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + private LocalDate endCountDate; + + /** + * 订单总数 + */ + private Integer orderNumber; + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 续单数 + */ + private Integer orderContinueNumber; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney; + + /** + * 超时未接单数量 + */ + private Integer ordersExpiredNumber = 0; + + + /** + * 距离前一名相差金额 + */ + private BigDecimal previousMoney; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeInfoEntity.java new file mode 100644 index 0000000..e8365f9 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeInfoEntity.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员分类信息对象 play_clerk_type_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_type_info") +public class PlayClerkTypeInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 分类名称 + */ + private String typeName; + + /** + * 是否在首页显示(0:不显示,1:显示) + */ + private String homeDisplayed; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeUserInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeUserInfoEntity.java new file mode 100644 index 0000000..e4db33e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkTypeUserInfoEntity.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员和分类关系对象 play_clerk_type_user_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_type_user_info") +public class PlayClerkTypeUserInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 分组ID + */ + private String typeId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 排序 + */ + private Integer sort; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoEntity.java index 158726b..e131832 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoEntity.java @@ -58,12 +58,21 @@ public class PlayClerkUserInfoEntity extends BaseEntity */ private String nickname; + /** + * 是否固定等级(0:固定等级,1:不固定) + */ + private String fixingLevel; + + /** + * 分组ID + */ + private String groupId; + /** * 店员等级 */ private String levelId; - /** * 店员类型 */ @@ -74,6 +83,11 @@ public class PlayClerkUserInfoEntity extends BaseEntity */ private String sex; + /** + * 身份证号码 + */ + private String code; + /** * 头像 */ @@ -171,7 +185,7 @@ public class PlayClerkUserInfoEntity extends BaseEntity private String realState; /** - * 是否必须实名【1:必须实名,0:非必须实名】 + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 */ private String mandatoryRealState; @@ -210,5 +224,11 @@ public class PlayClerkUserInfoEntity extends BaseEntity @JsonIgnore private String token; + public PlayClerkUserInfoEntity() { + } + public PlayClerkUserInfoEntity(String id, BigDecimal accountBalance) { + this.id = id; + this.accountBalance = accountBalance; + } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserQueryVo.java new file mode 100644 index 0000000..d22f3b8 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserQueryVo.java @@ -0,0 +1,133 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 店员对象 play_clerk_user_info + * + * @author admin + * @since 2024-03-30 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkUserQueryVo extends BasePageEntity { + + /** + * UUID + */ + private String id; + + /** + * 昵称 + */ + private String nickname; + + /** + * 电话号码 + */ + private String phone; + + /** + * 分组ID + */ + private String groupId; + + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + + /** + * 是否固定等级(0:固定等级,1:不固定) + */ + private String fixingLevel; + + /** + * 店员等级 + */ + private String levelId; + + /** + * 年龄 + */ + private List ages; + + /** + * 所在国家 + */ + private String country; + + /** + * 所在省份 + */ + private String province; + + /** + * 所在城市 + */ + private String city; + + + /** + * 在职状态(1:在职,0:离职) + */ + private String onboardingState = "1"; + + /** + * 是否推荐状态(1:已推荐,0:未推荐) + */ + private String recommendationState; + + /** + * 是否置顶状态(1:已置顶,0:未置顶) + */ + private String pinToTopState; + + /** + * 在线状态【1:在线,0:离线】 + */ + private String onlineState; + + /** + * 上架状态【1:上架,0:下架】 + */ + private String listingState; + + /** + * 显示状态【1:显示,0:隐藏】 + */ + private String displayState; + + /** + * 实名状态【1:已实名,0:未实名】 + */ + private String realState; + + /** + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 + */ + private String mandatoryRealState; + + /** + * 随机接单状态【1:允许,0:禁止】 + */ + private String randomOrderState; + + /** + * 店员状态(0:不是陪聊,1:陪聊,2:资料审核中) + */ + private String clerkState = "1"; + + /** + * 身份证号 + */ + private String code; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReturnVo.java new file mode 100644 index 0000000..4a1ccd0 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReturnVo.java @@ -0,0 +1,156 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 店员分页查询对象 + * + * @author admin + * @since 2024-03-30 + */ +@Data +public class PlayClerkUserReturnVo { + + + /** + * UUID + */ + private String id; + + /** + * 店员昵称 + */ + private String nickname; + + /** + * 店员等级 + */ + private String levelId; + + /** + * 店员等级 + */ + private String levelName; + + + /** + * 分组ID + */ + private String groupId; + + + /** + * 分组ID + */ + private String groupName; + + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + /** + * 头像 + */ + private String avatar; + + /** + * 音频 + */ + private String audio; + + /** + * 星座 + */ + private String constellation; + + /** + * 标签 + */ + private List label = new ArrayList<>(); + + /** + * 相册 + */ + private List album = new ArrayList<>(); + + /** + * 个性签名 + */ + private String signature; + + /** + * 年龄 + */ + private Integer age; + + /** + * 所在省份 + */ + private String province; + + /** + * 所在城市 + */ + private String city; + + /** + * 在线状态【1:在线,0:离线】 + */ + private String onlineState; + + /** + * 上架状态【1:上架,0:下架】 + */ + private String listingState; + + /** + * 实名状态【1:已实名,0:未实名】 + */ + private String realState; + + /** + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 + */ + private String mandatoryRealState; + + /** + * 随机接单状态【1:允许,0:禁止】 + */ + private String randomOrderState; + + /** + * 地址 + */ + private String address; + + /** + * 订单列表 + */ + @JsonIgnore + private List orderInfos; + + /** + * 订单总数 + */ + private String orderNumber; + + /** + * 续单总数 + */ + private String orderContinueNumber; + + /** + * 订单总金额 + */ + private BigDecimal orderTotalAmount; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReviewInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReviewInfoEntity.java new file mode 100644 index 0000000..4b50247 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserReviewInfoEntity.java @@ -0,0 +1,119 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.admin.common.conf.StringTypeHandler; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 店员申请对象 play_clerk_user_review_info + * + * @author admin + * @since 2024-05-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName(value = "play_clerk_user_review_info", autoResultMap = true) +public class PlayClerkUserReviewInfoEntity extends BaseEntity { + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 微信号码 + */ + private String weiChatCode; + + /** + * 手机号码 + */ + private String phone; + + /** + * 昵称 + */ + private String nickname; + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + /** + * 年龄 + */ + private Integer age; + + /** + * 所在省份 + */ + private String province; + + /** + * 所在城市 + */ + private String city; + + /** + * 备注(相关经验) + */ + private String remark; + + /** + * 音频 + */ + private String audio; + + /** + * 照片 + */ + @TableField(typeHandler = StringTypeHandler.class) + private List album; + + /** + * 申请时间 + */ + private LocalDateTime addTime; + + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime; + + /** + * 审核人 + */ + private String reviewBy; + + /** + * 审核内容 + */ + private String reviewCon; + + + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesDetailsInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesDetailsInfoEntity.java new file mode 100644 index 0000000..f8a5d2b --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesDetailsInfoEntity.java @@ -0,0 +1,69 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 店员工资明细信息对象 play_clerk_wages_details_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_wages_details_info") +public class PlayClerkWagesDetailsInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 工资统计ID + */ + private String wagesId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 订单ID + */ + private String orderId; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 店员收入 + */ + private BigDecimal estimatedRevenue; + + /** + * 订单完成时间 + */ + private LocalDateTime endOrderTime; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesInfoEntity.java new file mode 100644 index 0000000..0f2955b --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkWagesInfoEntity.java @@ -0,0 +1,114 @@ +package com.starry.admin.modules.clerk.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * 店员工资结算信息对象 play_clerk_wages_info + * + * @author admin + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_wages_info") +public class PlayClerkWagesInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + + /** + * 是否为往期统计(1:是;0:不是) + **/ + private String historicalStatistics; + + /** + * 统计序号 + */ + private Long serialNumber; + + /** + * 排行序号 + */ + private Long rankingIndex; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate endCountDate; + + + /** + * 结算时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate settlementDate; + + /** + * 订单总数 + */ + private Integer orderNumber; + + /** + * 订单金额 + */ + private BigDecimal finalAmount; + + /** + * 续单数 + */ + private Integer orderContinueNumber; + + /** + * 续单比例 + */ + private double orderContinueProportion = 0.0; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney; + + /** + * 超时未接单数 + */ + private Integer ordersExpiredNumber; + + /** + * 店员收入 + */ + private BigDecimal estimatedRevenue; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayCustomArticleInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayCustomArticleInfoEntity.java similarity index 71% rename from play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayCustomArticleInfoEntity.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayCustomArticleInfoEntity.java index af0d4fb..e57761e 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/module/entity/PlayCustomArticleInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayCustomArticleInfoEntity.java @@ -1,11 +1,11 @@ -package com.starry.admin.modules.article.module.entity; +package com.starry.admin.modules.clerk.module.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.starry.common.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import java.time.LocalDateTime; /** * 陪聊点赞动态信息对象 play_custom_article_info @@ -47,7 +47,18 @@ public class PlayCustomArticleInfoEntity extends BaseEntity releaseTime; + + + /** + * 顾客ID + */ + private String customId; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReturnVo.java new file mode 100644 index 0000000..f838904 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReturnVo.java @@ -0,0 +1,82 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author admin + * 动态信息查询返回对象 + */ +@Data +public class PlayClerkArticleReturnVo { + + /** + * UUID + */ + private String id; + /** + * 陪聊用户ID + */ + private String clerkId; + + /** + * 陪聊用户昵称 + */ + private String clerkNickname; + + /** + * 陪聊用户头像 + */ + private String clerkAvatar; + + /** + * 动态内容 + */ + private String articleCon; + + + /** + * 动态附件类型(0:图片;1:视频;2:音频) + */ + private String annexType; + + /** + * 动态附件内容 + */ + private List annexCon; + + + /** + * 发布时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime releaseTime; + + /** + * 备注(审核理由) + */ + private String reviewCon; + + /** + * 点赞人数 + */ + private Integer agreedQuantity = 0; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 陪聊点赞动态 + */ + @JsonIgnore + private List articleInfoEntities; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReviewStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReviewStateEditVo.java new file mode 100644 index 0000000..610d90e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkArticleReviewStateEditVo.java @@ -0,0 +1,36 @@ +package com.starry.admin.modules.clerk.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import java.time.LocalDateTime; + +/** + * @author admin + * 动态审核 + */ +@Data +public class PlayClerkArticleReviewStateEditVo { + + + @NotBlank(message = "ID不能为空") + private String id; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + @NotBlank(message = "审核状态不能为空") + @Pattern(regexp = "[12]", message = "审核状态必须为1或2") + private String reviewState; + + /** + * 发布时间 + */ + private String remark; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime = LocalDateTime.now(); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkCommodityQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkCommodityQueryVo.java index 3f4d788..57d6de4 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkCommodityQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkCommodityQueryVo.java @@ -20,4 +20,9 @@ public class PlayClerkCommodityQueryVo { * 1:启用 */ private String enablingState; + + public PlayClerkCommodityQueryVo(String commodityType, String enablingState) { + this.commodityType = commodityType; + this.enablingState = enablingState; + } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewQueryVo.java new file mode 100644 index 0000000..9655395 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewQueryVo.java @@ -0,0 +1,38 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 店员资料审核对象 play_clerk_data_review_info + * + * @author admin + * @since 2024-05-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class PlayClerkDataReviewQueryVo extends BasePageEntity { + + /** + * UUID + */ + private String clerkId; + + /** + * 资料类型[0:昵称;1:头像;2:相册;3:录音] + */ + private String dataType; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 资料添加时间 + */ + private List addTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewReturnVo.java new file mode 100644 index 0000000..6f2a4f3 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewReturnVo.java @@ -0,0 +1,80 @@ +package com.starry.admin.modules.clerk.module.vo; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 店员资料审核对象 play_clerk_data_review_info + * + * @author admin + * @since 2024-05-19 + */ +@Data +public class PlayClerkDataReviewReturnVo { + + + /** + * UUID + */ + private String id; + + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + + /** + * 资料类型[0:昵称;1:头像;2:相册;3:录音] + */ + private String dateType; + + /** + * 资料内容 + */ + private List dateContent; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 资料添加时间 + */ + private LocalDateTime addTime; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime; + + /** + * 审核人 + */ + private String reviewBy; + + /** + * 审核内容 + */ + private String reviewCon; + + /** + * 备注 + */ + private String remark; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewStateEditVo.java new file mode 100644 index 0000000..feb6852 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkDataReviewStateEditVo.java @@ -0,0 +1,36 @@ +package com.starry.admin.modules.clerk.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import java.time.LocalDateTime; + +/** + * @author admin + * 动态审核 + */ +@Data +public class PlayClerkDataReviewStateEditVo { + + + @NotBlank(message = "ID不能为空") + private String id; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + @NotBlank(message = "审核状态不能为空") + @Pattern(regexp = "[12]", message = "审核状态必须为1或2") + private String reviewState; + + /** + * 审核内容 + */ + private String reviewCon; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime = LocalDateTime.now(); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkTypeInfoAddVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkTypeInfoAddVo.java new file mode 100644 index 0000000..5965be6 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkTypeInfoAddVo.java @@ -0,0 +1,33 @@ +package com.starry.admin.modules.clerk.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author admin + * @since 2024/6/2 下午5:59 + **/ +@Data +public class PlayClerkTypeInfoAddVo { + + + /** + * 分类名称 + */ + @NotNull(message = "分类名称不能为空") + private String typeName; + + /** + * 是否在首页显示(0:不显示,1:显示) + */ + @NotNull(message = "是否在首页显示不能为空") + private String homeDisplayed; + + /** + * 排序 + */ + @NotNull(message = "排序不能为空") + private Integer sort; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoQueryVo.java new file mode 100644 index 0000000..4eb06c2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoQueryVo.java @@ -0,0 +1,25 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author admin + * @since 2024/6/3 下午10:08 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkUnsettledWagesInfoQueryVo extends BasePageEntity { + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员上架状态 + */ + private String listingState; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoReturnVo.java new file mode 100644 index 0000000..23b6532 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUnsettledWagesInfoReturnVo.java @@ -0,0 +1,74 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author admin + * @since 2024/6/3 下午10:08 + **/ +@Data +public class PlayClerkUnsettledWagesInfoReturnVo { + + private String clerkId; + + + private String clerkNickname; + + @JsonIgnore + private List orderInfoEntities; + + + /** + * 待开始订单-数量 + */ + private Integer orderState1Number; + + + /** + * 待开始订单-金额 + */ + private BigDecimal orderState1Money; + + + /** + * 服务中订单-数量 + */ + private Integer orderState2Number; + + + /** + * 服务中订单-金额 + */ + private BigDecimal orderState2Money; + + + + /** + * 服务中订单-店员收入 + */ + private BigDecimal orderState2Revenue; + + + + /** + * 已完成未结算订单-数量 + */ + private Integer orderState3Number; + + + /** + * 已完成未结算订单-金额 + */ + private BigDecimal orderState3Money; + + /** + * 已完成未结算订单-店员收入 + */ + private BigDecimal orderState3Revenue; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddToWxVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddToWxVo.java index 12a66eb..1e60188 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddToWxVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddToWxVo.java @@ -20,7 +20,7 @@ public class PlayClerkUserAddToWxVo { /** - * 店员性别(1:男:0:女) + * 性别[0:未知;1:男;2:女] */ @NotNull(message = "性别不能为空") private Integer sex; diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddVo.java index 65d09c6..aba162f 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserAddVo.java @@ -36,7 +36,7 @@ public class PlayClerkUserAddVo { private String levelId; /** - * 店员性别(1:男:0:女) + * 性别[0:未知;1:男;2:女] */ @NotNull(message = "性别不能为空") private Integer sex; diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserEditVo.java index 5c7e80e..c325653 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserEditVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserEditVo.java @@ -42,7 +42,7 @@ public class PlayClerkUserEditVo { private String levelId; /** - * 店员性别(1:男:0:女) + * 性别[0:未知;1:男;2:女] */ @NotNull(message = "性别不能为空") private String sex; diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewQueryVo.java new file mode 100644 index 0000000..76817c1 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewQueryVo.java @@ -0,0 +1,57 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 店员申请审核 + * + * @author admin + * @since 2024/5/19 下午4:21 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkUserReviewQueryVo extends BasePageEntity { + + /** + * 店员ID + */ + private String clerkId; + + + /** + * 店员昵称 + */ + private String nickname; + + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + + /** + * 手机号码 + */ + private String phone; + + + /** + * 微信号 + */ + private String weiChatCode; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 申请时间 + */ + private List addTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewReturnVo.java new file mode 100644 index 0000000..d73b6cd --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewReturnVo.java @@ -0,0 +1,118 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.starry.admin.common.conf.StringTypeHandler; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * 店员申请审核 + * + * @author admin + * @since 2024/5/19 下午4:21 + **/ +@Data +public class PlayClerkUserReviewReturnVo { + + private String id; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 微信号码 + */ + private String weiChatCode; + + /** + * 手机号码 + */ + private String phone; + + /** + * 昵称 + */ + private String nickname; + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + /** + * 年龄 + */ + private Integer age; + + /** + * 所在省份 + */ + private String province; + + /** + * 所在城市 + */ + private String city; + + /** + * 备注(相关经验) + */ + private String remark; + + /** + * 音频 + */ + private String audio; + + /** + * 照片 + */ + @TableField(typeHandler = StringTypeHandler.class) + private List album = new ArrayList<>(); + + /** + * 申请时间 + */ + private LocalDateTime addTime; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime; + + /** + * 审核人 + */ + private String reviewBy; + + /** + * 审核内容 + */ + private String reviewCon; + + /** + * 个性签名 + */ + private String signature; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewStateEditVo.java new file mode 100644 index 0000000..4b46f6a --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserReviewStateEditVo.java @@ -0,0 +1,36 @@ +package com.starry.admin.modules.clerk.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import java.time.LocalDateTime; + +/** + * @author admin + * 动态审核 + */ +@Data +public class PlayClerkUserReviewStateEditVo { + + + @NotBlank(message = "ID不能为空") + private String id; + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + @NotBlank(message = "审核状态不能为空") + @Pattern(regexp = "[12]", message = "审核状态必须为1或2") + private String reviewState; + + /** + * 发布时间 + */ + private String reviewCon; + + /** + * 审核时间 + */ + private LocalDateTime reviewTime = LocalDateTime.now(); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserStateEditVo.java index aca2b68..cb04d8e 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserStateEditVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkUserStateEditVo.java @@ -48,7 +48,7 @@ public class PlayClerkUserStateEditVo { private String realState; /** - * 是否必须实名【1:必须实名,0:非必须实名】 + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 */ private String mandatoryRealState; @@ -57,5 +57,15 @@ public class PlayClerkUserStateEditVo { */ private String randomOrderState; + /** + * 是否固定等级(0:固定等级,1:不固定) + */ + private String fixingLevel; + + + /** + * 在职状态(1:在职,0:离职) + */ + private String onboardingState = "1"; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoQueryVo.java new file mode 100644 index 0000000..0a5607c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoQueryVo.java @@ -0,0 +1,33 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author admin + * @since 2024/6/3 下午10:08 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkWagesInfoQueryVo extends BasePageEntity { + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员分组 + */ + private String groupId; + /** + * 店员上架状态 + */ + private String listingState; + + /** + * 统计时间 + */ + private String settlementDate; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoReturnVo.java new file mode 100644 index 0000000..6510e91 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/module/vo/PlayClerkWagesInfoReturnVo.java @@ -0,0 +1,108 @@ +package com.starry.admin.modules.clerk.module.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * @author admin + * @since 2024/6/3 下午10:08 + **/ +@Data +public class PlayClerkWagesInfoReturnVo { + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + + /** + * 店员昵称 + */ + private String clerkNickname; + + + /** + * 是否为往期统计(1:是;0:不是) + **/ + private String historicalStatistics; + + /** + * 统计序号 + */ + private Long serialNumber; + + /** + * 排行序号 + */ + private Long rankingIndex; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate endCountDate; + + + /** + * 结算时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDateTime settlementDate; + + /** + * 订单总数 + */ + private Integer orderNumber; + + /** + * 订单金额 + */ + private BigDecimal finalAmount; + + /** + * 续单数 + */ + private Integer orderContinueNumber; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney; + + /** + * 超时未接单数 + */ + private Integer ordersExpiredNumber; + + + /** + * 店员收入 + */ + private BigDecimal estimatedRevenue = BigDecimal.ZERO; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayClerkArticleInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkArticleInfoService.java similarity index 63% rename from play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayClerkArticleInfoService.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkArticleInfoService.java index 1b68aa3..ecba840 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayClerkArticleInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkArticleInfoService.java @@ -1,10 +1,12 @@ -package com.starry.admin.modules.article.service; +package com.starry.admin.modules.clerk.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import com.starry.admin.modules.article.module.entity.PlayClerkArticleInfoEntity; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleQueryVo; -import com.starry.admin.modules.article.module.vo.PlayClerkArticleReturnVo; +import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReturnVo; +import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomQueryVo; +import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomReturnVo; /** @@ -29,7 +31,18 @@ public interface IPlayClerkArticleInfoService extends IService selectPlayClerkArticleInfoByPage(PlayClerkArticleQueryVo vo); + IPage selectByPage(PlayClerkArticleQueryVo vo); + + + /** + * 顾客查询动态列表 + * + * @param customId 顾客ID + * @param customId 动态查询对象 + * @return PlayClerkArticleCustomReturnVo + */ + IPage customSelectByPage(PlayClerkArticleCustomQueryVo vo, String customId); + /** * 新增店员动态信息 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkCommodityService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkCommodityService.java index 14471a3..4d44f75 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkCommodityService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkCommodityService.java @@ -27,17 +27,19 @@ public interface IPlayClerkCommodityService extends IService getClerkCommodityList(String userId); + List getClerkCommodityList(String userId,String enablingState); /** - * 根据用户ID,查询当前用户的服务项目类型 + * 根据用户ID,查询当前店员所有服务项目 * * @param userId 用户ID + * @param enablingState 服务启动状态[0:停用;1:启用] * @return List */ - List selectCommodityTypeByUser(String userId); + List selectCommodityTypeByUser(String userId, String enablingState); /** * 根据用户ID,查询当前用户的服务项目 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkDataReviewInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkDataReviewInfoService.java index 85149fd..c848f41 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkDataReviewInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkDataReviewInfoService.java @@ -3,7 +3,9 @@ package com.starry.admin.modules.clerk.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkDataReviewInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo; import java.util.List; @@ -11,44 +13,49 @@ import java.util.List; * 店员资料审核Service接口 * * @author admin - * @since 2024-04-11 + * @since 2024-05-19 */ public interface IPlayClerkDataReviewInfoService extends IService { /** * 查询店员资料审核 - * * @param id 店员资料审核主键 * @return 店员资料审核 */ PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id); + List queryByClerkId(String clerkId); + /** - * 查询店员资料审核列表 - * - * @param entity 店员资料审核 - * @return 店员资料审核集合 + * 查询店员资料申请 + * @param clerkId 店员ID + * @param dataType 资料类型[0:昵称;1:头像;2:相册;3:录音] + * @param reviewState 审核状态(0:未审核:1:审核通过,2:审核不通过) + * @return PlayClerkDataReviewInfoEntity */ - List queryList(PlayClerkDataReviewInfoEntity entity); + PlayClerkDataReviewInfoEntity queryByClerkId(String clerkId, String dataType, String reviewState); /** * 查询店员资料审核列表 - * - * @param playClerkDataReviewInfo 店员资料审核 + * @param vo 店员资料审核 * @return 店员资料审核集合 */ - IPage selectPlayClerkDataReviewInfoByPage(PlayClerkDataReviewInfoQueryVo playClerkDataReviewInfo); + IPage selectByPage(PlayClerkDataReviewQueryVo vo); /** * 新增店员资料审核 - * * @param playClerkDataReviewInfo 店员资料审核 * @return 结果 */ boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo); /** - * 修改店员资料审核 + * 修改店员资料审核状态 * + * @param vo PlayClerkDataReviewStateEditVo + */ + void updateDataReviewState(PlayClerkDataReviewStateEditVo vo); + /** + * 修改店员资料审核 * @param playClerkDataReviewInfo 店员资料审核 * @return 结果 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupInfoService.java new file mode 100644 index 0000000..e5457ef --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupInfoService.java @@ -0,0 +1,61 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupInfoEntity; + +/** + * 店员分组信息Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkGroupInfoService extends IService { + /** + * 查询店员分组信息 + * + * @param id 店员分组信息主键 + * @return 店员分组信息 + */ + PlayClerkGroupInfoEntity selectPlayClerkGroupInfoById(String id); + + /** + * 查询店员分组信息列表 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 店员分组信息集合 + */ + IPage selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo); + + /** + * 新增店员分组信息 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 结果 + */ + boolean create(PlayClerkGroupInfoEntity playClerkGroupInfo); + + /** + * 修改店员分组信息 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 结果 + */ + boolean update(PlayClerkGroupInfoEntity playClerkGroupInfo); + + /** + * 批量删除店员分组信息 + * + * @param ids 需要删除的店员分组信息主键集合 + * @return 结果 + */ + int deletePlayClerkGroupInfoByIds(String[] ids); + + /** + * 删除店员分组信息信息 + * + * @param id 店员分组信息主键 + * @return 结果 + */ + int deletePlayClerkGroupInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupUserInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupUserInfoService.java new file mode 100644 index 0000000..24eaaaf --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkGroupUserInfoService.java @@ -0,0 +1,61 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity; + +/** + * 店员和分组关系Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkGroupUserInfoService extends IService { + /** + * 查询店员和分组关系 + * + * @param id 店员和分组关系主键 + * @return 店员和分组关系 + */ + PlayClerkGroupUserInfoEntity selectPlayClerkGroupUserInfoById(String id); + + /** + * 查询店员和分组关系列表 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 店员和分组关系集合 + */ + IPage selectPlayClerkGroupUserInfoByPage(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo); + + /** + * 新增店员和分组关系 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 结果 + */ + boolean create(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo); + + /** + * 修改店员和分组关系 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 结果 + */ + boolean update(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo); + + /** + * 批量删除店员和分组关系 + * + * @param ids 需要删除的店员和分组关系主键集合 + * @return 结果 + */ + int deletePlayClerkGroupUserInfoByIds(String[] ids); + + /** + * 删除店员和分组关系信息 + * + * @param id 店员和分组关系主键 + * @return 结果 + */ + int deletePlayClerkGroupUserInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkRankingInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkRankingInfoService.java new file mode 100644 index 0000000..b818bfb --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkRankingInfoService.java @@ -0,0 +1,109 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; +import com.starry.admin.modules.weichat.entity.order.PlayOrderHistoryRankingReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingReturnVo; + +import java.time.LocalDate; +import java.util.List; + +/** + * 店员排行Service接口 + * + * @author admin + * @since 2024-05-25 + */ +public interface IPlayClerkRankingInfoService extends IService { + /** + * 查询店员排行 + * + * @param id 店员排行主键 + * @return 店员排行 + */ + PlayClerkRankingInfoEntity selectPlayClerkRankingInfoById(String id); + + /** + * 查询店员排行列表 + * + * @param playClerkRankingInfo 店员排行 + * @return 店员排行集合 + */ + IPage selectPlayClerkRankingInfoByPage(PlayClerkRankingInfoEntity playClerkRankingInfo); + + /** + * 获取当前期排名序号 + * + * @return PlayClerkRankingInfoEntity + */ + Integer selectSerialNumber(); + + + /** + * 查询最后一次排行统计列表 + * + * @return 排行信息列表 + */ + List selectMaxSerialNumber(); + + /** + * 根据时间查询店员排行 + * + * @param clerkId 店员ID + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 店员排行集合 + */ + PlayClerkRankingInfoEntity selectByTime(String clerkId, LocalDate startTime, LocalDate endTime); + + + /** + * 店员分页查询本期排行信息 + * + * @param clerkId 店员ID + * @return 店员排行集合 + */ + PlayOrderRankingReturnVo selectCurrentRanking(String clerkId); + + /** + * 店员分页查询本期历史排行 + * + * @param clerkId 店员ID + * @return 店员排行集合 + */ + List selectHistoryRanking(String clerkId); + + + /** + * 新增店员排行 + * + * @param playClerkRankingInfo 店员排行 + * @return 结果 + */ + boolean create(PlayClerkRankingInfoEntity playClerkRankingInfo); + + /** + * 修改店员排行 + * + * @param playClerkRankingInfo 店员排行 + * @return 结果 + */ + boolean update(PlayClerkRankingInfoEntity playClerkRankingInfo); + + /** + * 批量删除店员排行 + * + * @param ids 需要删除的店员排行主键集合 + * @return 结果 + */ + int deletePlayClerkRankingInfoByIds(String[] ids); + + /** + * 删除店员排行信息 + * + * @param id 店员排行主键 + * @return 结果 + */ + int deletePlayClerkRankingInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeInfoService.java new file mode 100644 index 0000000..6c9b1da --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeInfoService.java @@ -0,0 +1,71 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity; + +import java.util.List; + +/** + * 店员分类信息Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkTypeInfoService extends IService { + /** + * 查询店员分类信息 + * + * @param id 店员分类信息主键 + * @return 店员分类信息 + */ + PlayClerkTypeInfoEntity selectPlayClerkTypeInfoById(String id); + + /** + * 查询店员分类信息列表 + * + * @return 店员分类信息集合 + */ + List selectByAll(); + + + /** + * 查询店员分类信息列表 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 店员分类信息集合 + */ + IPage selectPlayClerkTypeInfoByPage(PlayClerkTypeInfoEntity playClerkTypeInfo); + + /** + * 新增店员分类信息 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 结果 + */ + boolean create(PlayClerkTypeInfoEntity playClerkTypeInfo); + + /** + * 修改店员分类信息 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 结果 + */ + boolean update(PlayClerkTypeInfoEntity playClerkTypeInfo); + + /** + * 批量删除店员分类信息 + * + * @param ids 需要删除的店员分类信息主键集合 + * @return 结果 + */ + int deletePlayClerkTypeInfoByIds(String[] ids); + + /** + * 删除店员分类信息信息 + * + * @param id 店员分类信息主键 + * @return 结果 + */ + int deletePlayClerkTypeInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeUserInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeUserInfoService.java new file mode 100644 index 0000000..a581584 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkTypeUserInfoService.java @@ -0,0 +1,61 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeUserInfoEntity; + +/** + * 店员和分类关系Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkTypeUserInfoService extends IService { + /** + * 查询店员和分类关系 + * + * @param id 店员和分类关系主键 + * @return 店员和分类关系 + */ + PlayClerkTypeUserInfoEntity selectPlayClerkTypeUserInfoById(String id); + + /** + * 查询店员和分类关系列表 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 店员和分类关系集合 + */ + IPage selectPlayClerkTypeUserInfoByPage(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo); + + /** + * 新增店员和分类关系 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 结果 + */ + boolean create(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo); + + /** + * 修改店员和分类关系 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 结果 + */ + boolean update(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo); + + /** + * 批量删除店员和分类关系 + * + * @param ids 需要删除的店员和分类关系主键集合 + * @return 结果 + */ + int deletePlayClerkTypeUserInfoByIds(String[] ids); + + /** + * 删除店员和分类关系信息 + * + * @param id 店员和分类关系主键 + * @return 结果 + */ + int deletePlayClerkTypeUserInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java index 85b5dda..ace9b0f 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserInfoService.java @@ -2,12 +2,18 @@ package com.starry.admin.modules.clerk.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoQueryVo; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserQueryVo; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoReturnVo; import com.starry.admin.modules.weichat.entity.PlayClerkUserLoginResponseVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo; import java.math.BigDecimal; +import java.util.List; /** @@ -18,6 +24,17 @@ import java.math.BigDecimal; */ public interface IPlayClerkUserInfoService extends IService { + + /** + * 获取当前店员抽成信息 + * + * @param clerkId 店员ID + * @return com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity + * @author 杭州世平信息科技有限公司-xuhq + * @since 2024/6/3 11:29 + **/ + PlayClerkLevelInfoEntity queryLevelCommission(String clerkId); + /** * 根据账户ID查询店员 * @@ -71,6 +88,43 @@ public interface IPlayClerkUserInfoService extends IService listAll(); + + /** + * 查询店员未结算订单 + * + * @param vo 未结算订单查询对象 + * @return 未结算订单 + */ + IPage listUnsettledWagesByPage(PlayClerkUnsettledWagesInfoQueryVo vo); + + /** + * 管理端分页查询店员信息 + * + * @param vo 店员查询实体 + * @return 店员列表 + */ + + IPage selectByPage(PlayClerkUserQueryVo vo); /** * 查询店员列表 @@ -79,7 +133,7 @@ public interface IPlayClerkUserInfoService extends IService selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId); + IPage selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId); /** * 查询店员列表 @@ -87,7 +141,7 @@ public interface IPlayClerkUserInfoService extends IService selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo); + IPage selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo); /** * 新增店员 diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserReviewInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserReviewInfoService.java new file mode 100644 index 0000000..4cf815b --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkUserReviewInfoService.java @@ -0,0 +1,84 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewReturnVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewStateEditVo; + +/** + * 店员资料审核Service接口 + * + * @author admin + * @since 2024-05-19 + */ +public interface IPlayClerkUserReviewInfoService extends IService { + /** + * 查询店员资料审核 + * + * @param id 店员资料审核主键 + * @return 店员资料审核 + */ + PlayClerkUserReviewInfoEntity selectPlayClerkUserReviewInfoById(String id); + + + /** + * 根据店员ID,查询未审核的申请 + * + * @param clerkId 店员ID + * @param reviewState 审核状态(0:未审核:1:审核通过,2:审核不通过) + * @return 店员申请审核对象 + */ + PlayClerkUserReviewInfoEntity queryByClerkId(String clerkId, String reviewState); + + + /** + * 分页查询店员申请 + * + * @param vo 店员申请对象 + * @return 店员申请对象 + */ + IPage selectByPage(PlayClerkUserReviewQueryVo vo); + + /** + * 查询店员资料审核列表 + * + * @param playClerkUserReviewInfo 店员资料审核 + * @return 店员资料审核集合 + */ + IPage selectPlayClerkUserReviewInfoByPage(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo); + + /** + * 新增店员资料审核 + * + * @param playClerkUserReviewInfo 店员资料审核 + * @return 结果 + */ + boolean create(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo); + + boolean update(PlayClerkUserReviewInfoEntity entity); + + /** + * 修改店员资料审核 + * + * @param vo 店员资料审核对象 + */ + void updateDataReviewState(PlayClerkUserReviewStateEditVo vo); + + /** + * 批量删除店员资料审核 + * + * @param ids 需要删除的店员资料审核主键集合 + * @return 结果 + */ + int deletePlayClerkUserReviewInfoByIds(String[] ids); + + /** + * 删除店员资料审核信息 + * + * @param id 店员资料审核主键 + * @return 结果 + */ + int deletePlayClerkUserReviewInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesDetailsInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesDetailsInfoService.java new file mode 100644 index 0000000..5a3334e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesDetailsInfoService.java @@ -0,0 +1,89 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; + +import java.util.List; + +/** + * 店员工资明细信息Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkWagesDetailsInfoService extends IService { + + /** + * 查询店员工资明细信息 + * + * @param wagesId 店员工资统计ID + * @return 店员工资明细信息 + */ + List selectByWagesId(String wagesId); + + + /** + * 根据订单ID + * + * @param orderId 订单ID + * @return 工资详情 + */ + PlayClerkWagesDetailsInfoEntity selectByOrderId(String orderId); + + /** + * 根据工资结算ID和店员ID查询工资详情 + * + * @param wagesId 结算ID + * @param clerkId 店员ID + * @return 工资详情 + */ + PlayClerkWagesDetailsInfoEntity selectByClerkIdAndWagesId(String wagesId, String clerkId); + /** + * 查询店员工资明细信息 + * + * @param id 店员工资明细信息主键 + * @return 店员工资明细信息 + */ + PlayClerkWagesDetailsInfoEntity selectPlayClerkWagesDetailsInfoById(String id); + + /** + * 查询店员工资明细信息列表 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 店员工资明细信息集合 + */ + IPage selectPlayClerkWagesDetailsInfoByPage(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo); + + /** + * 新增店员工资明细信息 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 结果 + */ + boolean create(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo); + + /** + * 修改店员工资明细信息 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 结果 + */ + boolean update(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo); + + /** + * 批量删除店员工资明细信息 + * + * @param ids 需要删除的店员工资明细信息主键集合 + * @return 结果 + */ + int deletePlayClerkWagesDetailsInfoByIds(String[] ids); + + /** + * 删除店员工资明细信息信息 + * + * @param id 店员工资明细信息主键 + * @return 结果 + */ + int deletePlayClerkWagesDetailsInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesInfoService.java new file mode 100644 index 0000000..b3c50b4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayClerkWagesInfoService.java @@ -0,0 +1,111 @@ +package com.starry.admin.modules.clerk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoReturnVo; + +import java.time.LocalDate; +import java.util.List; + +/** + * 店员工资结算信息Service接口 + * + * @author admin + * @since 2024-05-31 + */ +public interface IPlayClerkWagesInfoService extends IService { + + /** + * 根据店员ID查询店员工资结算信息 + * + * @param clerkId 店员ID + * @return 店员工资结算信息 + */ + PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId); + + /** + * 根据店员ID查询店员往期工资 + * + * @param clerkId 店员ID + * @return 店员工资结算信息 + */ + List selectHistoricalWagesByClerkId(String clerkId); + + + /** + * 获取最后一次统计 + * + * @param clerkId 店员ID + * @return 上次结算时间 + */ + PlayClerkWagesInfoEntity getLastSettlement(String clerkId); + + /** + * 获取最后一次统计 + * + * @param clerkId 店员ID + * @return 上次结算时间 + */ + LocalDate getLastSettlementTime(String clerkId); + + + /** + * 查询店员工资结算信息 + * + * @param id 店员工资结算信息主键 + * @return 店员工资结算信息 + */ + PlayClerkWagesInfoEntity selectPlayClerkWagesInfoById(String id); + + /** + * 分页查询工资统计信息 + * + * @param vo 统计统计查询对象 + * @return 查询工资统计信息 + */ + IPage selectHistoricalByPage(PlayClerkWagesInfoQueryVo vo); + + + + /** + * 查询店员工资结算信息列表 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 店员工资结算信息集合 + */ + IPage selectPlayClerkWagesInfoByPage(PlayClerkWagesInfoEntity playClerkWagesInfo); + + /** + * 新增店员工资结算信息 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 结果 + */ + boolean create(PlayClerkWagesInfoEntity playClerkWagesInfo); + + /** + * 修改店员工资结算信息 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 结果 + */ + boolean update(PlayClerkWagesInfoEntity playClerkWagesInfo); + + /** + * 批量删除店员工资结算信息 + * + * @param ids 需要删除的店员工资结算信息主键集合 + * @return 结果 + */ + int deletePlayClerkWagesInfoByIds(String[] ids); + + /** + * 删除店员工资结算信息信息 + * + * @param id 店员工资结算信息主键 + * @return 结果 + */ + int deletePlayClerkWagesInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayCustomArticleInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayCustomArticleInfoService.java similarity index 79% rename from play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayCustomArticleInfoService.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayCustomArticleInfoService.java index 662d3f1..3e33ea6 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/service/IPlayCustomArticleInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/IPlayCustomArticleInfoService.java @@ -1,8 +1,8 @@ -package com.starry.admin.modules.article.service; +package com.starry.admin.modules.clerk.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; /** * 陪聊点赞动态信息Service接口 @@ -11,6 +11,17 @@ import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntit * @since 2024-05-04 */ public interface IPlayCustomArticleInfoService extends IService { + + + /** + * 查询顾客操作动态数据 + * @param articleId 动态ID + * @param customId 客户ID + * @param endorseType 操作类型(1:点赞;0:收藏) + * @return PlayCustomArticleInfoEntity + */ + PlayCustomArticleInfoEntity selectByArticleId(String articleId, String customId, String endorseType); + /** * 查询陪聊点赞动态信息 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkArticleInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkArticleInfoServiceImpl.java new file mode 100644 index 0000000..e039505 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkArticleInfoServiceImpl.java @@ -0,0 +1,207 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.clerk.mapper.PlayClerkArticleInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkArticleInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkArticleReturnVo; +import com.starry.admin.modules.clerk.service.IPlayClerkArticleInfoService; +import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomQueryVo; +import com.starry.admin.modules.weichat.entity.article.PlayClerkArticleCustomReturnVo; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * 店员动态信息Service业务层处理 + * + * @author admin + * @since 2024-05-04 + */ +@Service +public class PlayClerkArticleInfoServiceImpl extends ServiceImpl implements IPlayClerkArticleInfoService { + @Resource + private PlayClerkArticleInfoMapper playClerkArticleInfoMapper; + + /** + * 查询店员动态信息 + * + * @param id 店员动态信息主键 + * @return 店员动态信息 + */ + @Override + public PlayClerkArticleInfoEntity selectPlayClerkArticleInfoById(String id) { + PlayClerkArticleInfoEntity entity = this.baseMapper.selectById(id); + if (entity == null) { + throw new CustomException("动态不存在"); + } + return this.baseMapper.selectById(id); + } + + /** + * 查询店员动态信息列表 + * + * @param vo 店员动态信息查询对象 + * @return 店员动态信息 + */ + @Override + public IPage selectByPage(PlayClerkArticleQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + //查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayClerkArticleInfoEntity.class); + //陪聊用户表全部字段 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar"); + //陪聊动态表 + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getClerkId); + //动态点赞表 + lambdaQueryWrapper.selectCollection(PlayCustomArticleInfoEntity.class, PlayClerkArticleReturnVo::getArticleInfoEntities).leftJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayCustomArticleInfoEntity::getId); + + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, vo.getClerkId()); + } + if (StrUtil.isNotBlank(vo.getReviewState())) { + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, vo.getReviewState()); + } + if (vo.getReleaseTime() != null && vo.getReleaseTime().size() == 2) { + lambdaQueryWrapper.between(PlayClerkArticleInfoEntity::getReleaseTime, vo.getReleaseTime().get(0), vo.getReleaseTime().get(1)); + } + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper); + for (PlayClerkArticleReturnVo record : page.getRecords()) { + int index = 0; + for (PlayCustomArticleInfoEntity articleInfoEntity : record.getArticleInfoEntities()) { + if (articleInfoEntity.getId() == null) { + continue; + } + index++; + } + record.setAgreedQuantity(index); + } + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleReturnVo.class, lambdaQueryWrapper); + } + + + @Override + public IPage customSelectByPage(PlayClerkArticleCustomQueryVo vo, String customId) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + //查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayClerkArticleInfoEntity.class); + //陪聊用户表全部字段 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex"); + //陪聊用户表全部字段 + lambdaQueryWrapper.selectAs(PlayCustomArticleInfoEntity::getId, "id"); + //陪聊动态表 + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkArticleInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getFollowState()) && "1".equals(vo.getFollowState())) { + //查询本人收藏的动态列表 + lambdaQueryWrapper.innerJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayClerkArticleInfoEntity::getId); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getCustomId, customId); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getEndorseType, "0"); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getEndorseState, "1"); + } + //查询指定店员动态 + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, vo.getClerkId()); + } + //动态点赞表 + lambdaQueryWrapper.selectCollection(PlayCustomArticleInfoEntity.class, PlayClerkArticleReturnVo::getArticleInfoEntities).leftJoin(PlayCustomArticleInfoEntity.class, PlayCustomArticleInfoEntity::getArticleId, PlayCustomArticleInfoEntity::getId); + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, "1"); + + + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkArticleCustomReturnVo.class, lambdaQueryWrapper); + for (PlayClerkArticleCustomReturnVo record : page.getRecords()) { + int index = 0; + for (PlayCustomArticleInfoEntity articleInfoEntity : record.getArticleInfoEntities()) { + //动态操作信息为空 + if (articleInfoEntity.getId() == null) { + continue; + } + //点赞或者动态处于激活状态 + if ("1".equals(articleInfoEntity.getEndorseState())) { + if ("1".equals(articleInfoEntity.getEndorseType())) { + index++; + record.setGreedState("1"); + } else { + record.setFollowState("1"); + } + } + } + record.setAgreedQuantity(index); + } + return page; + } + /** + * 新增店员动态信息 + * + * @param entity 店员动态信息 + * @return 结果 + */ + @Override + public boolean create(PlayClerkArticleInfoEntity entity) { + if (!queryClerkUnauditedArticleInfo(entity.getClerkId()).isEmpty()) { + throw new CustomException("存在未审核动态,无法新增"); + } + + if (StrUtil.isBlankIfStr(entity.getId())) { + entity.setId(IdUtils.getUuid()); + } + return save(entity); + } + + + /** + * 查询店员未审核的动态 + * + * @param clerkId 店员ID + * @return 店员未审核的动态列表 + */ + public List queryClerkUnauditedArticleInfo(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkArticleInfoEntity::getReviewState, "0"); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + /** + * 修改店员动态信息 + * + * @param playClerkArticleInfo 店员动态信息 + * @return 结果 + */ + @Override + public boolean update(PlayClerkArticleInfoEntity playClerkArticleInfo) { + return updateById(playClerkArticleInfo); + } + + /** + * 批量删除店员动态信息 + * + * @param ids 需要删除的店员动态信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkArticleInfoByIds(String[] ids) { + return playClerkArticleInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员动态信息信息 + * + * @param id 店员动态信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkArticleInfoById(String id) { + return playClerkArticleInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkClassificationInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkClassificationInfoServiceImpl.java index bb1b993..14c7898 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkClassificationInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkClassificationInfoServiceImpl.java @@ -1,6 +1,6 @@ package com.starry.admin.modules.clerk.service.impl; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -70,7 +70,7 @@ public class PlayClerkClassificationInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId); this.baseMapper.delete(lambdaQueryWrapper); // 根据当前租户的服务项目,生成陪聊项目数据 - for (PlayCommodityInfoEntity commodityInfo : playCommodityInfoService.selectAll()) { + for (PlayCommodityInfoEntity commodityInfo : playCommodityInfoService.selectByType()) { PlayClerkCommodityEntity entity = new PlayClerkCommodityEntity(); - entity.setPlayUserId(userId); + entity.setClerkId(userId); entity.setCommodityId(commodityInfo.getId()); - entity.setCommodityType(commodityInfo.getItemType()); entity.setCommodityName(commodityInfo.getItemName()); - entity.setCommodityPrice(commodityInfo.getPrice()); - entity.setServiceDuration(commodityInfo.getServiceDuration()); entity.setEnablingState("1"); this.create(entity); } @@ -58,23 +55,25 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl getClerkCommodityList(String userId) { - List list = this.selectCommodityTypeByUser(userId); - return list.stream().map(PlayClerkCommodityEntity::getCommodityType).collect(Collectors.toList()); + public List getClerkCommodityList(String userId, String enablingState) { + List list = this.selectCommodityTypeByUser(userId, enablingState); + return list.stream().map(PlayClerkCommodityEntity::getCommodityName).collect(Collectors.toList()); } @Override - public List selectCommodityTypeByUser(String userId) { + public List selectCommodityTypeByUser(String userId, String enablingState) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.groupBy(PlayClerkCommodityEntity::getCommodityType); - lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId); + if (StrUtil.isNotBlank(enablingState)) { + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getEnablingState, enablingState); + } return this.baseMapper.selectList(lambdaQueryWrapper); } @Override public List selectByUser(String userId) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, userId); + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, userId); return this.baseMapper.selectList(lambdaQueryWrapper); } @@ -85,12 +84,12 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getPlayUserId, clerkUserId); - lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getCommodityType, type); + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkCommodityEntity::getCommodityName, commodityName); this.baseMapper.update(entity, lambdaQueryWrapper); } @@ -130,7 +129,7 @@ public class PlayClerkCommodityServiceImpl extends ServiceImpl implements IPlayClerkDataReviewInfoService { @Resource private PlayClerkDataReviewInfoMapper playClerkDataReviewInfoMapper; + @Resource + private IPlayClerkUserInfoService playClerkUserInfoService; + + /** * 查询店员资料审核 - * * @param id 店员资料审核主键 * @return 店员资料审核 */ @Override public PlayClerkDataReviewInfoEntity selectPlayClerkDataReviewInfoById(String id) { - return this.baseMapper.selectById(id); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PlayClerkDataReviewInfoEntity::getId, id); + PlayClerkDataReviewInfoEntity entity = this.baseMapper.selectOne(queryWrapper); + if (entity == null) { + throw new CustomException("对象不存在"); + } + return entity; + } + + @Override + public List queryByClerkId(String clerkId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectList(queryWrapper); } - /** - * 查询店员资料审核列表 - * - * @param entity 店员资料审核 - * @return 店员资料审核 - */ @Override - public List queryList(PlayClerkDataReviewInfoEntity entity) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if (StrUtil.isNotBlank(entity.getId())) { - lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getId, entity.getId()); - } - if (StrUtil.isNotBlank(entity.getPlayUserId())) { - lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getPlayUserId, entity.getPlayUserId()); - } - if (StrUtil.isNotBlank(entity.getState())) { - lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getState, entity.getState()); - } - if (StrUtil.isNotBlank(entity.getDataType())) { - lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, entity.getDataType()); - } - return this.baseMapper.selectList(lambdaQueryWrapper); + public PlayClerkDataReviewInfoEntity queryByClerkId(String clerkId, String dataType, String reviewState) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, clerkId); + queryWrapper.eq(PlayClerkDataReviewInfoEntity::getReviewState, reviewState); + queryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, dataType); + return this.baseMapper.selectOne(queryWrapper); } /** * 查询店员资料审核列表 - * - * @param vo 店员资料审核分页对象 + * @param vo 店员资料审核 * @return 店员资料审核 */ @Override - public IPage selectPlayClerkDataReviewInfoByPage(PlayClerkDataReviewInfoQueryVo vo) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if (StrUtil.isNotBlank(vo.getState())) { - lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getState, vo.getState()); + public IPage selectByPage(PlayClerkDataReviewQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayClerkDataReviewInfoEntity.class); + //店员表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkUserReviewInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getClerkId, vo.getClerkId()); } - Page page = new Page<>(vo.getPageNum(), vo.getPageSize()); - return this.baseMapper.selectPage(page, lambdaQueryWrapper); + if (StrUtil.isNotBlank(vo.getDataType())) { + lambdaQueryWrapper.eq(PlayClerkDataReviewInfoEntity::getDataType, vo.getDataType()); + } + if (StrUtil.isNotBlank(vo.getReviewState())) { + lambdaQueryWrapper.like(PlayClerkDataReviewInfoEntity::getReviewState, vo.getReviewState()); + } + if (vo.getAddTime() != null && vo.getAddTime().size() == 2) { + lambdaQueryWrapper.between(PlayClerkDataReviewInfoEntity::getAddTime, vo.getAddTime().get(0), vo.getAddTime().get(1)); + } + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkDataReviewReturnVo.class, lambdaQueryWrapper); } /** * 新增店员资料审核 - * * @param playClerkDataReviewInfo 店员资料审核 * @return 结果 */ @Override public boolean create(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo) { if (StrUtil.isBlankIfStr(playClerkDataReviewInfo.getId())) { - playClerkDataReviewInfo.setId(IdUtil.fastSimpleUUID()); + playClerkDataReviewInfo.setId(IdUtils.getUuid()); + } + if (StrUtil.isBlankIfStr(playClerkDataReviewInfo.getAddTime())) { + playClerkDataReviewInfo.setAddTime(LocalDateTime.now()); } return save(playClerkDataReviewInfo); } + @Override + public void updateDataReviewState(PlayClerkDataReviewStateEditVo vo) { + PlayClerkDataReviewInfoEntity entity = this.selectPlayClerkDataReviewInfoById(vo.getId()); + BeanUtils.copyProperties(vo, entity); + this.update(entity); + if ("1".equals(vo.getReviewState())) { + PlayClerkUserInfoEntity userInfo = new PlayClerkUserInfoEntity(); + userInfo.setId(entity.getId()); + if ("1".equals(entity.getDataType())) { + userInfo.setAvatar(entity.getDataContent().get(0)); + } + if ("2".equals(entity.getDataType())) { + userInfo.setAlbum(entity.getDataContent()); + } + if ("3".equals(entity.getDataType())) { + userInfo.setAudio(entity.getDataContent().get(0)); + } + playClerkUserInfoService.update(userInfo); + } + } + /** * 修改店员资料审核 - * * @param playClerkDataReviewInfo 店员资料审核 * @return 结果 */ @@ -106,7 +149,6 @@ public class PlayClerkDataReviewInfoServiceImpl extends ServiceImpl implements IPlayClerkGroupInfoService { + @Resource + private PlayClerkGroupInfoMapper playClerkGroupInfoMapper; + + /** + * 查询店员分组信息 + * + * @param id 店员分组信息主键 + * @return 店员分组信息 + */ + @Override + public PlayClerkGroupInfoEntity selectPlayClerkGroupInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询店员分组信息列表 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 店员分组信息 + */ + @Override + public IPage selectPlayClerkGroupInfoByPage(PlayClerkGroupInfoEntity playClerkGroupInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增店员分组信息 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 结果 + */ + @Override + public boolean create(PlayClerkGroupInfoEntity playClerkGroupInfo) { + if (StrUtil.isBlankIfStr(playClerkGroupInfo.getId())) { + playClerkGroupInfo.setId(IdUtils.getUuid()); + } + return save(playClerkGroupInfo); + } + + /** + * 修改店员分组信息 + * + * @param playClerkGroupInfo 店员分组信息 + * @return 结果 + */ + @Override + public boolean update(PlayClerkGroupInfoEntity playClerkGroupInfo) { + return updateById(playClerkGroupInfo); + } + + /** + * 批量删除店员分组信息 + * + * @param ids 需要删除的店员分组信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGroupInfoByIds(String[] ids) { + return playClerkGroupInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员分组信息信息 + * + * @param id 店员分组信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGroupInfoById(String id) { + return playClerkGroupInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupUserInfoServiceImpl.java new file mode 100644 index 0000000..3cc3f0d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkGroupUserInfoServiceImpl.java @@ -0,0 +1,97 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.clerk.mapper.PlayClerkGroupUserInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkGroupUserInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkGroupUserInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; + +/** + * 店员和分组关系Service业务层处理 + * + * @author admin + * @since 2024-05-31 + */ +@Service +public class PlayClerkGroupUserInfoServiceImpl extends ServiceImpl implements IPlayClerkGroupUserInfoService { + @Resource + private PlayClerkGroupUserInfoMapper playClerkGroupUserInfoMapper; + + /** + * 查询店员和分组关系 + * + * @param id 店员和分组关系主键 + * @return 店员和分组关系 + */ + @Override + public PlayClerkGroupUserInfoEntity selectPlayClerkGroupUserInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询店员和分组关系列表 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 店员和分组关系 + */ + @Override + public IPage selectPlayClerkGroupUserInfoByPage(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增店员和分组关系 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 结果 + */ + @Override + public boolean create(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + if (StrUtil.isBlankIfStr(playClerkGroupUserInfo.getId())) { + playClerkGroupUserInfo.setId(IdUtils.getUuid()); + } + return save(playClerkGroupUserInfo); + } + + /** + * 修改店员和分组关系 + * + * @param playClerkGroupUserInfo 店员和分组关系 + * @return 结果 + */ + @Override + public boolean update(PlayClerkGroupUserInfoEntity playClerkGroupUserInfo) { + return updateById(playClerkGroupUserInfo); + } + + /** + * 批量删除店员和分组关系 + * + * @param ids 需要删除的店员和分组关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGroupUserInfoByIds(String[] ids) { + return playClerkGroupUserInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员和分组关系信息 + * + * @param id 店员和分组关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGroupUserInfoById(String id) { + return playClerkGroupUserInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkLevelInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkLevelInfoServiceImpl.java index dc07271..a45e4b5 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkLevelInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkLevelInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.starry.admin.modules.clerk.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -11,10 +10,12 @@ import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.mapper.PlayClerkLevelInfoMapper; import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity; import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Arrays; +import java.util.Date; import java.util.List; /** @@ -77,8 +78,9 @@ public class PlayClerkLevelInfoServiceImpl extends ServiceImpl implements IPlayClerkRankingInfoService { + @Resource + private PlayClerkRankingInfoMapper playClerkRankingInfoMapper; + + /** + * 查询店员排行 + * + * @param id 店员排行主键 + * @return 店员排行 + */ + @Override + public PlayClerkRankingInfoEntity selectPlayClerkRankingInfoById(String id) { + return this.baseMapper.selectById(id); + } + + + @Override + public List selectHistoryRanking(String clerkId) { + long serialNumber = selectSerialNumber(); + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + // 根据排行序号和用户ID查询 + lambdaQueryWrapper.ne(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectJoinList(PlayOrderHistoryRankingReturnVo.class, lambdaQueryWrapper); + } + + @Override + public PlayOrderRankingReturnVo selectCurrentRanking(String clerkId) { + long serialNumber = selectSerialNumber(); + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayClerkRankingInfoEntity.class); + //店员信息 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex"); + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkRankingInfoEntity::getClerkId); + //店员等级 + lambdaQueryWrapper.selectAs(PlayClerkLevelInfoEntity::getId, "levelId").selectAs(PlayClerkLevelInfoEntity::getName, "levelName"); + lambdaQueryWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId); + // 根据排行序号和用户ID查询 + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId); + PlayOrderRankingReturnVo returnVo = this.baseMapper.selectJoinOne(PlayOrderRankingReturnVo.class, lambdaQueryWrapper); + if (returnVo == null) { + returnVo = new PlayOrderRankingReturnVo(); + } + returnVo.setRankings(this.selectBySerialNumber(serialNumber)); + return returnVo; + } + + + @Override + public List selectMaxSerialNumber() { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, this.selectSerialNumber()); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + /** + * 获取当前期排名序号 + * + * @return PlayClerkRankingInfoEntity + */ + @Override + public Integer selectSerialNumber() { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.orderByDesc(PlayClerkRankingInfoEntity::getSerialNumber).last("limit 1"); + PlayClerkRankingInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper); + if (entity == null || entity.getSerialNumber() == null) { + return 0; + } + return entity.getSerialNumber(); + } + + + List selectBySerialNumber(long serialNumber) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getSerialNumber, serialNumber); + lambdaQueryWrapper.orderByDesc(PlayClerkRankingInfoEntity::getRankingIndex); + lambdaQueryWrapper.selectAll(PlayClerkRankingInfoEntity.class); + //店员信息 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex"); + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkRankingInfoEntity::getClerkId); + //店员等级 + lambdaQueryWrapper.selectAs(PlayClerkLevelInfoEntity::getId, "levelId").selectAs(PlayClerkLevelInfoEntity::getName, "levelName"); + lambdaQueryWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId); + return this.baseMapper.selectJoinList(PlayOrderRankingListVo.class, lambdaQueryWrapper); + } + + @Override + public PlayClerkRankingInfoEntity selectByTime(String clerkId, LocalDate startTime, LocalDate endTime) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getStartCountDate, startTime); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getEndCountDate, endTime); + lambdaQueryWrapper.eq(PlayClerkRankingInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + /** + * 查询店员排行列表 + * + * @param playClerkRankingInfo 店员排行 + * @return 店员排行 + */ + @Override + public IPage selectPlayClerkRankingInfoByPage(PlayClerkRankingInfoEntity playClerkRankingInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + } + + /** + * 新增店员排行 + * + * @param playClerkRankingInfo 店员排行 + * @return 结果 + */ + @Override + public boolean create(PlayClerkRankingInfoEntity playClerkRankingInfo) { + if (StrUtil.isBlankIfStr(playClerkRankingInfo.getId())) { + playClerkRankingInfo.setId(IdUtils.getUuid()); + } + return save(playClerkRankingInfo); + } + + /** + * 修改店员排行 + * + * @param playClerkRankingInfo 店员排行 + * @return 结果 + */ + @Override + public boolean update(PlayClerkRankingInfoEntity playClerkRankingInfo) { + return updateById(playClerkRankingInfo); + } + + /** + * 批量删除店员排行 + * + * @param ids 需要删除的店员排行主键 + * @return 结果 + */ + @Override + public int deletePlayClerkRankingInfoByIds(String[] ids) { + return playClerkRankingInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员排行信息 + * + * @param id 店员排行主键 + * @return 结果 + */ + @Override + public int deletePlayClerkRankingInfoById(String id) { + return playClerkRankingInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeInfoServiceImpl.java new file mode 100644 index 0000000..f3a802e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeInfoServiceImpl.java @@ -0,0 +1,104 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.clerk.mapper.PlayClerkTypeInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkTypeInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * 店员分类信息Service业务层处理 + * + * @author admin + * @since 2024-05-31 + */ +@Service +public class PlayClerkTypeInfoServiceImpl extends ServiceImpl implements IPlayClerkTypeInfoService { + @Resource + private PlayClerkTypeInfoMapper playClerkTypeInfoMapper; + + /** + * 查询店员分类信息 + * + * @param id 店员分类信息主键 + * @return 店员分类信息 + */ + @Override + public PlayClerkTypeInfoEntity selectPlayClerkTypeInfoById(String id) { + return this.baseMapper.selectById(id); + } + + + @Override + public List selectByAll() { + return this.baseMapper.selectList(new LambdaQueryWrapper<>()); + } + + /** + * 查询店员分类信息列表 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 店员分类信息 + */ + @Override + public IPage selectPlayClerkTypeInfoByPage(PlayClerkTypeInfoEntity playClerkTypeInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增店员分类信息 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 结果 + */ + @Override + public boolean create(PlayClerkTypeInfoEntity playClerkTypeInfo) { + if (StrUtil.isBlankIfStr(playClerkTypeInfo.getId())) { + playClerkTypeInfo.setId(IdUtils.getUuid()); + } + return save(playClerkTypeInfo); + } + + /** + * 修改店员分类信息 + * + * @param playClerkTypeInfo 店员分类信息 + * @return 结果 + */ + @Override + public boolean update(PlayClerkTypeInfoEntity playClerkTypeInfo) { + return updateById(playClerkTypeInfo); + } + + /** + * 批量删除店员分类信息 + * + * @param ids 需要删除的店员分类信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkTypeInfoByIds(String[] ids) { + return playClerkTypeInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员分类信息信息 + * + * @param id 店员分类信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkTypeInfoById(String id) { + return playClerkTypeInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeUserInfoServiceImpl.java new file mode 100644 index 0000000..6d85819 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkTypeUserInfoServiceImpl.java @@ -0,0 +1,97 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.clerk.mapper.PlayClerkTypeUserInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkTypeUserInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkTypeUserInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; + +/** + * 店员和分类关系Service业务层处理 + * + * @author admin + * @since 2024-05-31 + */ +@Service +public class PlayClerkTypeUserInfoServiceImpl extends ServiceImpl implements IPlayClerkTypeUserInfoService { + @Resource + private PlayClerkTypeUserInfoMapper playClerkTypeUserInfoMapper; + + /** + * 查询店员和分类关系 + * + * @param id 店员和分类关系主键 + * @return 店员和分类关系 + */ + @Override + public PlayClerkTypeUserInfoEntity selectPlayClerkTypeUserInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询店员和分类关系列表 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 店员和分类关系 + */ + @Override + public IPage selectPlayClerkTypeUserInfoByPage(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增店员和分类关系 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 结果 + */ + @Override + public boolean create(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo) { + if (StrUtil.isBlankIfStr(playClerkTypeUserInfo.getId())) { + playClerkTypeUserInfo.setId(IdUtils.getUuid()); + } + return save(playClerkTypeUserInfo); + } + + /** + * 修改店员和分类关系 + * + * @param playClerkTypeUserInfo 店员和分类关系 + * @return 结果 + */ + @Override + public boolean update(PlayClerkTypeUserInfoEntity playClerkTypeUserInfo) { + return updateById(playClerkTypeUserInfo); + } + + /** + * 批量删除店员和分类关系 + * + * @param ids 需要删除的店员和分类关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkTypeUserInfoByIds(String[] ids) { + return playClerkTypeUserInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员和分类关系信息 + * + * @param id 店员和分类关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkTypeUserInfoById(String id) { + return playClerkTypeUserInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java index d04f17b..5b03706 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.starry.admin.modules.clerk.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -8,22 +7,29 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService; import com.starry.admin.modules.clerk.mapper.PlayClerkUserInfoMapper; import com.starry.admin.modules.clerk.module.entity.*; import com.starry.admin.modules.clerk.module.vo.PlayClerkCommodityQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkUnsettledWagesInfoReturnVo; import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; +import com.starry.admin.modules.custom.module.vo.PlayCustomRankingReturnVo; import com.starry.admin.modules.follow.module.entity.PlayCustomFollowInfoEntity; import com.starry.admin.modules.follow.service.IPlayCustomFollowInfoService; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.weichat.entity.PlayClerkUserLoginResponseVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo; import com.starry.common.utils.ConvertUtil; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @@ -39,8 +45,10 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.selectAll(PlayClerkLevelInfoEntity.class); + lambdaWrapper.selectAs(PlayClerkUserInfoEntity::getLevelId,"levelId"); + lambdaWrapper.leftJoin(PlayClerkLevelInfoEntity.class,PlayClerkLevelInfoEntity::getId,PlayClerkUserInfoEntity::getLevelId); + lambdaWrapper.eq(PlayClerkUserInfoEntity::getId,clerkId); + return this.baseMapper.selectJoinOne(PlayClerkLevelInfoEntity.class,lambdaWrapper); + + } @Override public PlayClerkUserInfoEntity queryByUserId(String id) { @@ -81,13 +103,9 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl list = playClerkDataReviewInfoService.queryByClerkId(userInfo.getId()); // 判断头像、音频、相册是否可以编辑,如果存在未审核的数据,则不允许编辑 - PlayClerkDataReviewInfoEntity dataReviewInfo = new PlayClerkDataReviewInfoEntity(); - dataReviewInfo.setPlayUserId(userInfo.getId()); - dataReviewInfo.setState("0"); - List list = dataReviewInfoService.queryList(dataReviewInfo); - Map map = list.stream().collect(Collectors.toMap(PlayClerkDataReviewInfoEntity::getDataType, account -> account)); + Map map = list.stream().collect(Collectors.toMap(PlayClerkDataReviewInfoEntity::getDataType, account -> account, (entity1, entity2) -> entity1)); if (map.containsKey("1")) { result.setAvatarAllowEdit(false); } @@ -97,10 +115,19 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl clerkCommodityEntities = playClerkCommodityService.selectCommodityTypeByUser(userInfo.getId(), ""); + List playClerkCommodityQueryVos = new ArrayList<>(); + for (PlayClerkCommodityEntity clerkCommodityEntity : clerkCommodityEntities) { + playClerkCommodityQueryVos.add(new PlayClerkCommodityQueryVo(clerkCommodityEntity.getCommodityName(), clerkCommodityEntity.getEnablingState())); + } + result.setCommodity(playClerkCommodityQueryVos); result.setArea(userInfo.getProvince() + "-" + userInfo.getCity()); return result; } @@ -117,12 +144,17 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo) { - Page page = new Page<>(vo.getPageNum(), vo.getPageSize()); - - MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() - // 查询主表全部字段 - .selectAll(PlayClerkUserInfoEntity.class).selectAs(PlayClerkUserInfoEntity::getCity, "address") - // 等级表 - .selectAs(PlayClerkLevelInfoEntity::getName, "levelName").leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId); + public IPage selectPlayClerkUserInfoByPage(PlayClerkUserInfoQueryVo vo) { + Page page = new Page<>(vo.getPageNum(), vo.getPageSize()); + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + // 查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayClerkUserInfoEntity.class).selectAs(PlayClerkUserInfoEntity::getCity, "address"); + // 等级表 + lambdaQueryWrapper.selectAs(PlayClerkLevelInfoEntity::getName, "levelName"); + lambdaQueryWrapper.leftJoin(PlayClerkLevelInfoEntity.class, PlayClerkLevelInfoEntity::getId, PlayClerkUserInfoEntity::getLevelId); // 服务项目表 if (StrUtil.isNotBlank(vo.getNickname())) { @@ -163,28 +195,141 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl listAll() { + return this.baseMapper.selectList(new LambdaQueryWrapper<>()); + } @Override - public IPage selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId) { - IPage voPage = this.selectPlayClerkUserInfoByPage(vo); - // 如果当前顾客已登录,查询是否关注 - if (StrUtil.isNotBlank(customUserId)) { - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomUserId, customUserId); - List customFollowInfoEntities = customFollowInfoService.list(lambdaQueryWrapper); - Map customFollows = customFollowInfoEntities.stream().collect(Collectors.toMap(PlayCustomFollowInfoEntity::getClerkUserId, PlayCustomFollowInfoEntity::getFollowState)); - for (PlayClerkUserListResultVo record : voPage.getRecords()) { - if (customFollows.containsKey(record.getId())) { - record.setFollowState(customFollows.get(record.getId())); - record.setCommodity(playClerkCommodityService.getClerkCommodityList(record.getId())); - record.setAddress(record.getCity()); - } - } + public IPage listUnsettledWagesByPage(PlayClerkUnsettledWagesInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + //查询所有店员 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getId, "clerkId"); + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getClerkState, "1"); + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getClerkId()); + } + if (StrUtil.isNotBlank(vo.getListingState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getListingState, vo.getListingState()); + } + //查询店员订单信息 + lambdaQueryWrapper.selectCollection(PlayOrderInfoEntity.class, PlayClerkUnsettledWagesInfoReturnVo::getOrderInfoEntities); + lambdaQueryWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getAcceptBy, PlayClerkUserInfoEntity::getId); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0"); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkUnsettledWagesInfoReturnVo.class, lambdaQueryWrapper); + } + @Override + public IPage selectByPage(PlayClerkUserQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + //主表(店员表全部字段) + lambdaQueryWrapper.selectAll(PlayClerkUserInfoEntity.class); + //订单表 + lambdaQueryWrapper.selectCollection(PlayOrderInfoEntity.class, PlayCustomRankingReturnVo::getOrderInfos); + lambdaQueryWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getAcceptBy, PlayCustomUserInfoEntity::getId); + if(StrUtil.isNotBlank(vo.getId())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getId()); + } + if(StrUtil.isNotBlank(vo.getNickname())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); + } + if(StrUtil.isNotBlank(vo.getNickname())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); + } + if (StrUtil.isNotBlank(vo.getPhone())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getPhone, vo.getPhone()); + } + if (StrUtil.isNotBlank(vo.getGroupId())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getGroupId, vo.getGroupId()); + } + if (StrUtil.isNotBlank(vo.getSex())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getSex, vo.getSex()); + } + if (StrUtil.isNotBlank(vo.getFixingLevel())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getFixingLevel, vo.getFixingLevel()); + } + if (StrUtil.isNotBlank(vo.getLevelId())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getLevelId, vo.getLevelId()); + } + if (StrUtil.isNotBlank(vo.getProvince())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getProvince, vo.getProvince()); + } + if (StrUtil.isNotBlank(vo.getCity())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getCity, vo.getCity()); + } + if (StrUtil.isNotBlank(vo.getOnboardingState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getOnboardingState, vo.getOnboardingState()); + } + if (StrUtil.isNotBlank(vo.getRecommendationState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getRecommendationState, vo.getRecommendationState()); + } + if (StrUtil.isNotBlank(vo.getPinToTopState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getPinToTopState, vo.getPinToTopState()); + } + if (StrUtil.isNotBlank(vo.getOnlineState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getOnlineState, vo.getOnlineState()); + } + if (StrUtil.isNotBlank(vo.getDisplayState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getDisplayState, vo.getDisplayState()); + } + if (StrUtil.isNotBlank(vo.getRealState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getRealState, vo.getRealState()); + } + if (StrUtil.isNotBlank(vo.getMandatoryRealState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getMandatoryRealState, vo.getMandatoryRealState()); + } + if (StrUtil.isNotBlank(vo.getClerkState())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getClerkState, vo.getClerkState()); + } + if (StrUtil.isNotBlank(vo.getCode())) { + lambdaQueryWrapper.eq(PlayClerkUserInfoEntity::getCode, vo.getCode()); } + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkUserReturnVo.class, lambdaQueryWrapper); + + for (PlayClerkUserReturnVo record : page.getRecords()) { + BigDecimal orderTotalAmount = new BigDecimal("0"); + int orderContinueNumber = 0; + int orderNumber = 0; + for (PlayOrderInfoEntity orderInfo : record.getOrderInfos()) { + if (orderInfo.getId() == null) { + continue; + } + if ("0".equals(orderInfo.getFirstOrder())) { + orderContinueNumber++; + } + orderNumber++; + if (!"4".equals(orderInfo.getOrderStatus())) { + orderTotalAmount = orderTotalAmount.add(orderInfo.getFinalAmount()); + } + } + record.setOrderTotalAmount(orderTotalAmount); + record.setOrderNumber(String.valueOf(orderNumber)); + record.setOrderContinueNumber(String.valueOf(orderContinueNumber)); + } + + return page; + } + + @Override + public IPage selectByPage(PlayClerkUserInfoQueryVo vo, String customUserId) { + IPage voPage = this.selectPlayClerkUserInfoByPage(vo); + Map customFollows = new HashMap<>(16); + // 如果当前顾客已登录,查询用户关注状态 + if (StrUtil.isNotBlank(customUserId)) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomId, customUserId); + List customFollowInfoEntities = customFollowInfoService.list(lambdaQueryWrapper); + customFollows = customFollowInfoEntities.stream().collect(Collectors.toMap(PlayCustomFollowInfoEntity::getClerkId, PlayCustomFollowInfoEntity::getFollowState)); + } + for (PlayClerkUserInfoResultVo record : voPage.getRecords()) { + record.setFollowState(customFollows.containsKey(record.getId()) ? "1" : "0"); + record.setCommodity(playClerkCommodityService.getClerkCommodityList(record.getId(), "1")); + } return voPage; } @@ -197,7 +342,7 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl implements IPlayClerkUserReviewInfoService { + @Resource + private PlayClerkUserReviewInfoMapper playClerkUserReviewInfoMapper; + + @Resource + private IPlayClerkUserInfoService playClerkUserInfoService; + + @Resource + private IPlayClerkCommodityService clerkCommodityService; + + + @Override + public PlayClerkUserReviewInfoEntity queryByClerkId(String clerkId,String reviewState) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PlayClerkUserReviewInfoEntity::getClerkId, clerkId); + queryWrapper.eq(PlayClerkUserReviewInfoEntity::getReviewState,reviewState); + return this.baseMapper.selectOne(queryWrapper); + } + + /** + * 查询店员资料审核 + * + * @param id 店员资料审核主键 + * @return 店员资料审核 + */ + @Override + public PlayClerkUserReviewInfoEntity selectPlayClerkUserReviewInfoById(String id) { + PlayClerkUserReviewInfoEntity entity = this.baseMapper.selectById(id); + if (entity == null) { + throw new CustomException("对象不存在"); + } + return entity; + } + + + @Override + public IPage selectByPage(PlayClerkUserReviewQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayClerkUserReviewInfoEntity.class); + //店员表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getSignature, "signature"); + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkUserReviewInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaQueryWrapper.eq(PlayClerkUserReviewInfoEntity::getClerkId, vo.getClerkId()); + } + if (StrUtil.isNotBlank(vo.getSex())) { + lambdaQueryWrapper.eq(PlayClerkUserReviewInfoEntity::getSex, vo.getSex()); + } + if (StrUtil.isNotBlank(vo.getNickname())) { + lambdaQueryWrapper.like(PlayClerkUserReviewInfoEntity::getNickname, vo.getNickname()); + } + if (StrUtil.isNotBlank(vo.getPhone())) { + lambdaQueryWrapper.like(PlayClerkUserReviewInfoEntity::getPhone, vo.getPhone()); + } + if (StrUtil.isNotBlank(vo.getReviewState())) { + lambdaQueryWrapper.like(PlayClerkUserReviewInfoEntity::getReviewState, vo.getReviewState()); + } + if (StrUtil.isNotBlank(vo.getWeiChatCode())) { + lambdaQueryWrapper.like(PlayClerkUserReviewInfoEntity::getWeiChatCode, vo.getWeiChatCode()); + } + lambdaQueryWrapper.orderByDesc(PlayClerkUserReviewInfoEntity::getAddTime); + lambdaQueryWrapper.orderByDesc(PlayClerkUserReviewInfoEntity::getClerkId); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkUserReviewReturnVo.class, lambdaQueryWrapper); + } + + /** + * 查询店员资料审核列表 + * + * @param playClerkUserReviewInfo 店员资料审核 + * @return 店员资料审核 + */ + @Override + public IPage selectPlayClerkUserReviewInfoByPage(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + } + + /** + * 新增店员资料审核 + * + * @param playClerkUserReviewInfo 店员资料审核 + * @return 结果 + */ + @Override + public boolean create(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo) { + if (StrUtil.isBlankIfStr(playClerkUserReviewInfo.getId())) { + playClerkUserReviewInfo.setId(IdUtils.getUuid()); + } + return save(playClerkUserReviewInfo); + } + + /** + * 修改店员资料审核 + * + * @param entity 店员资料审核 + * @return 结果 + */ + @Override + public boolean update(PlayClerkUserReviewInfoEntity entity) { + return updateById(entity); + } + + /** + * 修改店员资料审核 + * + * @param vo 店员资料审核对象 + */ + @Override + public void updateDataReviewState(PlayClerkUserReviewStateEditVo vo) { + PlayClerkUserReviewInfoEntity entity = this.selectPlayClerkUserReviewInfoById(vo.getId()); + if ("1".equals(vo.getReviewState())) { + PlayClerkUserInfoEntity userInfo = playClerkUserInfoService.queryByUserId(entity.getClerkId()); + BeanUtils.copyProperties(entity, userInfo); + userInfo.setClerkState("1"); + userInfo.setId(entity.getClerkId()); + userInfo.setAlbum(entity.getAlbum()); + playClerkUserInfoService.update(userInfo); + clerkCommodityService.initClerkCommodity(userInfo.getId()); + } + BeanUtils.copyProperties(vo, entity); + this.update(entity); + } + + /** + * 批量删除店员资料审核 + * + * @param ids 需要删除的店员资料审核主键 + * @return 结果 + */ + @Override + public int deletePlayClerkUserReviewInfoByIds(String[] ids) { + return playClerkUserReviewInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员资料审核信息 + * + * @param id 店员资料审核主键 + * @return 结果 + */ + @Override + public int deletePlayClerkUserReviewInfoById(String id) { + return playClerkUserReviewInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesDetailsInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesDetailsInfoServiceImpl.java new file mode 100644 index 0000000..244794a --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesDetailsInfoServiceImpl.java @@ -0,0 +1,123 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.clerk.mapper.PlayClerkWagesDetailsInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + + +/** + * 店员工资明细信息Service业务层处理 + * + * @author admin + * @since 2024-05-31 + */ +@Service +public class PlayClerkWagesDetailsInfoServiceImpl extends ServiceImpl implements IPlayClerkWagesDetailsInfoService { + @Resource + private PlayClerkWagesDetailsInfoMapper playClerkWagesDetailsInfoMapper; + + + @Override + public PlayClerkWagesDetailsInfoEntity selectByClerkIdAndWagesId(String wagesId, String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesDetailsInfoEntity::getWagesId, wagesId); + lambdaQueryWrapper.eq(PlayClerkWagesDetailsInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + + @Override + public PlayClerkWagesDetailsInfoEntity selectByOrderId(String orderId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesDetailsInfoEntity::getOrderId, orderId); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + /** + * 查询店员工资明细信息 + * + * @param id 店员工资明细信息主键 + * @return 店员工资明细信息 + */ + @Override + public PlayClerkWagesDetailsInfoEntity selectPlayClerkWagesDetailsInfoById(String id) { + return this.baseMapper.selectById(id); + } + + @Override + public List selectByWagesId(String wagesId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesDetailsInfoEntity::getWagesId, wagesId); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + /** + * 查询店员工资明细信息列表 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 店员工资明细信息 + */ + @Override + public IPage selectPlayClerkWagesDetailsInfoByPage(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + } + + /** + * 新增店员工资明细信息 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 结果 + */ + @Override + public boolean create(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + if (StrUtil.isBlankIfStr(playClerkWagesDetailsInfo.getId())) { + playClerkWagesDetailsInfo.setId(IdUtils.getUuid()); + } + return save(playClerkWagesDetailsInfo); + } + + /** + * 修改店员工资明细信息 + * + * @param playClerkWagesDetailsInfo 店员工资明细信息 + * @return 结果 + */ + @Override + public boolean update(PlayClerkWagesDetailsInfoEntity playClerkWagesDetailsInfo) { + return updateById(playClerkWagesDetailsInfo); + } + + /** + * 批量删除店员工资明细信息 + * + * @param ids 需要删除的店员工资明细信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkWagesDetailsInfoByIds(String[] ids) { + return playClerkWagesDetailsInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员工资明细信息信息 + * + * @param id 店员工资明细信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkWagesDetailsInfoById(String id) { + return playClerkWagesDetailsInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesInfoServiceImpl.java new file mode 100644 index 0000000..28ec5e5 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkWagesInfoServiceImpl.java @@ -0,0 +1,173 @@ +package com.starry.admin.modules.clerk.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.starry.admin.modules.clerk.mapper.PlayClerkWagesInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; +import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoQueryVo; +import com.starry.admin.modules.clerk.module.vo.PlayClerkWagesInfoReturnVo; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.List; + + +/** + * 店员工资结算信息Service业务层处理 + * + * @author admin + * @since 2024-05-31 + */ +@Service +public class PlayClerkWagesInfoServiceImpl extends ServiceImpl implements IPlayClerkWagesInfoService { + @Resource + private PlayClerkWagesInfoMapper playClerkWagesInfoMapper; + + + @Override + public PlayClerkWagesInfoEntity selectCurrentPeriodWagesByClerkId(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0"); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + @Override + public List selectHistoricalWagesByClerkId(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1"); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + @Override + public PlayClerkWagesInfoEntity getLastSettlement(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "0"); + lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + + @Override + public LocalDate getLastSettlementTime(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getClerkId, clerkId); + lambdaQueryWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1"); + lambdaQueryWrapper.orderByDesc(PlayClerkWagesInfoEntity::getEndCountDate); + PlayClerkWagesInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper); + if (entity == null) { + return LocalDate.of(2000, 1, 1); + } + return entity.getEndCountDate(); + } + + + @Override + public IPage selectHistoricalByPage(PlayClerkWagesInfoQueryVo vo) { + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.selectAll(PlayClerkWagesInfoEntity.class); + //凭借店员表 + lambdaWrapper.selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + lambdaWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayClerkWagesInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getGroupId())) { + lambdaWrapper.eq(PlayClerkUserInfoEntity::getGroupId, vo.getGroupId()); + } + if (StrUtil.isNotBlank(vo.getListingState())) { + lambdaWrapper.eq(PlayClerkUserInfoEntity::getListingState, vo.getListingState()); + } + if (StrUtil.isNotBlank(vo.getClerkId())) { + lambdaWrapper.eq(PlayClerkUserInfoEntity::getId, vo.getClerkId()); + } + if (StrUtil.isNotEmpty(vo.getSettlementDate())) { + if (vo.getSettlementDate().contains("T")) { + vo.setSettlementDate(vo.getSettlementDate().substring(0, vo.getSettlementDate().indexOf("T"))); + } + lambdaWrapper.eq(PlayClerkWagesInfoEntity::getSettlementDate, LocalDate.parse(vo.getSettlementDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + } + lambdaWrapper.eq(PlayClerkWagesInfoEntity::getHistoricalStatistics, "1"); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkWagesInfoReturnVo.class, lambdaWrapper); + } + + /** + * 查询店员工资结算信息 + * + * @param id 店员工资结算信息主键 + * @return 店员工资结算信息 + */ + @Override + public PlayClerkWagesInfoEntity selectPlayClerkWagesInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询店员工资结算信息列表 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 店员工资结算信息 + */ + @Override + public IPage selectPlayClerkWagesInfoByPage(PlayClerkWagesInfoEntity playClerkWagesInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + } + + + /** + * 新增店员工资结算信息 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 结果 + */ + @Override + public boolean create(PlayClerkWagesInfoEntity playClerkWagesInfo) { + if (StrUtil.isBlankIfStr(playClerkWagesInfo.getId())) { + playClerkWagesInfo.setId(IdUtils.getUuid()); + } + return save(playClerkWagesInfo); + } + + /** + * 修改店员工资结算信息 + * + * @param playClerkWagesInfo 店员工资结算信息 + * @return 结果 + */ + @Override + public boolean update(PlayClerkWagesInfoEntity playClerkWagesInfo) { + return updateById(playClerkWagesInfo); + } + + /** + * 批量删除店员工资结算信息 + * + * @param ids 需要删除的店员工资结算信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkWagesInfoByIds(String[] ids) { + return playClerkWagesInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员工资结算信息信息 + * + * @param id 店员工资结算信息主键 + * @return 结果 + */ + @Override + public int deletePlayClerkWagesInfoById(String id) { + return playClerkWagesInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayCustomArticleInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayCustomArticleInfoServiceImpl.java similarity index 76% rename from play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayCustomArticleInfoServiceImpl.java rename to play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayCustomArticleInfoServiceImpl.java index c1fdb95..ba97148 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/service/impl/PlayCustomArticleInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayCustomArticleInfoServiceImpl.java @@ -1,14 +1,14 @@ -package com.starry.admin.modules.article.service.impl; +package com.starry.admin.modules.clerk.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.starry.admin.modules.article.mapper.PlayCustomArticleInfoMapper; -import com.starry.admin.modules.article.module.entity.PlayCustomArticleInfoEntity; -import com.starry.admin.modules.article.service.IPlayCustomArticleInfoService; +import com.starry.admin.modules.clerk.mapper.PlayCustomArticleInfoMapper; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayCustomArticleInfoService; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,6 +26,17 @@ public class PlayCustomArticleInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getArticleId, articleId); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getCustomId, customId); + lambdaQueryWrapper.eq(PlayCustomArticleInfoEntity::getEndorseType, endorseType); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + /** * 查询陪聊点赞动态信息 * @@ -58,7 +69,7 @@ public class PlayCustomArticleInfoServiceImpl extends ServiceImpl list = playCustomLeaveMsgService.selectByPage(vo); return R.ok(list); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomLevelInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomLevelInfoController.java index 9f9d1c4..749b0a3 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomLevelInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomLevelInfoController.java @@ -4,6 +4,7 @@ import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.custom.module.entity.PlayCustomLevelInfoEntity; import com.starry.admin.modules.custom.module.vo.PlayCustomLevelAddVo; import com.starry.admin.modules.custom.module.vo.PlayCustomLevelEditVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomLevelReturnVo; import com.starry.admin.modules.custom.service.IPlayCustomLevelInfoService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; @@ -32,7 +33,7 @@ public class PlayCustomLevelInfoController { @PostMapping("/listAll") public R listAll() { List list = playCustomLevelInfoService.selectPlayCustomLevelInfoByPage(); - return R.ok(list); + return R.ok(ConvertUtil.entityToVoList(list, PlayCustomLevelReturnVo.class)); } /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomRankingController.java b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomRankingController.java new file mode 100644 index 0000000..f1bdd2f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomRankingController.java @@ -0,0 +1,37 @@ +package com.starry.admin.modules.custom.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.custom.module.vo.PlayCustomRankingQueryVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomRankingReturnVo; +import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; +import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 顾客Controller + * + * @author admin + * @since 2024-04-08 + */ +@RestController +@RequestMapping("/custom/ranking") +public class PlayCustomRankingController { + @Resource + private IPlayCustomUserInfoService playCustomUserInfoService; + + /** + * 查询顾客排名列表 + */ + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayCustomRankingQueryVo vo) { + IPage list = playCustomUserInfoService.selectRankingByPage(vo); + return R.ok(list); + } + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomUserInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomUserInfoController.java index 1f44038..d84d1e5 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomUserInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/controller/PlayCustomUserInfoController.java @@ -2,6 +2,8 @@ package com.starry.admin.modules.custom.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; +import com.starry.admin.modules.custom.module.vo.PlayCustomUserQueryVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomUserReturnVo; import com.starry.admin.modules.custom.module.vo.PlayCustomUserStateEditVo; import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; import com.starry.common.annotation.Log; @@ -28,9 +30,9 @@ public class PlayCustomUserInfoController { /** * 查询顾客列表 */ - @GetMapping("/list") - public R list(PlayCustomUserInfoEntity playCustomUserInfo) { - IPage list = playCustomUserInfoService.selectPlayCustomUserInfoByPage(playCustomUserInfo); + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayCustomUserQueryVo vo) { + IPage list = playCustomUserInfoService.selectByPage(vo); return R.ok(list); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/mapper/PlayCustomUserInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/custom/mapper/PlayCustomUserInfoMapper.java index e7063e3..9c53132 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/mapper/PlayCustomUserInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/mapper/PlayCustomUserInfoMapper.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.custom.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; /** @@ -10,7 +10,7 @@ import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; * @author admin * @since 2024-04-08 */ -public interface PlayCustomUserInfoMapper extends BaseMapper { +public interface PlayCustomUserInfoMapper extends MPJBaseMapper { } diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/entity/PlayCustomUserInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/entity/PlayCustomUserInfoEntity.java index 5657b53..2522cb6 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/module/entity/PlayCustomUserInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/entity/PlayCustomUserInfoEntity.java @@ -47,7 +47,7 @@ public class PlayCustomUserInfoEntity extends BaseEntity images; /** * 留言时间 diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomLevelReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomLevelReturnVo.java new file mode 100644 index 0000000..c4f7209 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomLevelReturnVo.java @@ -0,0 +1,44 @@ +package com.starry.admin.modules.custom.module.vo; + +import lombok.Data; + +/** + * 顾客等级查询对象 + * + * @author admin + */ +@Data +public class PlayCustomLevelReturnVo { + + + /** + * UUID + */ + private String id; + /** + * 等级名称 + */ + private String name; + + /** + * 等级数字(排序字段) + */ + private Integer level; + + /** + * 上一级消费金额 + */ + private String consumptionAmount; + + /** + * 满减比例 + */ + private Integer discount; + + /** + * 头像框地址 + */ + private String avatarFrameAddress; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingQueryVo.java new file mode 100644 index 0000000..2c0b3b6 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingQueryVo.java @@ -0,0 +1,27 @@ +package com.starry.admin.modules.custom.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 顾客排名分页查询对象 + * + * @author admin + * @since 2024/5/14 下午7:47 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayCustomRankingQueryVo extends BasePageEntity { + /** + * userId + */ + private String id; + + /** + * 下单时间 + */ + private List purchaserTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingReturnVo.java new file mode 100644 index 0000000..6987c85 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomRankingReturnVo.java @@ -0,0 +1,81 @@ +package com.starry.admin.modules.custom.module.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 顾客分页查询返回对象 + * + * @author admin + * @since 2024/5/14 下午7:47 + **/ +@Data +public class PlayCustomRankingReturnVo { + /** + * UUID + */ + private String id; + + /** + * 顾客昵称 + */ + private String nickname; + + /** + * 头像 + */ + private String avatar; + + /** + * 排名 + */ + private Integer rankingIndex; + + /** + * 订单列表 + */ + @JsonIgnore + private List orderInfos; + + /** + * 下单时间-起始时间 + */ + private String beginPurchaserTime; + + /** + * 下单时间-终止时间 + */ + private String endPurchaserTime; + + /** + * 订单总数 + */ + private String orderNumber; + + /** + * 续单总数 + */ + private String orderContinueNumber; + + /** + * 订单单价 + */ + private String orderPrice; + + /** + * 订单总金额 + */ + private BigDecimal orderTotalAmount; + + + /** + * 统计时间 + */ + private String statisticalTime = LocalDate.now().toString(); + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserQueryVo.java new file mode 100644 index 0000000..f1c04e4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserQueryVo.java @@ -0,0 +1,113 @@ +package com.starry.admin.modules.custom.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 顾客分页查询对象 + * + * @author admin + * @since 2024/5/14 下午7:47 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayCustomUserQueryVo extends BasePageEntity { + + private String id; + + + /** + * 用户的标识,对当前公众号唯一 + */ + private String openid; + + + /** + * 顾客昵称 + */ + private String nickname; + + /** + * 顾客性别(0:未知;1:男,2:女) + */ + private String sex; + + + /** + * 微信号 + */ + private String weiChatCode; + + /** + * 绑定手机状态[0:未绑定,1:绑定] + */ + private String mobilePhoneState; + + /** + * 手机号码 + */ + private String phone; + + + /** + * 等级ID + */ + private String levelId; + + + /** + * 余额状态[0:不存在余额,1:存在余额] + */ + private String accountState; + + + /** + * 关注状态[0:未关注,1:已关注] + */ + private String subscribeState; + + /** + * 违规状态[0:未违规,1:违规] + */ + private String violationState; + + /** + * 是否下单状态[0:未下单过,1:下单过] + */ + private String purchaseState; + + /** + * 黑名单状态[0:非黑名单,1:黑名单] + */ + private String blacklistState; + + /** + * 注册时间 + */ + private List registrationTime; + + + /** + * 首次下单时间 + */ + private List firstPurchaseTime; + + /** + * 最后一次下单时间 + */ + private List lastPurchaseTime; + /** + * 备注 + */ + private String remark; + + /** + * 排序字段 + */ + private String sort; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserReturnVo.java new file mode 100644 index 0000000..95d0fb5 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserReturnVo.java @@ -0,0 +1,174 @@ +package com.starry.admin.modules.custom.module.vo; + +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 顾客分页查询返回对象 + * + * @author admin + * @since 2024/5/14 下午7:47 + **/ +@Data +public class PlayCustomUserReturnVo { + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 用户的标识,对当前公众号唯一 + */ + private String openid; + + /** + * 顾客昵称 + */ + private String nickname; + + /** + * 顾客性别(0:未知;1:男,2:女) + */ + private Integer sex; + + /** + * 头像 + */ + private String avatar; + + /** + * 手机号码 + */ + private String phone; + + /** + * 微信号码 + */ + private String weiChatCode; + + /** + * 所在国家 + */ + private String country; + + /** + * 所在省份 + */ + private String province; + + /** + * 所在城市 + */ + private String city; + + /** + * 账户余额 + */ + private BigDecimal accountBalance; + + /** + * 余额状态[0:不存在余额,1:存在余额] + */ + private String accountState; + + /** + * 关注状态[0:未关注,1:已关注] + */ + private String subscribeState; + + /** + * 黑名单状态[0:非黑名单,1:黑名单] + */ + private String blacklistState; + + /** + * 违规状态[0:未违规,1:违规] + */ + private String violationState; + + /** + * 是否下单状态[0:未下单过,1:下单过] + */ + private String purchaseState; + + /** + * 绑定手机状态[0:未绑定,1:绑定] + */ + private String mobilePhoneState; + + /** + * 实名状态【1:已实名,0:未实名】 + */ + private String realState; + + /** + * 是否必须实名【2:跟随店铺设置,1:必须实名,0:非必须实名】 + */ + private String mandatoryRealState; + + /** + * 注册时间 + */ + private Date registrationTime; + + /** + * 上次登录时间 + */ + private Date lastLoginTime; + + /** + * 首次下单时间 + */ + private Date firstPurchaseTime; + + /** + * 最后一次下单时间 + */ + private Date lastPurchaseTime; + + /** + * 备注 + */ + private String remark; + + /** + * 等级ID + */ + private String levelId; + + /** + * 等级名称 + */ + private String levelName; + + /** + * 订单列表 + */ + private List orderInfos; + /** + * 订单总数 + */ + private String orderNumber; + + /** + * 订单单价 + */ + private String orderPrice; + + /** + * 订单总金额 + */ + private BigDecimal orderTotalAmount; + + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserStateEditVo.java index 3f53683..b10b9d3 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserStateEditVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/module/vo/PlayCustomUserStateEditVo.java @@ -5,6 +5,9 @@ import lombok.Data; import javax.validation.constraints.NotBlank; +/** + * @author admin + */ @Data public class PlayCustomUserStateEditVo { @@ -51,7 +54,7 @@ public class PlayCustomUserStateEditVo { private String realState; /** - * 是否必须实名【1:必须实名,0:非必须实名】 + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 */ private String mandatoryRealState; diff --git a/play-admin/src/main/java/com/starry/admin/modules/custom/service/IPlayCustomUserInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/custom/service/IPlayCustomUserInfoService.java index a5bba01..78fc37c 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/custom/service/IPlayCustomUserInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/custom/service/IPlayCustomUserInfoService.java @@ -3,6 +3,10 @@ package com.starry.admin.modules.custom.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; +import com.starry.admin.modules.custom.module.vo.PlayCustomRankingQueryVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomRankingReturnVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomUserQueryVo; +import com.starry.admin.modules.custom.module.vo.PlayCustomUserReturnVo; import java.math.BigDecimal; @@ -32,12 +36,22 @@ public interface IPlayCustomUserInfoService extends IService selectPlayCustomUserInfoByPage(PlayCustomUserInfoEntity playCustomUserInfo); + IPage selectByPage(PlayCustomUserQueryVo vo); + + + /** + * 分页查询顾客排名列表 + * + * @param vo 顾客查询对象 + * @return 顾客集合 + */ + IPage selectRankingByPage(PlayCustomRankingQueryVo vo); + /** * 新增顾客 @@ -67,6 +81,19 @@ public interface IPlayCustomUserInfoService extends IService(vo.getPageNum(), vo.getPageSize()), PlayCustomLeaveMsgReturnVo.class, lambdaQueryWrapper); @@ -106,7 +106,7 @@ public class PlayCustomLeaveMsgServiceImpl extends ServiceImpl selectPlayCustomUserInfoByPage(PlayCustomUserInfoEntity playCustomUserInfo) { - Page page = new Page<>(1, 10); - return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + public IPage selectRankingByPage(PlayCustomRankingQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectCollection(PlayOrderInfoEntity.class, PlayCustomRankingReturnVo::getOrderInfos).leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getPurchaserBy, PlayCustomUserInfoEntity::getId); + if (StrUtil.isNotBlank(vo.getId())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getId, vo.getId()); + } + if (vo.getPurchaserTime() != null && vo.getPurchaserTime().size() == 2) { + lambdaQueryWrapper.between(PlayOrderInfoEntity::getPurchaserTime, vo.getPurchaserTime().get(0), vo.getPurchaserTime().get(1)); + } + + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayCustomRankingReturnVo.class, lambdaQueryWrapper); + int index = 1; + for (PlayCustomRankingReturnVo record : page.getRecords()) { + record.setRankingIndex((vo.getPageNum() - 1) * vo.getPageSize() + index); + if (vo.getPurchaserTime() != null && vo.getPurchaserTime().size() == 2) { + record.setBeginPurchaserTime(vo.getPurchaserTime().get(0)); + record.setEndPurchaserTime(vo.getPurchaserTime().get(1)); + } + BigDecimal orderTotalAmount = new BigDecimal("0"); + int orderContinueNumber = 0; + int orderNumber = 0; + for (PlayOrderInfoEntity orderInfo : record.getOrderInfos()) { + if (orderInfo.getId() == null) { + continue; + } + if ("0".equals(orderInfo.getFirstOrder())) { + orderContinueNumber++; + } + orderNumber++; + if (!"4".equals(orderInfo.getOrderStatus())) { + orderTotalAmount = orderTotalAmount.add(orderInfo.getFinalAmount()); + } + } + record.setOrderTotalAmount(orderTotalAmount); + record.setOrderNumber(String.valueOf(orderNumber)); + record.setOrderContinueNumber(String.valueOf(orderContinueNumber)); + if (orderNumber != 0) { + record.setOrderPrice(String.valueOf(orderTotalAmount.divide(new BigDecimal(orderNumber), 2, RoundingMode.HALF_UP))); + } else { + record.setOrderPrice("0"); + } + index++; + } + //按照订单顺序进行排序 + page.setRecords(page.getRecords().stream().sorted(Comparator.comparing(PlayCustomRankingReturnVo::getOrderNumber).reversed()).collect(Collectors.toList())); + return page; + } + + @Override + public IPage selectByPage(PlayCustomUserQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.selectAll(PlayCustomUserInfoEntity.class); + lambdaQueryWrapper.selectAs(PlayCustomLevelInfoEntity::getName, "levelName"); + lambdaQueryWrapper.leftJoin(PlayCustomLevelInfoEntity.class, PlayCustomLevelInfoEntity::getId, PlayCustomUserInfoEntity::getLevelId); + if (StrUtil.isNotBlank(vo.getId())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getId, vo.getId()); + } + if (StrUtil.isNotBlank(vo.getNickname())) { + lambdaQueryWrapper.like(PlayCustomUserInfoEntity::getNickname, vo.getNickname()); + } + if (StrUtil.isNotBlank(vo.getRemark())) { + lambdaQueryWrapper.like(PlayCustomUserInfoEntity::getRemark, vo.getRemark()); + } + if (StrUtil.isNotBlank(vo.getWeiChatCode())) { + lambdaQueryWrapper.like(PlayCustomUserInfoEntity::getWeiChatCode, vo.getWeiChatCode()); + } + if (StrUtil.isNotBlank(vo.getPhone())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getPhone, vo.getPhone()); + } + if (StrUtil.isNotBlank(vo.getSex())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getSex, vo.getSex()); + } + if (StrUtil.isNotBlank(vo.getLevelId())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getLevelId, vo.getLevelId()); + } + if (StrUtil.isNotBlank(vo.getSubscribeState())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getSubscribeState, vo.getSubscribeState()); + } + if (StrUtil.isNotBlank(vo.getBlacklistState())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getBlacklistState, vo.getBlacklistState()); + } + if (StrUtil.isNotBlank(vo.getViolationState())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getViolationState, vo.getViolationState()); + } + if (StrUtil.isNotBlank(vo.getPurchaseState())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getPurchaseState, vo.getPurchaseState()); + } + if (StrUtil.isNotBlank(vo.getMobilePhoneState())) { + lambdaQueryWrapper.eq(PlayCustomUserInfoEntity::getMobilePhoneState, vo.getMobilePhoneState()); + } + if (vo.getRegistrationTime() != null && vo.getRegistrationTime().size() == 2) { + lambdaQueryWrapper.between(PlayCustomUserInfoEntity::getRegistrationTime, vo.getRegistrationTime().get(0), vo.getRegistrationTime().get(1)); + } + if (vo.getFirstPurchaseTime() != null && vo.getFirstPurchaseTime().size() == 2) { + lambdaQueryWrapper.between(PlayCustomUserInfoEntity::getFirstPurchaseTime, vo.getFirstPurchaseTime().get(0), vo.getFirstPurchaseTime().get(1)); + } + if (vo.getLastPurchaseTime() != null && vo.getLastPurchaseTime().size() == 2) { + lambdaQueryWrapper.between(PlayCustomUserInfoEntity::getLastPurchaseTime, vo.getLastPurchaseTime().get(0), vo.getLastPurchaseTime().get(1)); + } + if (StrUtil.isNotBlank(vo.getSort())) { + if ("levelId".equals(vo.getSort())) { + lambdaQueryWrapper.orderByDesc(PlayCustomUserInfoEntity::getLevelId); + } + if ("accountBalance".equals(vo.getSort())) { + lambdaQueryWrapper.orderByDesc(PlayCustomUserInfoEntity::getAccountBalance); + } + if ("lastPurchaseTime".equals(vo.getSort())) { + lambdaQueryWrapper.orderByDesc(PlayCustomUserInfoEntity::getLastPurchaseTime); + } + } + + + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayCustomUserReturnVo.class, lambdaQueryWrapper); + for (PlayCustomUserReturnVo record : page.getRecords()) { + List orderInfoEntities = playOrderInfoService.customSelectOrderInfoByList(record.getId()); + BigDecimal orderTotalAmount = new BigDecimal("0"); + for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) { + orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount()); + } + record.setOrderNumber(String.valueOf(orderInfoEntities.size())); + record.setOrderTotalAmount(orderTotalAmount); + if (!orderInfoEntities.isEmpty()) { + record.setOrderPrice(String.valueOf(orderTotalAmount.divide(new BigDecimal(orderInfoEntities.size()), 2, RoundingMode.HALF_UP))); + } else { + record.setProvince("0"); + } + + } + return page; + } /** @@ -71,7 +213,7 @@ public class PlayCustomUserInfoServiceImpl extends ServiceImpl { +public interface PlayCustomFollowInfoMapper extends MPJBaseMapper { } diff --git a/play-admin/src/main/java/com/starry/admin/modules/follow/module/entity/PlayCustomFollowInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/follow/module/entity/PlayCustomFollowInfoEntity.java index f53359c..20a36dc 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/follow/module/entity/PlayCustomFollowInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/follow/module/entity/PlayCustomFollowInfoEntity.java @@ -32,12 +32,12 @@ public class PlayCustomFollowInfoEntity extends BaseEntity selectByPage(PlayClerkFollowQueryVo vo); + /** * 查询顾客关注陪聊信息列表 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/follow/service/impl/PlayCustomFollowInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/follow/service/impl/PlayCustomFollowInfoServiceImpl.java index 8aa71f2..f201bf9 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/follow/service/impl/PlayCustomFollowInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/follow/service/impl/PlayCustomFollowInfoServiceImpl.java @@ -1,14 +1,18 @@ package com.starry.admin.modules.follow.service.impl; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.follow.mapper.PlayCustomFollowInfoMapper; import com.starry.admin.modules.follow.module.entity.PlayCustomFollowInfoEntity; import com.starry.admin.modules.follow.service.IPlayCustomFollowInfoService; +import com.starry.admin.modules.weichat.entity.PlayClerkFollowQueryVo; +import com.starry.admin.modules.weichat.entity.PlayClerkFollowReturnVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -41,8 +45,8 @@ public class PlayCustomFollowInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getClerkUserId, clerkUserId); - lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomUserId, customUserId); + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getClerkId, clerkUserId); + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomId, customUserId); PlayCustomFollowInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper); return entity == null ? "0" : entity.getFollowState(); } @@ -50,14 +54,14 @@ public class PlayCustomFollowInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getClerkUserId, clerkUserId); - lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomUserId, customUserId); + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getClerkId, clerkUserId); + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomId, customUserId); PlayCustomFollowInfoEntity entity = this.baseMapper.selectOne(lambdaQueryWrapper); if (entity == null) { entity = new PlayCustomFollowInfoEntity(); - entity.setCustomUserId(customUserId); + entity.setCustomId(customUserId); entity.setFollowState(followState); - entity.setClerkUserId(clerkUserId); + entity.setClerkId(clerkUserId); entity.setFollowTime(new Date()); this.baseMapper.insert(entity); } else { @@ -66,6 +70,30 @@ public class PlayCustomFollowInfoServiceImpl extends ServiceImpl selectByPage(PlayClerkFollowQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() + // 查询主表全部字段 + .selectAll(PlayCustomFollowInfoEntity.class) + // 陪聊用户表全部字段 + .selectAll(PlayClerkUserInfoEntity.class) + // 陪聊用户表 + .leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayCustomFollowInfoEntity::getClerkId); + if (StrUtil.isNotBlank(vo.getCustomId())) { + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getCustomId, vo.getCustomId()); + } + if (StrUtil.isNotBlank(vo.getFollowState())) { + lambdaQueryWrapper.eq(PlayCustomFollowInfoEntity::getFollowState, vo.getFollowState()); + } + IPage iPage = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkFollowReturnVo.class, lambdaQueryWrapper); + for (PlayClerkFollowReturnVo record : iPage.getRecords()) { + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(PlayCustomFollowInfoEntity::getClerkId,record.getClerkId()); + record.setFollowNumber(this.baseMapper.selectList(lambdaQueryWrapper1).size()); + } + return iPage; + } + /** * 查询顾客关注陪聊信息列表 * @@ -87,7 +115,7 @@ public class PlayCustomFollowInfoServiceImpl extends ServiceImpl list = playClerkGiftInfoService.selectPlayClerkGiftInfoByPage(playClerkGiftInfo); + return R.ok(list); + } + + /** + * 获取店员和礼物关系详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playClerkGiftInfoService.selectPlayClerkGiftInfoById(id)); + } + + /** + * 新增店员和礼物关系 + */ + @Log(title = "店员和礼物关系", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayClerkGiftInfoEntity playClerkGiftInfo) { + boolean success = playClerkGiftInfoService.create(playClerkGiftInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改店员和礼物关系 + */ + @Log(title = "店员和礼物关系", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayClerkGiftInfoEntity playClerkGiftInfo) { + playClerkGiftInfo.setId(id); + boolean success = playClerkGiftInfoService.update(playClerkGiftInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除店员和礼物关系 + */ + @Log(title = "店员和礼物关系", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playClerkGiftInfoService.deletePlayClerkGiftInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayClerkGiftInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayClerkGiftInfoMapper.java new file mode 100644 index 0000000..2a03ddb --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayClerkGiftInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.gift.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.gift.module.entity.PlayClerkGiftInfoEntity; + +/** + * 店员和礼物关系Mapper接口 + * + * @author admin + * @since 2024-05-25 + */ +public interface PlayClerkGiftInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayGiftInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayGiftInfoMapper.java index d6017d9..db4e516 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayGiftInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/mapper/PlayGiftInfoMapper.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.gift.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity; /** @@ -10,7 +10,7 @@ import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity; * @author admin * @since 2024-04-25 */ -public interface PlayGiftInfoMapper extends BaseMapper { +public interface PlayGiftInfoMapper extends MPJBaseMapper { } diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayClerkGiftInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayClerkGiftInfoEntity.java new file mode 100644 index 0000000..4ef9756 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayClerkGiftInfoEntity.java @@ -0,0 +1,46 @@ +package com.starry.admin.modules.gift.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员和礼物关系对象 play_clerk_gift_info + * + * @author admin + * @since 2024-05-25 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_gift_info") +public class PlayClerkGiftInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 礼物ID + */ + private String giffId; + + /** + * 礼物数量 + */ + private String giffNumber; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayGiftInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayGiftInfoEntity.java index 0de2858..a7428d5 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayGiftInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/module/entity/PlayGiftInfoEntity.java @@ -1,12 +1,14 @@ package com.starry.admin.modules.gift.module.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.starry.common.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.util.Date; +import java.time.LocalDateTime; /** * 礼物对象 play_gift_info @@ -63,12 +65,16 @@ public class PlayGiftInfoEntity extends BaseEntity { /** * 上架时间 */ - private Date listingTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime listingTime; /** * 下架时间 */ - private Date delintingTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime delintingTime; /** * 备注 diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayClerkGiftInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayClerkGiftInfoService.java new file mode 100644 index 0000000..a4a7818 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayClerkGiftInfoService.java @@ -0,0 +1,72 @@ +package com.starry.admin.modules.gift.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.gift.module.entity.PlayClerkGiftInfoEntity; + +import java.util.List; + +/** + * 店员和礼物关系Service接口 + * + * @author admin + * @since 2024-05-25 + */ +public interface IPlayClerkGiftInfoService extends IService { + + /** + * 根据店员ID查询店员活动礼物列表 + * @param clerkId 店员ID + * @return 店员活动礼物列表 + */ + + List selectBtyClerkId(String clerkId); + + /** + * 查询店员和礼物关系 + * + * @param id 店员和礼物关系主键 + * @return 店员和礼物关系 + */ + PlayClerkGiftInfoEntity selectPlayClerkGiftInfoById(String id); + + /** + * 查询店员和礼物关系列表 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 店员和礼物关系集合 + */ + IPage selectPlayClerkGiftInfoByPage(PlayClerkGiftInfoEntity playClerkGiftInfo); + + /** + * 新增店员和礼物关系 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 结果 + */ + boolean create(PlayClerkGiftInfoEntity playClerkGiftInfo); + + /** + * 修改店员和礼物关系 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 结果 + */ + boolean update(PlayClerkGiftInfoEntity playClerkGiftInfo); + + /** + * 批量删除店员和礼物关系 + * + * @param ids 需要删除的店员和礼物关系主键集合 + * @return 结果 + */ + int deletePlayClerkGiftInfoByIds(String[] ids); + + /** + * 删除店员和礼物关系信息 + * + * @param id 店员和礼物关系主键 + * @return 结果 + */ + int deletePlayClerkGiftInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayGiftInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayGiftInfoService.java index 51b8b7b..a7ef12a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayGiftInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/service/IPlayGiftInfoService.java @@ -3,6 +3,7 @@ package com.starry.admin.modules.gift.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity; +import com.starry.admin.modules.weichat.entity.gift.PlayClerkGiftReturnVo; import java.util.List; @@ -31,6 +32,18 @@ public interface IPlayGiftInfoService extends IService { **/ List listByAll(); + + /** + * 店员查询所有礼物 + * + * @param clerkId 店员ID + * @param obtained 店员获得礼物状态,[0:未获得,1:已获得] + * @return List + * @author admin + * @since 2024/4/25 15:56 + **/ + List clerkListByAll(String clerkId, String obtained); + /** * 查询礼物列表 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayClerkGiftInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayClerkGiftInfoServiceImpl.java new file mode 100644 index 0000000..283a50a --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayClerkGiftInfoServiceImpl.java @@ -0,0 +1,112 @@ +package com.starry.admin.modules.gift.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.gift.mapper.PlayClerkGiftInfoMapper; +import com.starry.admin.modules.gift.module.entity.PlayClerkGiftInfoEntity; +import com.starry.admin.modules.gift.service.IPlayClerkGiftInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * 店员和礼物关系Service业务层处理 + * + * @author admin + * @since 2024-05-25 + */ +@Service +public class PlayClerkGiftInfoServiceImpl extends ServiceImpl implements IPlayClerkGiftInfoService { + @Resource + private PlayClerkGiftInfoMapper playClerkGiftInfoMapper; + + + /** + * 根据店员ID查询店员活动礼物列表 + * + * @param clerkId 店员ID + * @return 店员活动礼物列表 + */ + @Override + public List selectBtyClerkId(String clerkId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayClerkGiftInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + /** + * 查询店员和礼物关系 + * + * @param id 店员和礼物关系主键 + * @return 店员和礼物关系 + */ + @Override + public PlayClerkGiftInfoEntity selectPlayClerkGiftInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询店员和礼物关系列表 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 店员和礼物关系 + */ + @Override + public IPage selectPlayClerkGiftInfoByPage(PlayClerkGiftInfoEntity playClerkGiftInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增店员和礼物关系 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 结果 + */ + @Override + public boolean create(PlayClerkGiftInfoEntity playClerkGiftInfo) { + if (StrUtil.isBlankIfStr(playClerkGiftInfo.getId())) { + playClerkGiftInfo.setId(IdUtils.getUuid()); + } + return save(playClerkGiftInfo); + } + + /** + * 修改店员和礼物关系 + * + * @param playClerkGiftInfo 店员和礼物关系 + * @return 结果 + */ + @Override + public boolean update(PlayClerkGiftInfoEntity playClerkGiftInfo) { + return updateById(playClerkGiftInfo); + } + + /** + * 批量删除店员和礼物关系 + * + * @param ids 需要删除的店员和礼物关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGiftInfoByIds(String[] ids) { + return playClerkGiftInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店员和礼物关系信息 + * + * @param id 店员和礼物关系主键 + * @return 结果 + */ + @Override + public int deletePlayClerkGiftInfoById(String id) { + return playClerkGiftInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayGiftInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayGiftInfoServiceImpl.java index e00ea81..d95e6ba 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayGiftInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/gift/service/impl/PlayGiftInfoServiceImpl.java @@ -1,19 +1,24 @@ package com.starry.admin.modules.gift.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.gift.mapper.PlayGiftInfoMapper; +import com.starry.admin.modules.gift.module.entity.PlayClerkGiftInfoEntity; import com.starry.admin.modules.gift.module.entity.PlayGiftInfoEntity; import com.starry.admin.modules.gift.service.IPlayGiftInfoService; +import com.starry.admin.modules.weichat.entity.gift.PlayClerkGiftReturnVo; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Iterator; import java.util.List; /** @@ -27,6 +32,9 @@ public class PlayGiftInfoServiceImpl extends ServiceImpl clerkListByAll(String clerkId, String obtained) { + if ("0".equals(obtained)) { + //查询所有礼物,然后减去已获得礼物 + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.selectAll(PlayGiftInfoEntity.class); + List list = this.baseMapper.selectJoinList(PlayClerkGiftReturnVo.class, lambdaWrapper); + List clerkGiftInfoEntities = clerkGiftInfoService.selectBtyClerkId(clerkId); + // 使用迭代器安全地移除元素 + Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + PlayClerkGiftReturnVo item = iterator.next(); + for (PlayClerkGiftInfoEntity clerkGiftInfoEntity : clerkGiftInfoEntities) { + if (clerkGiftInfoEntity.getGiffId().equals(item.getId())) { + iterator.remove(); + break; + } + } + + } + return list; + } + if ("1".equals(obtained)) { + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.selectAll(PlayGiftInfoEntity.class); + // 礼物活动表 + lambdaWrapper.selectAs(PlayClerkGiftInfoEntity::getGiffNumber, "giffNumber"); + lambdaWrapper.innerJoin(PlayClerkGiftInfoEntity.class, PlayClerkGiftInfoEntity::getGiffId, PlayGiftInfoEntity::getId); + lambdaWrapper.eq(PlayClerkGiftInfoEntity::getClerkId, clerkId); + lambdaWrapper.eq(PlayClerkGiftInfoEntity::getClerkId, clerkId); + return this.baseMapper.selectJoinList(PlayClerkGiftReturnVo.class, lambdaWrapper); + } + return new ArrayList<>(); + } + @Override public List listByAll() { return this.baseMapper.selectList(new LambdaQueryWrapper<>()); @@ -69,7 +112,7 @@ public class PlayGiftInfoServiceImpl extends ServiceImpl list = playOrderComplaintInfoService.selectByPage(vo); return R.ok(list); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderContinueInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderContinueInfoController.java new file mode 100644 index 0000000..ed10974 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderContinueInfoController.java @@ -0,0 +1,46 @@ +package com.starry.admin.modules.order.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueReturnVo; +import com.starry.admin.modules.order.module.vo.PlayOrderReviewStateEditVo; +import com.starry.admin.modules.order.service.IPlayOrderContinueInfoService; +import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 订单续单信息Controller + * + * @author admin + * @since 2024-05-10 + */ +@RestController +@RequestMapping("/order/continue") +public class PlayOrderContinueInfoController { + @Resource + private IPlayOrderContinueInfoService playOrderContinueInfoService; + + /** + * 查询订单续单信息列表 + */ + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayOrderContinueQueryVo vo) { + IPage list = playOrderContinueInfoService.selectPlayByPage(vo); + return R.ok(list); + } + + /** + * 审批续单申申请 + */ + @PostMapping("/updateReviewState") + public R updateReviewState(@Validated @RequestBody PlayOrderReviewStateEditVo vo) { + playOrderContinueInfoService.updateReviewState(vo); + return R.ok("成功"); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderEvaluateInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderEvaluateInfoController.java index 9f1c234..2b23760 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderEvaluateInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderEvaluateInfoController.java @@ -2,7 +2,7 @@ package com.starry.admin.modules.order.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; -import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateEditVo; +import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateEditStateVo; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo; import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService; @@ -10,6 +10,7 @@ import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; import com.starry.common.utils.ConvertUtil; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -29,53 +30,20 @@ public class PlayOrderEvaluateInfoController { /** * 查询订单评价信息列表 */ - @PostMapping("/list") - public R list(@RequestBody PlayOrderEvaluateQueryVo vo) { + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayOrderEvaluateQueryVo vo) { IPage list = playOrderEvaluateInfoService.selectByPage(vo); return R.ok(list); } - /** - * 获取订单评价信息详细信息 - */ - @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") String id) { - return R.ok(playOrderEvaluateInfoService.selectPlayOrderEvaluateInfoById(id)); - } - /** - * 新增订单评价信息 - */ - @Log(title = "订单评价信息", businessType = BusinessType.INSERT) - @PostMapping("/create") - public R create(@RequestBody PlayOrderEvaluateInfoEntity playOrderEvaluateInfo) { - boolean success = playOrderEvaluateInfoService.create(playOrderEvaluateInfo); - if (success) { - return R.ok(); - } - return R.error("添加失败"); - } - - /** - * 修改订单评价信息 - */ - @Log(title = "订单评价信息", businessType = BusinessType.UPDATE) - @PostMapping(value = "/update/{id}") - public R update(@PathVariable String id, @RequestBody PlayOrderEvaluateInfoEntity playOrderEvaluateInfo) { - playOrderEvaluateInfo.setId(id); - boolean success = playOrderEvaluateInfoService.update(playOrderEvaluateInfo); - if (success) { - return R.ok(); - } - return R.error("修改失败"); - } /** * 修改订单评价信息 */ @Log(title = "修改订单评价状态", businessType = BusinessType.UPDATE) @PostMapping(value = "/updateStatus") - public R update(@RequestBody PlayOrderEvaluateEditVo vo) { + public R update(@Validated @RequestBody PlayOrderEvaluateEditStateVo vo) { PlayOrderEvaluateInfoEntity entity = ConvertUtil.entityToVo(vo, PlayOrderEvaluateInfoEntity.class); boolean success = playOrderEvaluateInfoService.update(entity); if (success) { diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderInfoController.java index c8c7774..d3adb51 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderInfoController.java @@ -6,6 +6,7 @@ import com.starry.admin.modules.order.service.IPlayOrderInfoService; import com.starry.common.annotation.Log; import com.starry.common.enums.BusinessType; import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -27,8 +28,8 @@ public class PlayOrderInfoController { /** * 分页查询订单列表 */ - @GetMapping("/list") - public R list(PlayOrderInfoQueryVo vo) { + @PostMapping("/listByPage") + public R list(@Validated @RequestBody PlayOrderInfoQueryVo vo) { return R.ok(orderInfoService.selectOrderInfoPage(vo)); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRefundInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRefundInfoController.java new file mode 100644 index 0000000..bed66c1 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRefundInfoController.java @@ -0,0 +1,80 @@ +package com.starry.admin.modules.order.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.modules.order.module.entity.PlayOrderRefundInfoEntity; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundReturnVo; +import com.starry.admin.modules.order.service.IPlayOrderRefundInfoService; +import com.starry.common.annotation.Log; +import com.starry.common.enums.BusinessType; +import com.starry.common.result.R; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 订单退款信息Controller + * + * @author admin + * @since 2024-05-09 + */ +@RestController +@RequestMapping("/order/refund") +public class PlayOrderRefundInfoController { + @Resource + private IPlayOrderRefundInfoService playOrderRefundInfoService; + + /** + * 查询订单退款信息列表 + */ + @PostMapping("/list") + public R list(@Validated @RequestBody PlayOrderRefundQueryVo vo) { + IPage list = playOrderRefundInfoService.selectByPage(vo); + return R.ok(list); + } + + /** + * 获取订单退款信息详细信息 + */ + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") String id) { + return R.ok(playOrderRefundInfoService.selectPlayOrderRefundInfoById(id)); + } + + /** + * 新增订单退款信息 + */ + @Log(title = "订单退款信息", businessType = BusinessType.INSERT) + @PostMapping("/create") + public R create(@RequestBody PlayOrderRefundInfoEntity playOrderRefundInfo) { + boolean success = playOrderRefundInfoService.create(playOrderRefundInfo); + if (success) { + return R.ok(); + } + return R.error("添加失败"); + } + + /** + * 修改订单退款信息 + */ + @Log(title = "订单退款信息", businessType = BusinessType.UPDATE) + @PostMapping(value = "/update/{id}") + public R update(@PathVariable String id, @RequestBody PlayOrderRefundInfoEntity playOrderRefundInfo) { + playOrderRefundInfo.setId(id); + boolean success = playOrderRefundInfoService.update(playOrderRefundInfo); + if (success) { + return R.ok(); + } + return R.error("修改失败"); + } + + /** + * 删除订单退款信息 + */ + @Log(title = "订单退款信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playOrderRefundInfoService.deletePlayOrderRefundInfoByIds(ids)); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRewardInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRewardInfoController.java index c019158..caf939f 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRewardInfoController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/controller/PlayOrderRewardInfoController.java @@ -32,7 +32,7 @@ public class PlayOrderRewardInfoController { @Log(title = "查询打赏订单", businessType = BusinessType.INSERT) - @PostMapping("/list") + @PostMapping("/listByPage") public R queryRewardOrder(@RequestBody PlayOrderRewardQueryVo vo) { IPage page = orderInfoService.selectRewardOrderInfoByPage(vo); return R.ok(page); diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderContinueInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderContinueInfoMapper.java new file mode 100644 index 0000000..d470aaa --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderContinueInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.order.mapper; + + +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.order.module.entity.PlayOrderContinueInfoEntity; + +/** + * 订单续单信息Mapper接口 + * + * @author admin + * @since 2024-05-10 + */ +public interface PlayOrderContinueInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRandomInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRandomInfoMapper.java new file mode 100644 index 0000000..23163db --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRandomInfoMapper.java @@ -0,0 +1,17 @@ +package com.starry.admin.modules.order.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.order.module.entity.PlayOrderRandomInfoEntity; + +/** + * 随机单列表Mapper接口 + * + * @author admin + * @since 2024-05-29 + */ +public interface PlayOrderRandomInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRefundInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRefundInfoMapper.java new file mode 100644 index 0000000..5e27c50 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/mapper/PlayOrderRefundInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.order.mapper; + + +import com.github.yulichang.base.MPJBaseMapper; +import com.starry.admin.modules.order.module.entity.PlayOrderRefundInfoEntity; + +/** + * 订单退款信息Mapper接口 + * + * @author admin + * @since 2024-05-09 + */ +public interface PlayOrderRefundInfoMapper extends MPJBaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderComplaintInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderComplaintInfoEntity.java index 1acb9b1..b81a22a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderComplaintInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderComplaintInfoEntity.java @@ -47,6 +47,11 @@ public class PlayOrderComplaintInfoEntity extends BaseEntity { + + + /** + * uuid + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 订单ID + */ + private String orderId; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 顾客ID + */ + private String customId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 下单金额 + */ + private BigDecimal orderMoney; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 申请消息 + */ + private String continueMsg; + + /** + * 截图 + */ + @TableField(typeHandler = StringTypeHandler.class) + private List images; + + /** + * 是否需要审核,0:不需要,1:需要 + */ + private String reviewedRequired; + + /** + * 审核状态(0:未审核,1:已通过,2:不通过) + */ + private String reviewedState; + + /** + * 审核人 + */ + private String reviewedBy; + + /** + * 审核时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime reviewedTime; + + /** + * 审核内容 + */ + private String reviewedRemark; + + /** + * 申请时间 + */ +// @TableField(typeHandler = CustomDateTimeTypeHandler.class) + + private String continueTime; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderEvaluateInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderEvaluateInfoEntity.java index ae74e54..3346d49 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderEvaluateInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderEvaluateInfoEntity.java @@ -44,6 +44,11 @@ public class PlayOrderEvaluateInfoEntity extends BaseEntity { */ private String id; + + /** + * 订单编号 + */ + private String orderNo; + /** * 租户ID */ private String tenantId; /** - * 订单状态【0:1:2:3:4:5】 + * 订单状态【0:1:2:3:4】 * 0:已下单(待接单) * 1:已接单(待开始) * 2:已开始(服务中) @@ -50,14 +55,19 @@ public class PlayOrderInfoEntity extends BaseEntity { private String orderType; /** - * 下单类型(0:指定单,1:随机单。2:打赏单) + * 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) */ private String placeType; + /** + * 打赏类型(0:余额;1:礼物) + */ + private String rewardType; + /** * 是否是首单【0:不是,1:是】 */ - private Boolean firstOrder; + private String firstOrder; /** * 退款类型【0:未退款,1:部分退款,2:全部退款】 @@ -79,15 +89,30 @@ public class PlayOrderInfoEntity extends BaseEntity { private BigDecimal commodityPrice; /** - * 商品数量 - */ - private int commodityNumber; + * 商品属性-服务时长 + **/ + private String serviceDuration; /** - * 优惠券列表 + * 商品名称 */ - @TableField(typeHandler = StringTypeHandler.class) - private List couponIds; + private String commodityName; + + /** + * 商品数量 + */ + private String commodityNumber; + + + /** + * 是否使用优惠券[0:未使用,1:已使用] + */ + private String useCoupon; + + /** + * 是否是客服录入订单[0:不是,1:是] + */ + private String backendEntry; /** * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 @@ -104,7 +129,6 @@ public class PlayOrderInfoEntity extends BaseEntity { */ private String payMsg; - /** * 订单金额 */ @@ -112,10 +136,24 @@ public class PlayOrderInfoEntity extends BaseEntity { /** - * 订单最终金额 + * 订单最终金额(支付金额) */ private BigDecimal finalAmount; + + /** + * 店员预计收入 + */ + private BigDecimal estimatedRevenue; + + + /** + * 优惠金额 + * + * @since 2024/5/13 11:45 + **/ + private BigDecimal discountAmount; + /** * 下单人 */ @@ -124,7 +162,14 @@ public class PlayOrderInfoEntity extends BaseEntity { /** * 下单时间 */ - private Date purchaserTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime purchaserTime; + + /** + * 微信号码 + */ + private String weiChatCode; /** * 是否需要审核,0:不需要,1:需要 @@ -144,7 +189,9 @@ public class PlayOrderInfoEntity extends BaseEntity { /** * 审核时间 */ - private Date reviewedTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime reviewedTime; /** * 审核内容 @@ -159,7 +206,30 @@ public class PlayOrderInfoEntity extends BaseEntity { /** * 接单时间 */ - private Date acceptTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime acceptTime; + + /** + * 开始时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime orderStartTime; + + /** + * 结束时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime orderEndTime; + + /** + * 取消时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime orderCancelTime; /** @@ -168,4 +238,37 @@ public class PlayOrderInfoEntity extends BaseEntity { private String remark; + /** + * 订单结算状态(0:未结算;1:已结算) + */ + private String orderSettlementState; + + /** + * 订单结算时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime orderSettlementTime; + + /** + * 订单超时状态(0:未超时;1:已超时) + */ + private String ordersExpiredState; + + public PlayOrderInfoEntity() { + + + } + + public PlayOrderInfoEntity(String id, String orderStatus) { + this.id = id; + this.orderStatus = orderStatus; + } + + public PlayOrderInfoEntity(String id, String orderStatus, String orderType, String placeType) { + this.id = id; + this.orderStatus = orderStatus; + this.orderType = orderType; + this.placeType = placeType; + } } \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRandomInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRandomInfoEntity.java new file mode 100644 index 0000000..41f7957 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRandomInfoEntity.java @@ -0,0 +1,97 @@ +package com.starry.admin.modules.order.module.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.admin.common.conf.StringTypeHandler; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 随机单列表对象 play_order_random_info + * + * @author admin + * @since 2024-05-29 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName(value = "play_order_random_info", autoResultMap = true) +public class PlayOrderRandomInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 店员性别(0:未知;1:男;2:女) + */ + private String sex; + + /** + * 店员等级ID + */ + private String levelId; + + /** + * 标签列表 + */ + @TableField(typeHandler = StringTypeHandler.class) + private List labels; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 商品属性-服务时长 + **/ + private String serviceDuration; + + /** + * 商品名称 + */ + private String commodityName; + + /** + * 商品数量 + */ + private String commodityNumber; + + /** + * 微信号 + */ + private String weiChatCode; + + /** + * 是否排除下单过的成员(0:不排除;1:排除) + */ + private String excludeHistory; + + /** + * 备注 + */ + private String remark; + + /** + * 下单人 + */ + private String purchaserBy; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRefundInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRefundInfoEntity.java new file mode 100644 index 0000000..99c8f83 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderRefundInfoEntity.java @@ -0,0 +1,119 @@ +package com.starry.admin.modules.order.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 订单退款信息对象 play_order_refund_info + * + * @author admin + * @since 2024-05-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_order_refund_info") +public class PlayOrderRefundInfoEntity extends BaseEntity { + + + /** + * uuid + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 订单ID + */ + private String orderId; + + /** + * 顾客ID + */ + private String customId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 支付方式,[0:余额支付;1:微信支付,2:支付宝支付] + */ + private String payMethod; + + /** + * 是否使用优惠券[0:未使用,1:已使用] + */ + private String useCoupon; + + /** + * 退款类型【0:部分退款;1:全部退款】 + */ + private String refundType; + + /** + * 退款金额 + */ + private BigDecimal refundAmount; + + /** + * 退款原因 + */ + private String refundReason; + + /** + * 退款人类型[0:顾客;1:店员;2:管理员] + */ + private String refundByType; + + /** + * 退款人ID + */ + private String refundById; + + /** + * 截图 + */ + private String images; + + /** + * 退款状态[-1:异常;0:处理中;1:成功;2:关闭] + */ + private String refundState; + + /** + * 是否需要审核,0:不需要,1:需要 + */ + private String reviewedRequired; + + /** + * 审核状态(0:未审核,1:已通过,2:不通过) + */ + private String reviewedState; + + /** + * 审核人 + */ + private String reviewedBy; + + /** + * 审核时间 + */ + private Date reviewedTime; + + /** + * 审核内容 + */ + private String reviewedRemark; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/OrderInfoAddVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/OrderInfoAddVo.java index c2b1b3a..0616e3a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/OrderInfoAddVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/OrderInfoAddVo.java @@ -28,13 +28,12 @@ public class OrderInfoAddVo extends BaseEntity { private String tenantId; /** - * 订单状态【0:1:2:3:4:5】 + * 订单状态【0:1:2:3:4】 * 0:已下单 - * 1:已审核(退款 或者 提现需要审核,其余不需要) - * 2:已接单 - * 3:已开始 - * 4:已完成 - * 5:已取消 + * 1:已接单 + * 2:已开始 + * 3:已完成 + * 4:已取消 */ private String orderStatus = String.valueOf(0); diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintQueryVo.java index 3fad9a8..b80e174 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintQueryVo.java @@ -5,6 +5,8 @@ import com.starry.common.domain.BasePageEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 订单投诉查询对象 * @@ -14,5 +16,39 @@ import lombok.EqualsAndHashCode; @Data public class PlayOrderComplaintQueryVo extends BasePageEntity { + /** + * 数据ID + */ + private String id; + /** + * 订单ID + */ + private String orderId; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 顾客ID + */ + private String customId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 微信号码 + */ + private String weiChatCode; + + /** + * 投诉时间 + */ + private List complaintTime; + } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintReturnVo.java index e80c087..4aa9f00 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderComplaintReturnVo.java @@ -1,8 +1,11 @@ package com.starry.admin.modules.order.module.vo; +import com.baomidou.mybatisplus.annotation.TableField; +import com.starry.admin.common.conf.StringTypeHandler; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -72,10 +75,58 @@ public class PlayOrderComplaintReturnVo { /** * 图片列表 */ + @TableField(typeHandler = StringTypeHandler.class) private String images; /** * 数据是否隐藏(0:未隐藏,1:隐藏) */ private String hidden; + + /** + * 订单号 + */ + private String orderNo; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 服务项目ID + */ + private String commodityId; + + /** + * 项目类型 + */ + private String commodityType; + + /** + * 项目名称 + */ + private String commodityName; + + /** + * 项目价格 + */ + private BigDecimal commodityPrice; + + /** + * 商品数量 + */ + private String commodityNumber; + + /** + * 服务时长(文字描述信息,不参与订单计算) + */ + private String serviceDuration; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueQueryVo.java new file mode 100644 index 0000000..8831384 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueQueryVo.java @@ -0,0 +1,44 @@ +package com.starry.admin.modules.order.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 续单分页查询对象 + * + * @author admin + * @since 2024/5/10 14:59 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayOrderContinueQueryVo extends BasePageEntity { + + private String nickname; + + + /** + * 顾客ID + */ + private String customId; + + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 审核状态(0:未审核,1:已通过,2:不通过) + */ + private String reviewState; + + /** + * 申请时间 + */ + private List continueTime; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueReturnVo.java new file mode 100644 index 0000000..244f2b1 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderContinueReturnVo.java @@ -0,0 +1,123 @@ +package com.starry.admin.modules.order.module.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 续单查询返回对象 + * + * @author admin + * @since 2024/5/10 14:59 + **/ +@Data +public class PlayOrderContinueReturnVo { + + private String id; + + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员昵称 + */ + private String clerkAvatar; + + /** + * 店员性别 + */ + private String clerkSex; + + /** + * 顾客ID + */ + private String customerId; + + + /** + * 用户等级名称 + */ + private String levelName; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 商品名称 + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 下单金额 + */ + private BigDecimal orderMoney; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 申请消息 + */ + private String continueMsg; + + /** + * 截图 + */ + private List images; + + /** + * 是否需要审核,0:不需要,1:需要 + */ + private String reviewedRequired; + + /** + * 审核状态(0:未审核,1:已通过,2:不通过) + */ + private String reviewedState; + + /** + * 审核内容 + */ + private String reviewedRemark; + + /** + * 申请时间 + */ + private Date continueTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java index 6ed34ed..6143862 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.order.module.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -13,12 +13,13 @@ import java.util.Date; * @since 2024-03-20 */ @Data -@EqualsAndHashCode(callSuper = false) public class PlayOrderDetailsReturnVo { private String id; + private String orderNo; + /** * 用户ID */ @@ -55,8 +56,28 @@ public class PlayOrderDetailsReturnVo { /** * 下单时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date purchaserTime; + + /** + * 接单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date acceptTime = new Date(); + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime = new Date(); + + /** + * 结束时间时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime = new Date(); + /** * 订单金额 */ @@ -80,7 +101,7 @@ public class PlayOrderDetailsReturnVo { private String commodityType; /** - * 商品类型[0:礼物,1:服务] + * 商品名称 */ private String commodityName; /** @@ -89,7 +110,7 @@ public class PlayOrderDetailsReturnVo { private BigDecimal commodityPrice; /** - * 服务市场 + * 服务时长 * * @since 2024/5/8 16:44 **/ @@ -132,4 +153,10 @@ public class PlayOrderDetailsReturnVo { private String remark; + /** + * 是否评价(1:已评价;0:未评价) + */ + private String evaluate = "0"; + + } \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditStateVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditStateVo.java new file mode 100644 index 0000000..8b72c1d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditStateVo.java @@ -0,0 +1,29 @@ +package com.starry.admin.modules.order.module.vo; + + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * 订单评价状态修改对象 + * + * @author admin + */ +@Data +public class PlayOrderEvaluateEditStateVo { + + /** + * UUID + */ + @NotBlank(message = "id不能为空") + private String id; + + /** + * 数据是否隐藏(0:未隐藏,1:隐藏) + */ + @NotBlank(message = "是否隐藏不能为空") + @Pattern(regexp = "[01]", message = "是否隐藏数据错误,只能位0或者1") + private String hidden; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditVo.java deleted file mode 100644 index 5cc3308..0000000 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateEditVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.starry.admin.modules.order.module.vo; - - -import lombok.Data; - -import javax.validation.constraints.NotBlank; - -/** - * 订单评价查询对象 - * - * @author admin - */ -@Data -public class PlayOrderEvaluateEditVo { - - @NotBlank(message = "ID不能为空") - private String id; - - - /** - * 数据是否隐藏(0:未隐藏,1:隐藏) - */ - private String hidden; -} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateQueryVo.java index 53b6283..58579fc 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateQueryVo.java @@ -5,6 +5,8 @@ import com.starry.common.domain.BasePageEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 订单评价查询对象 * @@ -13,4 +15,39 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) @Data public class PlayOrderEvaluateQueryVo extends BasePageEntity { + + /** + * UUID + */ + private String id; + + /** + * 顾客ID + */ + private String customId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 评价内容 + */ + private String evaluateCon; + + /** + * 匿名评价(0:匿名,1:非匿名) + */ + private String anonymous; + + /** + * 评价时间 + */ + private List evaluateTime; + + /** + * 数据是否隐藏(0:未隐藏,1:隐藏) + */ + private String hidden; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateReturnVo.java index abbae6a..77e9f0a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderEvaluateReturnVo.java @@ -1,8 +1,10 @@ package com.starry.admin.modules.order.module.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -45,6 +47,8 @@ public class PlayOrderEvaluateReturnVo { /** * 评价时间 */ + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date evaluateTime; /** @@ -52,7 +56,6 @@ public class PlayOrderEvaluateReturnVo { */ private String hidden; - /** * 顾客ID */ @@ -82,4 +85,57 @@ public class PlayOrderEvaluateReturnVo { * 顾客头像 */ private String clerkAvatar; + + /** + * 点赞数 + */ + private int likeCount = 10; + + + /** + * 订单号 + */ + private String orderNo; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 服务项目ID + */ + private String commodityId; + + /** + * 项目类型 + */ + private String commodityType; + + /** + * 项目名称 + */ + private String commodityName; + + /** + * 项目价格 + */ + private BigDecimal commodityPrice; + + /** + * 商品数量 + */ + private String commodityNumber; + + /** + * 服务时长(文字描述信息,不参与订单计算) + */ + private String serviceDuration; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoQueryVo.java index 4c41d3a..7998bc5 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoQueryVo.java @@ -4,7 +4,7 @@ import com.starry.common.domain.BasePageEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import java.util.List; /** * 订单查询对象 @@ -16,46 +16,63 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class PlayOrderInfoQueryVo extends BasePageEntity { - /** - * 租户ID + * uuid */ - private String tenantId; + private String id; /** - * 订单状态【0:1:2:3:4:5】 - * 0:已下单 - * 1:已接单 - * 2:已开始 + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) * 3:已完成 * 4:已取消 */ private String orderStatus; /** - * 订单类型【0:充值订单;1:提现订单;2:普通订单】 + * 订单类型【-1:退款订单;0:充值订单;1:提现订单;2:普通订单】 */ - private String orderType; + private String orderType = "2"; /** - * 下单类型(0:指定单,1:随机单。2:打赏单) + * 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) */ private String placeType; /** - * 是否是首单【0:不是;1:是】 + * 是否是首单【0:不是,1:是】 */ - private Integer firstOrder; + private String firstOrder; /** - * 退款类型【0:未退款,1:部分退款,2:全部退款】 + * 是否使用优惠券[0:未使用,1:已使用] */ - private String refundType; + private String useCoupon; /** - * 订单金额 + * 是否是客服录入订单[0:不是,1:是] */ - private String orderMoney; + private String backendEntry; + + + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + + /** + * 微信号码 + */ + private String weiChatCode; + /** * 下单人 @@ -65,22 +82,28 @@ public class PlayOrderInfoQueryVo extends BasePageEntity { /** * 下单时间 */ - private Date purchaserTime; + private List purchaserTime; /** - * 审核人 + * 接单人 */ - private String reviewedBy; + private String acceptBy; /** - * 审核时间 + * 接单时间 */ - private Date reviewedTime; + private List acceptTime; + /** - * 审核内容 + * 开始订单时间(开始服务时间) */ - private String reviewedRemark; + private List startOrderTime; + + /** + * 完成订单时间(开始服务时间) + */ + private List endOrderTime; } \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java index ead0250..16e8c91 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.order.module.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -13,7 +13,6 @@ import java.util.Date; * @since 2024-03-20 */ @Data -@EqualsAndHashCode(callSuper = false) public class PlayOrderInfoReturnVo { @@ -29,13 +28,14 @@ public class PlayOrderInfoReturnVo { */ private String customNickname; - /** * 用户头像 */ private String customAvatar; + private String orderNo; + /** * 店员ID */ @@ -55,18 +55,42 @@ public class PlayOrderInfoReturnVo { /** * 下单时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date purchaserTime; + /** + * 接单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date acceptTime; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + + /** + * 取消时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + /** * 订单金额 */ private BigDecimal orderMoney; - /** - * 订单最终金额 + * 退款类型【0:未退款,1:部分退款,2:全部退款】 */ - private BigDecimal finalAmount; + private String refundType; /** @@ -89,7 +113,7 @@ public class PlayOrderInfoReturnVo { private BigDecimal commodityPrice; /** - * 服务市场 + * 服务时长 * * @since 2024/5/8 16:44 **/ @@ -115,5 +139,26 @@ public class PlayOrderInfoReturnVo { */ private String placeType; + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 订单备注 + */ + private String remark; + } \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundQueryVo.java new file mode 100644 index 0000000..94521b4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundQueryVo.java @@ -0,0 +1,14 @@ +package com.starry.admin.modules.order.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author admin + * @since 2024/5/9 下午11:10 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayOrderRefundQueryVo extends BasePageEntity { +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundReturnVo.java new file mode 100644 index 0000000..b8292f2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRefundReturnVo.java @@ -0,0 +1,8 @@ +package com.starry.admin.modules.order.module.vo; + +/** + * @author admin + * @since 2024/5/9 下午11:10 + **/ +public class PlayOrderRefundReturnVo { +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderReviewStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderReviewStateEditVo.java new file mode 100644 index 0000000..b628c4f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderReviewStateEditVo.java @@ -0,0 +1,30 @@ +package com.starry.admin.modules.order.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * 续单申请审批状态修改对象 + * + * @author admin + * @since 2024/5/10 14:59 + **/ +@Data +public class PlayOrderReviewStateEditVo { + + + @NotBlank(message = "ID不能为空") + private String id; + + /** + * 审核状态(0:未审核,1:已通过,2:不通过) + */ + @NotBlank(message = "审核状态不能为空") + @Pattern(regexp = "[12]", message = "审核状态必须为1或2") + private String reviewState; + + + private String remark; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRewardQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRewardQueryVo.java index d4f1b22..25d315b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRewardQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderRewardQueryVo.java @@ -5,12 +5,55 @@ import com.starry.common.domain.BasePageEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 打赏订单查询对象 + * @author admin */ @EqualsAndHashCode(callSuper = true) @Data public class PlayOrderRewardQueryVo extends BasePageEntity { + /** + * UUID + */ + private String id; + + /** + * 顾客ID + */ + private String purchaserBy; + + /** + * 店员ID + */ + private String acceptBy; + + /** + * 打赏留言 + */ + private String rewardCon; + + /** + * 打赏类型(0:打赏礼物,1:自定义金额) + */ + private String rewardType; + + /** + * 礼物ID + */ + + private String commodityId; + + /** + * 打赏时间 + */ + private List purchaserTime; + + /** + * 数据是否隐藏(0:未隐藏,1:隐藏) + */ + private String hidden; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderStateEditVo.java new file mode 100644 index 0000000..c14aa7f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderStateEditVo.java @@ -0,0 +1,34 @@ +package com.starry.admin.modules.order.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.ArrayList; +import java.util.List; + +/** + * 订单状态修改对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +public class PlayOrderStateEditVo { + + + /** + * 订单ID + */ + @NotBlank(message = "订单ID不能为空") + private String orderId; + + /** + * 取消原因 + */ + @NotBlank(message = "取消原因不能为空") + private String refundReason; + + private List images = new ArrayList<>(); + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderContinueInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderContinueInfoService.java new file mode 100644 index 0000000..98c0a66 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderContinueInfoService.java @@ -0,0 +1,90 @@ +package com.starry.admin.modules.order.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.order.module.entity.PlayOrderContinueInfoEntity; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueReturnVo; +import com.starry.admin.modules.order.module.vo.PlayOrderReviewStateEditVo; + +/** + * 订单续单信息Service接口 + * + * @author admin + * @since 2024-05-10 + */ +public interface IPlayOrderContinueInfoService extends IService { + + + /** + * 根据订单ID查询订单续单信息 + * + * @param orderId 订单ID + * @return 订单续单信息 + */ + PlayOrderContinueInfoEntity selectPlayOrderId(String orderId); + + /** + * 查询订单续单信息 + * + * @param id 订单续单信息主键 + * @return 订单续单信息 + */ + PlayOrderContinueInfoEntity selectPlayOrderContinueInfoById(String id); + + /** + * 分页查询订单续单对象 + * + * @param vo 订单续单对象查询对象 + * @return 订单续单信息集合 + */ + IPage selectPlayByPage(PlayOrderContinueQueryVo vo); + + + /** + * 修改续单审核状态 + * @param vo 续单审核申请对象 + */ + void updateReviewState(PlayOrderReviewStateEditVo vo); + + + /** + * 查询订单续单信息列表 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 订单续单信息集合 + */ + IPage selectPlayOrderContinueInfoByPage(PlayOrderContinueInfoEntity playOrderContinueInfo); + + /** + * 新增订单续单信息 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 结果 + */ + boolean create(PlayOrderContinueInfoEntity playOrderContinueInfo); + + /** + * 修改订单续单信息 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 结果 + */ + boolean update(PlayOrderContinueInfoEntity playOrderContinueInfo); + + /** + * 批量删除订单续单信息 + * + * @param ids 需要删除的订单续单信息主键集合 + * @return 结果 + */ + int deletePlayOrderContinueInfoByIds(String[] ids); + + /** + * 删除订单续单信息信息 + * + * @param id 订单续单信息主键 + * @return 结果 + */ + int deletePlayOrderContinueInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderEvaluateInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderEvaluateInfoService.java index d9be3db..598bfd1 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderEvaluateInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderEvaluateInfoService.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo; +import com.starry.admin.modules.weichat.entity.evaluate.PlayCustomOrderEvaluateReturnVo; + +import java.util.List; /** * 订单评价信息Service接口 @@ -13,6 +16,8 @@ import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo; * @since 2024-05-07 */ public interface IPlayOrderEvaluateInfoService extends IService { + + /** * 查询订单评价信息 * @@ -22,6 +27,26 @@ public interface IPlayOrderEvaluateInfoService extends IService selectByList(PlayOrderEvaluateInfoEntity entity); + + /** * 分页查询订单评价列表 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java index 582c513..bc9dc8b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java @@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.vo.*; +import com.starry.admin.modules.weichat.entity.order.*; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; /** * 订单Service接口 @@ -21,58 +25,151 @@ public interface IPlayOrderInfoService extends IService { /** * 新增充值单 * + * @param orderNo 订单编号 + * @param orderMoney 订单金额 + * @param finalAmount 订单最终金额(支付金额) + * @param purchaserBy 下单人ID + */ + void createRechargeOrder(String orderNo, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy); + + + /** + * 新增订单信息 + * + * @param orderId 订单ID + * @param orderNo 订单编号 + * @param orderState 订单状态【0:已下单(待接单);1:已接单(待开始);2:已开始(服务中);3;已完成:4:已取消】 + * @param orderType 订单类型【-1:退款订单;0:充值订单;1:提现订单;2:普通订单】 + * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) + * @param rewardType (0:余额;1:礼物) + * @param firstOrder 是否是首单【0:不是,1:是】 + * @param commodityId 商品ID + * @param commodityType 商品类型[0:礼物,1:服务] + * @param commodityPrice 商品属性-商品单价 + * @param serviceDuration 商品属性-服务时长 + * @param commodityName 商品名称 + * @param commodityNumber 商品数量 + * @param orderMoney 订单金额 + * @param finalAmount 订单最终金额(支付金额) + * @param discountAmount 优惠金额 + * @param purchaserBy 下单人 + * @param acceptBy 接单人 + * @param weiChatCode 订单微信号码 + * @param remark 订单备注 + * @author 杭州世平信息科技有限公司-xuhq + * @since 2024/6/3 10:53 + **/ + void createOrderInfo(String orderId, String orderNo, String orderState, String orderType, String placeType, String rewardType, String firstOrder, String commodityId, String commodityType, BigDecimal commodityPrice, String serviceDuration, String commodityName, String commodityNumber, BigDecimal orderMoney, BigDecimal finalAmount, BigDecimal discountAmount, String purchaserBy, String acceptBy, String weiChatCode, String remark); + + + /** + * 根据店员等级和订单金额,获取店员预计收入 + * + * @param clerkId 店员ID + * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) + * @param firstOrder 是否是首单【0:不是,1:是】 + * @param finalAmount 订单支付金额 + * @return math.BigDecimal 店员预计收入 + * @author 杭州世平信息科技有限公司-xuhq + * @since 2024/6/3 11:12 + **/ + BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal finalAmount); + /** + * 新增打赏单 + * * @param orderId 订单ID * @param orderMoney 订单金额 * @param finalAmount 订单最终金额(支付金额) * @param purchaserBy 下单人ID + * @param acceptBy 接单人ID + * @param remark 订单备注 + * @param weiChatCode 微信号码 */ - void createRechargeOrder(String orderId, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy); - - - /** - * 新增打赏单 - * - * @param orderMoney 订单金额 - * @param finalAmount 订单最终金额(支付金额) - * @param purchaserBy 下单人ID - */ - void createRewardOrder(BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy); + void createRewardOrder(String orderId, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy, String acceptBy, String remark, String weiChatCode); /** * 新增赠送礼物订单 * + * @param orderId 订单ID * @param commodityId 商品ID(礼物ID) * @param commodityPrice 商品单价(礼物单价) * @param commodityNumber 商品数量(礼物数量) * @param orderMoney 订单金额 * @param finalAmount 订单最终金额(支付金额) * @param purchaserBy 下单人ID + * @param acceptBy 接单人ID + * @param remark 订单备注 + * @param weiChatCode 微信号码 */ - void createGiftOrder(String commodityId, BigDecimal commodityPrice, int commodityNumber, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy); + void createGiftOrder(String orderId, String commodityId, BigDecimal commodityPrice, String commodityNumber, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy, String acceptBy, String remark, String weiChatCode); /** - * 新增普通订单 + * 新增指定订单 * - * @param orderStatus 订单状态【0:1:2:3:4:5】 - * * 0:已下单 - * * 1:已审核(退款 或者 提现需要审核,其余不需要) - * * 2:已接单 - * * 3:已开始 - * * 4:已完成 - * * 5:已取消 - * @param placeType 下单类型(0:指定单,1:随机单。2:打赏单) + * @param orderId 订单ID * @param commodityId 商品ID * @param commodityPrice 商品单价 * @param commodityNumber 商品数量 + * @param serviceDuration 服务时长 + * @param commodityName 商品名称 * @param orderMoney 订单金额 * @param finalAmount 订单最终金额(支付金额) * @param purchaserBy 下单人ID + * @param acceptBy 接单人ID + * @param remark 订单备注 + * @param weiChatCode 微信号码 */ - void createOrdinaryOrder(String orderStatus, String placeType, String commodityId, BigDecimal commodityPrice, int commodityNumber, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy); + void createOrdinaryOrder(String orderId, String commodityId, BigDecimal commodityPrice, String commodityNumber, String serviceDuration, String commodityName, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy, String acceptBy, String remark, String weiChatCode); + /** + * 新增指定订单 + * + * @param orderId 订单ID + * @param commodityId 商品ID + * @param commodityPrice 商品单价 + * @param commodityNumber 商品数量 + * @param serviceDuration 服务时长 + * @param commodityName 商品名称 + * @param orderMoney 订单金额 + * @param finalAmount 订单最终金额(支付金额) + * @param purchaserBy 下单人ID + * @param remark 订单备注 + * @param weiChatCode 微信号码 + */ + void createRandomOrder(String orderId, String commodityId, BigDecimal commodityPrice, String commodityNumber, String serviceDuration, String commodityName, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy, String remark, String weiChatCode); + + + /** + * 查询未结算订单 + * + * @param clerkId 店员ID + * @return List + */ + List queryNotSettlementOrder(String clerkId); + + + /** + * 查询指定店员在指定时间前完成,并且未结算工资的订单 + * + * @param clerkId 店员ID + * @param endTime 结束时间 + * @return List + */ + List listByEndTime(String clerkId, LocalDateTime endTime); + + /** + * 查询指定店员在一定时间内的订单 + * + * @param clerkId 店员ID + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return List + */ + List listByTime(String clerkId, LocalDate startTime, LocalDate endTime); + /** * 分页查询打赏订单 * @@ -83,12 +180,13 @@ public interface IPlayOrderInfoService extends IService { /** - * 根据订单ID查询订单信息 + * 根据订单ID查询订单评价信息 * * @param orderId 订单ID * @return 订单信息 */ PlayOrderDetailsReturnVo selectById(String orderId); + /** * 查询订单 * @@ -97,6 +195,7 @@ public interface IPlayOrderInfoService extends IService { */ PlayOrderInfoEntity selectOrderInfoById(String id); + /** * 查询订单列表 * @@ -105,13 +204,85 @@ public interface IPlayOrderInfoService extends IService { */ IPage selectOrderInfoPage(PlayOrderInfoQueryVo orderInfoEntity); + /** - * 新增订单 + * 店员查询本人订单详情 * - * @param orderInfoEntity 订单 - * @return 结果 + * @param clerkId 店员ID + * @param id 订单ID + * @return 订单详情 */ - boolean create(PlayOrderInfoEntity orderInfoEntity); + + PlayClerkOrderDetailsReturnVo clerkSelectOrderDetails(String clerkId, String id); + + /** + * 店员分页查询订单本人列表 + * + * @param vo 订单列表查询对象 + * @return 订单集合 + */ + IPage clerkSelectOrderInfoByPage(PlayClerkOrderInfoQueryVo vo); + + + /** + * 顾客查询订单详情 + * + * @param customId 顾客ID + * @param orderId 订单ID + * @return 订单详情 + */ + PlayCustomOrderDetailsReturnVo customSelectOrderDetails(String customId, String orderId); + + /** + * 顾客分页查询订单列表 + * + * @param vo 订单列表查询对象 + * @return 订单集合 + */ + IPage customSelectOrderInfoByPage(PlayCustomOrderInfoQueryVo vo); + + /** + * 顾客查询本人订单列表 + * + * @param customId 顾客ID + * @return 订单集合 + */ + List customSelectOrderInfoByList(String customId); + + + /** + * 修改订单状态为接单 + * 只有管理员或者店员本人才能操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param acceptBy 接单人ID + * @param orderId 订单Id + **/ + void updateStateTo1(String operatorByType, String operatorBy, String acceptBy, String orderId); + + /** + * 修改订单状态为开始订单或者完成订单 + * 只有管理员或者店员本人才能操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param orderState 订单状态 + * @param orderId 订单Id + **/ + void updateStateTo23(String operatorByType, String operatorBy, String orderState, String orderId); + + /** + * 修改订单状态为取消订单 + * 管理员、店员、顾客均可操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param orderId 订单Id + * @param refundReason 订单取消原因 + * @param images 证据图片列表 + **/ + void updateStateTo4(String operatorByType, String operatorBy, String orderId, String refundReason, List images); /** * 修改订单 @@ -139,23 +310,29 @@ public interface IPlayOrderInfoService extends IService { /** - * 顾客取消订单 + * 获得订单编号 + * 订单编号组成规则为 YYYYMMHH+4位随机数字+当日的订单顺序 * - * @param orderId 订单ID - * @author admin - * @since 2024/5/8 16:56 - **/ - void customCancellationOrder(String orderId); + * @return 订单编号 + */ + String getOrderNo(); + /** - * 订单退款 + * 查询未接单的订单 * - * @param id 订单ID - * @param refundType 退款类型【1:部分退款,2:全部退款】 - * @param refundMoney 退款金额,单位分(仅部分退款有效) - * @param examine 是否需要审核 + * @param vo 查询对象 + * @return 订单列表 */ - void orderRefund(String id, String refundType, String refundMoney, boolean examine); + IPage selectRandomOrderByPage(PlayOrderInfoRandomQueryVo vo); + + /** + * 分页获取打赏动态 + * + * @param vo 查询对象 + * @return 打赏动态列表 + */ + IPage selectRewardByPage(PlayRewardOrderQueryVo vo); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRandomInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRandomInfoService.java new file mode 100644 index 0000000..ed5a0e5 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRandomInfoService.java @@ -0,0 +1,83 @@ +package com.starry.admin.modules.order.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.order.module.entity.PlayOrderRandomInfoEntity; +import com.starry.admin.modules.weichat.entity.order.PlayClerkRandomOrderDetailReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayOrderInfoRandomQueryVo; +import com.starry.admin.modules.weichat.entity.order.PlayRandomOrderInfoReturnVo; + +/** + * 随机单列表Service接口 + * + * @author admin + * @since 2024-05-29 + */ +public interface IPlayOrderRandomInfoService extends IService { + /** + * 查询随机单列表 + * + * @param id 随机单列表主键 + * @return 随机单列表 + */ + PlayOrderRandomInfoEntity selectPlayOrderRandomInfoById(String id); + + /** + * 查询随机单列表列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 随机单列表集合 + */ + IPage selectPlayOrderRandomInfoByPage(PlayOrderRandomInfoEntity playOrderRandomInfo); + + /** + * 分页查询随机单列表 + * + * @param vo 随机单分页查询订单对象 + * @return 随机单列表集合 + */ + IPage selectByPage(PlayOrderInfoRandomQueryVo vo); + + /** + * 查询随机单详情 + * + * @param id 订单ID + * @param clerkId 店员ID + * @return com.starry.admin.modules.weichat.entity.order.PlayClerkOrderListReturnVo + * @author admin + * @since 2024/5/30 9:55 + **/ + PlayClerkRandomOrderDetailReturnVo clerkSelectOrderDetails(String id, String clerkId); + + /** + * 新增随机单列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 结果 + */ + boolean create(PlayOrderRandomInfoEntity playOrderRandomInfo); + + /** + * 修改随机单列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 结果 + */ + boolean update(PlayOrderRandomInfoEntity playOrderRandomInfo); + + /** + * 批量删除随机单列表 + * + * @param ids 需要删除的随机单列表主键集合 + * @return 结果 + */ + int deletePlayOrderRandomInfoByIds(String[] ids); + + /** + * 删除随机单列表信息 + * + * @param id 随机单列表主键 + * @return 结果 + */ + int deletePlayOrderRandomInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRefundInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRefundInfoService.java new file mode 100644 index 0000000..6abc61a --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderRefundInfoService.java @@ -0,0 +1,80 @@ +package com.starry.admin.modules.order.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.order.module.entity.PlayOrderRefundInfoEntity; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundReturnVo; + +/** + * 订单退款信息Service接口 + * + * @author admin + * @since 2024-05-09 + */ +public interface IPlayOrderRefundInfoService extends IService { + /** + * 查询订单退款信息 + * + * @param id 订单退款信息主键 + * @return 订单退款信息 + */ + PlayOrderRefundInfoEntity selectPlayOrderRefundInfoById(String id); + + /** + * 根据订单ID查询订单退款信息 + * + * @param orderId 订单ID + * @return 订单退款信息 + */ + PlayOrderRefundInfoEntity selectPlayOrderRefundInfoByOrderId(String orderId); + + + /** + * 分页查询订单退款信息 + * + * @param vo 订单退款信息 + * @return 订单退款信息集合 + */ + IPage selectByPage(PlayOrderRefundQueryVo vo); + + /** + * 查询订单退款信息列表 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 订单退款信息集合 + */ + IPage selectPlayOrderRefundInfoByPage(PlayOrderRefundInfoEntity playOrderRefundInfo); + + /** + * 新增订单退款信息 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 结果 + */ + boolean create(PlayOrderRefundInfoEntity playOrderRefundInfo); + + /** + * 修改订单退款信息 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 结果 + */ + boolean update(PlayOrderRefundInfoEntity playOrderRefundInfo); + + /** + * 批量删除订单退款信息 + * + * @param ids 需要删除的订单退款信息主键集合 + * @return 结果 + */ + int deletePlayOrderRefundInfoByIds(String[] ids); + + /** + * 删除订单退款信息信息 + * + * @param id 订单退款信息主键 + * @return 结果 + */ + int deletePlayOrderRefundInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderComplaintInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderComplaintInfoServiceImpl.java index c3fc06b..0172310 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderComplaintInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderComplaintInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.starry.admin.modules.order.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -8,13 +7,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.order.mapper.PlayOrderComplaintInfoMapper; import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity; +import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.vo.PlayOrderComplaintQueryVo; import com.starry.admin.modules.order.module.vo.PlayOrderComplaintReturnVo; import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,6 +34,11 @@ public class PlayOrderComplaintInfoServiceImpl extends ServiceImpl(vo.getPageNum(), vo.getPageSize()), PlayOrderComplaintReturnVo.class, lambdaQueryWrapper); } @@ -83,8 +114,11 @@ public class PlayOrderComplaintInfoServiceImpl extends ServiceImpl implements IPlayOrderContinueInfoService { + @Resource + private PlayOrderContinueInfoMapper playOrderContinueInfoMapper; + + + @Override + public PlayOrderContinueInfoEntity selectPlayOrderId(String orderId) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderContinueInfoEntity::getOrderId, orderId); + return playOrderContinueInfoMapper.selectOne(lambdaQueryWrapper); + } + + /** + * 查询订单续单信息 + * + * @param id 订单续单信息主键 + * @return 订单续单信息 + */ + @Override + public PlayOrderContinueInfoEntity selectPlayOrderContinueInfoById(String id) { + PlayOrderContinueInfoEntity entity = this.baseMapper.selectById(id); + if (entity != null) { + return entity; + } + throw new CustomException("续单申请不存在"); + } + + + @Override + public void updateReviewState(PlayOrderReviewStateEditVo vo) { + PlayOrderContinueInfoEntity entity = this.selectPlayOrderContinueInfoById(vo.getId()); + entity.setReviewedState(vo.getReviewState()); + entity.setReviewedRemark(vo.getRemark()); + entity.setReviewedBy(CustomSecurityContextHolder.getUserId()); + entity.setReviewedTime(LocalDateTime.now()); + this.baseMapper.updateById(entity); + //添加订单信息 + if ("1".equals(vo.getReviewState())) { + + } + } + + @Override + public IPage selectPlayByPage(PlayOrderContinueQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + //主表 + lambdaQueryWrapper.selectAll(PlayOrderContinueInfoEntity.class); + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname").selectAs(PlayClerkUserInfoEntity::getSex, "clerkSex"); + + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderContinueInfoEntity::getClerkId); + + // 商品表 +// lambdaQueryWrapper.selectAs(PlayCommodityInfoEntity::getId, "commodityId").selectAs(PlayCommodityInfoEntity::getItemType, "commodityName").selectAs(PlayCommodityInfoEntity::getItemName, "serviceDuration").selectAs(PlayCommodityInfoEntity::getPrice, "commodityPrice"); + lambdaQueryWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderContinueInfoEntity::getOrderId); +// lambdaQueryWrapper.leftJoin(PlayCommodityInfoEntity.class, PlayCommodityInfoEntity::getId, PlayOrderInfoEntity::getCommodityId); + if (StrUtil.isNotBlank(vo.getCustomId())) { + lambdaQueryWrapper.like(PlayOrderContinueInfoEntity::getCustomId, vo.getCustomId()); + } + if (StrUtil.isNotBlank(vo.getNickname())) { + lambdaQueryWrapper.like(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); + } + if (StrUtil.isNotBlank(vo.getOrderNo())) { + lambdaQueryWrapper.like(PlayClerkUserInfoEntity::getNickname, vo.getNickname()); + } + if (StrUtil.isNotBlank(vo.getReviewState())) { + lambdaQueryWrapper.like(PlayOrderContinueInfoEntity::getReviewedState, vo.getReviewState()); + } + if (vo.getContinueTime() != null && vo.getContinueTime().size() == 2) { + lambdaQueryWrapper.between(PlayOrderContinueInfoEntity::getContinueTime, vo.getContinueTime().get(0), vo.getContinueTime().get(1)); + } + if (vo.getContinueTime() != null && vo.getContinueTime().size() == 2) { + lambdaQueryWrapper.between(PlayOrderContinueInfoEntity::getContinueTime, vo.getContinueTime().get(0), vo.getContinueTime().get(1)); + } + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayOrderContinueReturnVo.class, lambdaQueryWrapper); + } + + /** + * 查询订单续单信息列表 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 订单续单信息 + */ + @Override + public IPage selectPlayOrderContinueInfoByPage(PlayOrderContinueInfoEntity playOrderContinueInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper<>()); + } + + /** + * 新增订单续单信息 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 结果 + */ + @Override + public boolean create(PlayOrderContinueInfoEntity playOrderContinueInfo) { + if (StrUtil.isBlankIfStr(playOrderContinueInfo.getId())) { + playOrderContinueInfo.setId(IdUtils.getUuid()); + } + return save(playOrderContinueInfo); + } + + /** + * 修改订单续单信息 + * + * @param playOrderContinueInfo 订单续单信息 + * @return 结果 + */ + @Override + public boolean update(PlayOrderContinueInfoEntity playOrderContinueInfo) { + return updateById(playOrderContinueInfo); + } + + /** + * 批量删除订单续单信息 + * + * @param ids 需要删除的订单续单信息主键 + * @return 结果 + */ + @Override + public int deletePlayOrderContinueInfoByIds(String[] ids) { + return playOrderContinueInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除订单续单信息信息 + * + * @param id 订单续单信息主键 + * @return 结果 + */ + @Override + public int deletePlayOrderContinueInfoById(String id) { + return playOrderContinueInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderEvaluateInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderEvaluateInfoServiceImpl.java index 4ff6b6d..553a688 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderEvaluateInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderEvaluateInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.starry.admin.modules.order.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -8,17 +7,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.order.mapper.PlayOrderEvaluateInfoMapper; import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo; import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateReturnVo; import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Arrays; +import java.util.List; /** * 订单评价信息Service业务层处理 @@ -31,6 +34,18 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getCustomId, customId); + lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getOrderId, orderId); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + /** * 查询订单评价信息 * @@ -46,6 +61,21 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl selectByList(PlayOrderEvaluateInfoEntity entity) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(entity.getClerkId())) { + lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getClerkId, entity.getClerkId()); + } + if (StrUtil.isNotBlank(entity.getCustomId())) { + lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getCustomId, entity.getCustomId()); + } + if (StrUtil.isNotBlank(entity.getOrderId())) { + lambdaQueryWrapper.eq(PlayOrderEvaluateInfoEntity::getOrderId, entity.getOrderId()); + } + return this.baseMapper.selectList(lambdaQueryWrapper); + } + @Override public IPage selectByPage(PlayOrderEvaluateQueryVo vo) { MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() @@ -55,10 +85,36 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl(vo.getPageNum(), vo.getPageSize()), PlayOrderEvaluateReturnVo.class, lambdaQueryWrapper); } @@ -77,7 +133,6 @@ public class PlayOrderEvaluateInfoServiceImpl extends ServiceImpl implements IPlayOrderInfoService { @Resource private PlayOrderInfoMapper orderInfoMapper; + @Resource + private IPlayClerkUserInfoService playClerkUserInfoService; + + @Resource + private IPlayOrderRefundInfoService playOrderRefundInfoService; + + @Resource + private IPlayOrderEvaluateInfoService playOrderEvaluateInfoService; + @Override - public void createRechargeOrder(String id, BigDecimal orderMoney, BigDecimal finalAmount, String purchaserBy) { + public void createOrderInfo(String orderId, String orderNo, String orderState, String orderType, String placeType, String rewardType, String firstOrder, String commodityId, String commodityType, BigDecimal commodityPrice, String serviceDuration, String commodityName, String commodityNumber, BigDecimal orderMoney, BigDecimal finalAmount, BigDecimal discountAmount, String purchaserBy, String acceptBy, String weiChatCode, String remark) { PlayOrderInfoEntity entity = new PlayOrderInfoEntity(); - entity.setOrderStatus("4"); - entity.setId(id); - entity.setOrderType("0"); + entity.setId(orderId); + entity.setOrderNo(orderNo); + entity.setOrderStatus(orderState); + entity.setOrderType(orderType); + entity.setPlaceType(placeType); + entity.setRewardType(rewardType); + entity.setFirstOrder(firstOrder); + entity.setRefundType("0"); + entity.setCommodityId(commodityId); + entity.setCommodityType(commodityType); + entity.setCommodityPrice(commodityPrice); + entity.setServiceDuration(serviceDuration); + entity.setCommodityName(commodityName); + entity.setCommodityNumber(commodityNumber); + entity.setBackendEntry("0"); + entity.setPayMethod("0"); entity.setOrderMoney(orderMoney); entity.setFinalAmount(finalAmount); + entity.setDiscountAmount(discountAmount); + entity.setWeiChatCode(weiChatCode); + entity.setRemark(remark); + entity.setOrderSettlementState("0"); + entity.setOrdersExpiredState("0"); entity.setPurchaserBy(purchaserBy); - entity.setPayMethod("1"); - entity.setPayState("0"); + entity.setPurchaserTime(LocalDateTime.now()); + if (StrUtil.isNotBlank(acceptBy)) { + entity.setAcceptBy(acceptBy); + entity.setEstimatedRevenue(getEstimatedRevenue(acceptBy, placeType, firstOrder, finalAmount)); + } + // 如果订单是打赏单,订单直接完成 + if ("2".equals(placeType)) { + entity.setAcceptTime(LocalDateTime.now()); + entity.setOrderStartTime(LocalDateTime.now()); + entity.setOrderEndTime(LocalDateTime.now()); + } this.baseMapper.insert(entity); } + + /** + * 根据店员等级和订单金额,获取店员预计收入 + * + * @param clerkId 店员ID + * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) + * @param firstOrder 是否是首单【0:不是,1:是】 + * @param finalAmount 订单支付金额 + * @return math.BigDecimal 店员预计收入 + * @author 杭州世平信息科技有限公司-xuhq + * @since 2024/6/3 11:12 + **/ + @Override + public BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal finalAmount) { + PlayClerkLevelInfoEntity entity = playClerkUserInfoService.queryLevelCommission(clerkId); + switch (placeType) { + case "0": { + if ("1".equals(firstOrder)) { + return finalAmount.multiply(new BigDecimal(entity.getFirstRegularRatio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } else { + return finalAmount.multiply(new BigDecimal(entity.getNotFirstRegularRatio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } + } + case "1": { + if ("1".equals(firstOrder)) { + return finalAmount.multiply(new BigDecimal(entity.getFirstRandomRadio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } else { + return finalAmount.multiply(new BigDecimal(entity.getNotFirstRandomRadio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } + } + case "2": { + if ("1".equals(firstOrder)) { + return finalAmount.multiply(new BigDecimal(entity.getFirstRewardRatio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } else { + return finalAmount.multiply(new BigDecimal(entity.getNotFirstRewardRatio()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP); + } + } + case "-1": { + log.error("下单类型异常,placeType={}", placeType); + return finalAmount; + } + default: { + log.error("下单类型错误,placeType={}", placeType); + return finalAmount; + } + } + } + /** * 新增打赏单 * 打赏订单直接完成 @@ -59,41 +164,37 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl queryNotSettlementOrder(String clerkId) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0"); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + @Override + public List listByEndTime(String clerkId, LocalDateTime endTime) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, "3"); + lambdaQueryWrapper.lt(PlayOrderInfoEntity::getOrderEndTime, endTime); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderSettlementState, "0"); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + @Override + public List listByTime(String clerkId, LocalDate startTime, LocalDate endTime) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, clerkId); + lambdaQueryWrapper.between(PlayOrderInfoEntity::getAcceptTime, startTime, endTime); + return this.baseMapper.selectList(lambdaQueryWrapper); } @Override public IPage selectRewardOrderInfoByPage(PlayOrderRewardQueryVo vo) { - MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() - // 查询主表全部字段 - .selectAll(PlayOrderInfoEntity.class) - // 查询顾客表 - .selectAs(PlayCustomUserInfoEntity::getId, "customUserId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customUserNickname") - // 查询陪聊表 - .selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname") - // 子表 - .leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + // 查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class); + // 查询顾客表 + lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname"); + // 查询陪聊表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + // 子表 + lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "2"); lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime); return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayOrderRewardReturnVo.class, lambdaQueryWrapper); @@ -150,6 +344,29 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl selectRandomOrderByPage(PlayOrderInfoRandomQueryVo vo) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "1"); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, "0"); + return this.baseMapper.selectPage(new Page<>(vo.getPageNum(), vo.getPageSize()), lambdaQueryWrapper); + } + + @Override + public IPage selectRewardByPage(PlayRewardOrderQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "2"); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getRefundType, "0"); + lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class); + lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime); + // 查询陪聊表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + // 子表 + lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); + lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayRewardInfoReturnVo.class, lambdaQueryWrapper); + } + /** * 查询订单 * @@ -168,16 +385,16 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new MPJLambdaWrapper() - // 查询主表全部字段 - .selectAll(PlayOrderInfoEntity.class) - // 查询顾客表 - .selectAs(PlayCustomUserInfoEntity::getId, "customUserId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customUserNickname") - // 查询陪聊表 - .selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname") - // 子表 - .leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); - lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, "2"); + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper(); + // 查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class); + // 查询顾客表 + lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname"); + // 查询陪聊表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + // 子表 + lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy).leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, orderId); lambdaQueryWrapper.orderByDesc(PlayOrderInfoEntity::getPurchaserTime); return this.baseMapper.selectJoinOne(PlayOrderDetailsReturnVo.class, lambdaQueryWrapper); } @@ -191,56 +408,274 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl selectOrderInfoPage(PlayOrderInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = getCommonOrderQueryVo(ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class)); - MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper() - // 查询主表全部字段 - .selectAll(PlayOrderInfoEntity.class) - // 查询顾客表 - .selectAs(PlayCustomUserInfoEntity::getId, "customUserId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customUserNickname") - // 查询陪聊表 - .selectAs(PlayClerkUserInfoEntity::getId, "clerkUserId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkUserAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkUserNickname") - // 商品表 - .selectAs(PlayClerkCommodityEntity::getId, "commodityId").selectAs(PlayClerkCommodityEntity::getCommodityName, "commodityName").selectAs(PlayClerkCommodityEntity::getServiceDuration, "serviceDuration") - // 子表-顾客表 - .leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy) - // 子表-店员表 - .leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy) - // 子表-店员服务项目表 - .leftJoin(PlayClerkCommodityEntity.class, PlayClerkCommodityEntity::getId, PlayOrderInfoEntity::getCommodityId); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotNull(vo.getPurchaserBy())) { - queryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, vo.getPurchaserBy()); + + if (StringUtils.isNotBlank(vo.getPurchaserBy())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, vo.getPurchaserBy()); } - if (StringUtils.isNotNull(vo.getOrderStatus())) { - queryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, vo.getOrderStatus()); + if (StringUtils.isNotBlank(vo.getAcceptBy())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, vo.getAcceptBy()); } - if (StringUtils.isNotNull(vo.getPlaceType())) { - queryWrapper.eq(PlayOrderInfoEntity::getPlaceType, vo.getPlaceType()); + if (StringUtils.isNotBlank(vo.getOrderStatus())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, vo.getOrderStatus()); } - if (StringUtils.isNotNull(vo.getOrderType())) { - queryWrapper.eq(PlayOrderInfoEntity::getOrderType, vo.getOrderType()); + if (StringUtils.isNotBlank(vo.getPlaceType())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, vo.getPlaceType()); + } + if (StringUtils.isNotBlank(vo.getOrderType())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderType, vo.getOrderType()); } return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayOrderInfoReturnVo.class, lambdaQueryWrapper); } - /** - * 新增订单 - * - * @param orderInfo 订单 - * @return 结果 - */ + @Override - public boolean create(PlayOrderInfoEntity orderInfo) { - if (StrUtil.isBlankIfStr(orderInfo.getId())) { - orderInfo.setId(IdUtil.fastSimpleUUID()); + public PlayClerkOrderDetailsReturnVo clerkSelectOrderDetails(String clerkId, String orderId) { + PlayOrderInfoEntity entity = new PlayOrderInfoEntity(); + entity.setId(orderId); + entity.setAcceptBy(clerkId); + MPJLambdaWrapper lambdaQueryWrapper = getCommonOrderQueryVo(entity); + // 拼接用户等级 + lambdaQueryWrapper.selectAs(PlayCustomLevelInfoEntity::getId, "customLevelId").selectAs(PlayCustomLevelInfoEntity::getName, "customLevelName"); + lambdaQueryWrapper.leftJoin(PlayCustomLevelInfoEntity.class, PlayCustomLevelInfoEntity::getId, PlayCustomUserInfoEntity::getLevelId); + PlayClerkOrderDetailsReturnVo returnVo = this.baseMapper.selectJoinOne(PlayClerkOrderDetailsReturnVo.class, lambdaQueryWrapper); + // 如果订单状态为退款,查询订单退款原因 + if (returnVo.getOrderStatus().equals(OrderConstant.ORDER_STATUS_4)) { + PlayOrderRefundInfoEntity orderRefundInfoEntity = playOrderRefundInfoService.selectPlayOrderRefundInfoByOrderId(returnVo.getId()); + returnVo.setRefundByType(orderRefundInfoEntity.getRefundByType()); + returnVo.setRefundById(orderRefundInfoEntity.getRefundById()); + returnVo.setRefundReason(orderRefundInfoEntity.getRefundReason()); } - orderInfo.setPurchaserBy("sysadmin"); - orderInfo.setPurchaserTime(new Date()); - orderInfo.setReviewedBy("sysadmin"); - orderInfo.setReviewedTime(new Date()); - return save(orderInfo); + returnVo.setEstimatedRevenue(returnVo.getFinalAmount()); + return returnVo; } + + @Override + public IPage clerkSelectOrderInfoByPage(PlayClerkOrderInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = getCommonOrderQueryVo(ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class)); + // 拼接用户等级 + lambdaQueryWrapper.selectAs(PlayCustomLevelInfoEntity::getId, "customLevelId").selectAs(PlayCustomLevelInfoEntity::getName, "customLevelName"); + lambdaQueryWrapper.leftJoin(PlayCustomLevelInfoEntity.class, PlayCustomLevelInfoEntity::getId, PlayCustomUserInfoEntity::getLevelId); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayClerkOrderListReturnVo.class, lambdaQueryWrapper); + } + + @Override + public PlayCustomOrderDetailsReturnVo customSelectOrderDetails(String customId, String orderId) { + PlayOrderInfoEntity entity = new PlayOrderInfoEntity(); + entity.setId(orderId); + entity.setPurchaserBy(customId); + MPJLambdaWrapper lambdaQueryWrapper = getCommonOrderQueryVo(entity); + PlayCustomOrderDetailsReturnVo returnVo = this.baseMapper.selectJoinOne(PlayCustomOrderDetailsReturnVo.class, lambdaQueryWrapper); + // 如果订单状态为退款,查询订单退款原因 + if (returnVo.getOrderStatus().equals(OrderConstant.ORDER_STATUS_4)) { + PlayOrderRefundInfoEntity orderRefundInfoEntity = playOrderRefundInfoService.selectPlayOrderRefundInfoByOrderId(returnVo.getId()); + returnVo.setRefundByType(orderRefundInfoEntity.getRefundByType()); + returnVo.setRefundById(orderRefundInfoEntity.getRefundById()); + returnVo.setRefundReason(orderRefundInfoEntity.getRefundReason()); + } + // 查询订单是否评价 + PlayOrderEvaluateInfoEntity orderEvaluateInfoEntity = playOrderEvaluateInfoService.queryCustomToOrderEvaluateInfo(customId, orderId); + returnVo.setEvaluate(orderEvaluateInfoEntity != null ? "1" : "0"); + return returnVo; + } + + @Override + public IPage customSelectOrderInfoByPage(PlayCustomOrderInfoQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = getCommonOrderQueryVo(ConvertUtil.entityToVo(vo, PlayOrderInfoEntity.class)); + IPage page = this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayCustomOrderListReturnVo.class, lambdaQueryWrapper); + // 获取当前顾客所有订单评价信息,将订单评价信息转化为 map<订单ID,订单ID>的结构 + PlayOrderEvaluateInfoEntity orderEvaluateInfoEntity = new PlayOrderEvaluateInfoEntity(); + orderEvaluateInfoEntity.setCustomId(vo.getPurchaserBy()); + Map evaluateInfos = playOrderEvaluateInfoService.selectByList(orderEvaluateInfoEntity).stream().collect(Collectors.toMap(PlayOrderEvaluateInfoEntity::getOrderId, PlayOrderEvaluateInfoEntity::getOrderId)); + for (PlayCustomOrderListReturnVo record : page.getRecords()) { + record.setEvaluate(evaluateInfos.containsKey(record.getId()) ? "1" : "0"); + } + return page; + } + + @Override + public List customSelectOrderInfoByList(String customId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, customId); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + + /** + * 获取通用的订单查询对象 + * 订单作为主表 + * 连接顾客用户表、店员用户表、商品表 + * + * @return MPJLambdaWrapper + */ + public MPJLambdaWrapper getCommonOrderQueryVo(PlayOrderInfoEntity entity) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + // 查询主表全部字段 + lambdaQueryWrapper.selectAll(PlayOrderInfoEntity.class); + // 查询顾客表 + lambdaQueryWrapper.selectAs(PlayCustomUserInfoEntity::getId, "customId").selectAs(PlayCustomUserInfoEntity::getAvatar, "customAvatar").selectAs(PlayCustomUserInfoEntity::getNickname, "customNickname"); + // 查询陪聊表 + lambdaQueryWrapper.selectAs(PlayClerkUserInfoEntity::getId, "clerkId").selectAs(PlayClerkUserInfoEntity::getAvatar, "clerkAvatar").selectAs(PlayClerkUserInfoEntity::getNickname, "clerkNickname"); + // 子表-店员服务项目表 + lambdaQueryWrapper.leftJoin(PlayCustomUserInfoEntity.class, PlayCustomUserInfoEntity::getId, PlayOrderInfoEntity::getPurchaserBy); + // 子表-店员表 + lambdaQueryWrapper.leftJoin(PlayClerkUserInfoEntity.class, PlayClerkUserInfoEntity::getId, PlayOrderInfoEntity::getAcceptBy); + // 子表-店员服务项目表 + // 商品表 + // lambdaQueryWrapper.selectAs(PlayCommodityInfoEntity::getId, "commodityId").selectAs(PlayCommodityInfoEntity::getItemType, "commodityName").selectAs(PlayCommodityInfoEntity::getItemName, "serviceDuration").selectAs(PlayCommodityInfoEntity::getPrice, "commodityPrice"); + // lambdaQueryWrapper.leftJoin(PlayCommodityInfoEntity.class, PlayCommodityInfoEntity::getId, PlayOrderInfoEntity::getCommodityId); + + if (StringUtils.isNotBlank(entity.getId())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getId, entity.getId()); + } + if (StringUtils.isNotBlank(entity.getPurchaserBy())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPurchaserBy, entity.getPurchaserBy()); + } + if (StringUtils.isNotBlank(entity.getAcceptBy())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getAcceptBy, entity.getAcceptBy()); + } + if (StringUtils.isNotBlank(entity.getOrderStatus())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderStatus, entity.getOrderStatus()); + } + if (StringUtils.isNotBlank(entity.getPlaceType())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getPlaceType, entity.getPlaceType()); + } + if (StringUtils.isNotBlank(entity.getOrderType())) { + lambdaQueryWrapper.eq(PlayOrderInfoEntity::getOrderType, entity.getOrderType()); + } + return lambdaQueryWrapper; + + } + + + /** + * 修改订单状态为接单 + * 只有管理员或者店员本人才能操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param acceptBy 接单人ID + * @param orderId 订单Id + **/ + @Override + public void updateStateTo1(String operatorByType, String operatorBy, String acceptBy, String orderId) { + if (!"1".equals(operatorByType) && !"2".equals(operatorByType)) { + throw new CustomException("禁止操作"); + } + PlayOrderInfoEntity orderInfo = this.selectOrderInfoById(orderId); + PlayOrderInfoEntity entity = new PlayOrderInfoEntity(orderId, OrderConstant.ORDER_STATUS_1); + entity.setAcceptBy(acceptBy); + entity.setAcceptTime(LocalDateTime.now()); + entity.setEstimatedRevenue(this.getEstimatedRevenue(acceptBy, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount())); + this.baseMapper.updateById(entity); + } + + /** + * 修改订单状态为开始订单或者完成订单 + * 只有管理员或者店员本人才能操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param orderState 订单状态 + * @param orderId 订单Id + **/ + @Override + public void updateStateTo23(String operatorByType, String operatorBy, String orderState, String orderId) { + // 开始订单只能店员或者管理员操作 + if (orderState.equals(ORDER_STATUS_2) && "0".equals(operatorByType)) { + throw new CustomException("禁止操作"); + } + // 完成订单只能顾客或者管理员操作 + if (orderState.equals(ORDER_STATUS_3) && "1".equals(operatorByType)) { + throw new CustomException("禁止操作"); + } + PlayOrderInfoEntity entity = this.selectOrderInfoById(orderId); + // 如果该接口是顾客调用,判断是否是本人订单 + if ("0".equals(operatorByType) && !entity.getPurchaserBy().equals(operatorBy)) { + throw new CustomException("只能操作本人订单"); + } + // 如果该接口是店员调用,判断是否是本人订单 + if ("1".equals(operatorByType) && !entity.getAcceptBy().equals(operatorBy)) { + throw new CustomException("只能操作本人订单"); + } + switch (orderState) { + case ORDER_STATUS_2: { + // 开始订单前,订单状态必须为接单状态 + if (!entity.getOrderStatus().equals(OrderConstant.ORDER_STATUS_1)) { + log.error("订单状态异常,不能开始接单,orderId={},orderStace={}", orderId, orderState); + throw new CustomException("订单状态异常,不能开始订单"); + } + PlayOrderInfoEntity entity2 = new PlayOrderInfoEntity(orderId, ORDER_STATUS_2); + entity2.setOrderStartTime(LocalDateTime.now()); + this.baseMapper.updateById(entity2); + break; + } + case ORDER_STATUS_3: { + // 完成订单前,订单状态必须为开始状态 + if (!entity.getOrderStatus().equals(ORDER_STATUS_2)) { + log.error("订单状态异常,不能完成订单,orderId={},orderStace={}", orderId, orderState); + throw new CustomException("订单状态异常,不能开始订单"); + } + // 完成订单 + PlayOrderInfoEntity entity2 = new PlayOrderInfoEntity(orderId, ORDER_STATUS_3); + entity2.setOrderEndTime(LocalDateTime.now()); + this.baseMapper.updateById(entity2); + } + default: { + log.error("修改订单状态异常,orderId={},orderStace={}", orderId, orderState); + } + } + } + + /** + * 修改订单状态为取消订单 + * 管理员、店员、顾客均可操作 + * + * @param operatorByType 操作人类型(0:顾客;1:店员;2:管理员) + * @param operatorBy 操作人ID + * @param orderId 订单Id + **/ + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateStateTo4(String operatorByType, String operatorBy, String orderId, String refundReason, List images) { + PlayOrderInfoEntity entity = this.selectOrderInfoById(orderId); + if ("0".equals(operatorByType)) { + if (!entity.getPurchaserBy().equals(operatorBy)) { + throw new CustomException("只能操作本人订单"); + } + } + if ("1".equals(operatorByType)) { + if (!entity.getAcceptBy().equals(operatorBy)) { + throw new CustomException("只能操作本人订单"); + } + } + // 取消订单(必须订单未接单或者为开始状态) + if (!entity.getOrderStatus().equals(OrderConstant.ORDER_STATUS_0) && !entity.getOrderStatus().equals(OrderConstant.ORDER_STATUS_1)) { + throw new CustomException("订单状态异常,无法取消"); + } + // 修改订单状态 + this.baseMapper.updateById(new PlayOrderInfoEntity(orderId, OrderConstant.ORDER_STATUS_4)); + // 取消订单后,记录退款信息 + PlayOrderRefundInfoEntity orderRefundInfo = new PlayOrderRefundInfoEntity(); + orderRefundInfo.setOrderId(orderId); + orderRefundInfo.setCustomId(entity.getPurchaserBy()); + orderRefundInfo.setClerkId(entity.getAcceptBy()); + orderRefundInfo.setPayMethod(entity.getPayMethod()); + orderRefundInfo.setRefundType("0"); + orderRefundInfo.setRefundAmount(entity.getFinalAmount()); + orderRefundInfo.setRefundReason(refundReason); + orderRefundInfo.setRefundByType(operatorByType); + orderRefundInfo.setRefundById(operatorBy); + orderRefundInfo.setRefundState("0"); + orderRefundInfo.setReviewedRequired("0"); + playOrderRefundInfoService.create(orderRefundInfo); + + + } + + /** * 修改订单 * @@ -252,14 +687,6 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl implements IPlayOrderRandomInfoService { + @Resource + private PlayOrderRandomInfoMapper playOrderRandomInfoMapper; + + @Resource + private IPlayOrderInfoService playOrderInfoService; + + /** + * 查询随机单列表 + * + * @param id 随机单列表主键 + * @return 随机单列表 + */ + @Override + public PlayOrderRandomInfoEntity selectPlayOrderRandomInfoById(String id) { + return this.baseMapper.selectById(id); + } + + /** + * 查询随机单列表列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 随机单列表 + */ + @Override + public IPage selectPlayOrderRandomInfoByPage(PlayOrderRandomInfoEntity playOrderRandomInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + + @Override + public PlayClerkRandomOrderDetailReturnVo clerkSelectOrderDetails(String id, String clerkId) { + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + lambdaWrapper.selectAll(PlayOrderRandomInfoEntity.class); + lambdaWrapper.selectAll(PlayOrderInfoEntity.class); + lambdaWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderRandomInfoEntity::getId); + lambdaWrapper.eq(PlayOrderRandomInfoEntity::getId, id); + PlayClerkRandomOrderDetailReturnVo vo = this.baseMapper.selectJoinOne(PlayClerkRandomOrderDetailReturnVo.class, lambdaWrapper); + + PlayOrderInfoEntity orderInfo = playOrderInfoService.selectOrderInfoById(id); + vo.setEstimatedRevenue(playOrderInfoService.getEstimatedRevenue(clerkId, orderInfo.getPlaceType(), orderInfo.getFirstOrder(), orderInfo.getFinalAmount())); + return vo; + } + + @Override + public IPage selectByPage(PlayOrderInfoRandomQueryVo vo) { + MPJLambdaWrapper lambdaWrapper = new MPJLambdaWrapper<>(); + // 查询随机单全部字段 + lambdaWrapper.selectAll(PlayOrderRandomInfoEntity.class); + // 订单表 + lambdaWrapper.selectAll(PlayOrderInfoEntity.class); + lambdaWrapper.leftJoin(PlayOrderInfoEntity.class, PlayOrderInfoEntity::getId, PlayOrderRandomInfoEntity::getId); + lambdaWrapper.eq(PlayOrderInfoEntity::getOrderStatus, "0"); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayRandomOrderInfoReturnVo.class, lambdaWrapper); + } + + /** + * 新增随机单列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 结果 + */ + @Override + public boolean create(PlayOrderRandomInfoEntity playOrderRandomInfo) { + if (StrUtil.isBlankIfStr(playOrderRandomInfo.getId())) { + playOrderRandomInfo.setId(IdUtils.getUuid()); + } + return save(playOrderRandomInfo); + } + + /** + * 修改随机单列表 + * + * @param playOrderRandomInfo 随机单列表 + * @return 结果 + */ + @Override + public boolean update(PlayOrderRandomInfoEntity playOrderRandomInfo) { + return updateById(playOrderRandomInfo); + } + + /** + * 批量删除随机单列表 + * + * @param ids 需要删除的随机单列表主键 + * @return 结果 + */ + @Override + public int deletePlayOrderRandomInfoByIds(String[] ids) { + return playOrderRandomInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除随机单列表信息 + * + * @param id 随机单列表主键 + * @return 结果 + */ + @Override + public int deletePlayOrderRandomInfoById(String id) { + return playOrderRandomInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderRefundInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderRefundInfoServiceImpl.java new file mode 100644 index 0000000..801a32e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderRefundInfoServiceImpl.java @@ -0,0 +1,114 @@ +package com.starry.admin.modules.order.service.impl; + +import com.starry.common.utils.IdUtils; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.starry.admin.modules.order.mapper.PlayOrderRefundInfoMapper; +import com.starry.admin.modules.order.module.entity.PlayOrderRefundInfoEntity; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderRefundReturnVo; +import com.starry.admin.modules.order.service.IPlayOrderRefundInfoService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; + +/** + * 订单退款信息Service业务层处理 + * + * @author admin + * @since 2024-05-09 + */ +@Service +public class PlayOrderRefundInfoServiceImpl extends ServiceImpl implements IPlayOrderRefundInfoService { + @Resource + private PlayOrderRefundInfoMapper playOrderRefundInfoMapper; + + + @Override + public PlayOrderRefundInfoEntity selectPlayOrderRefundInfoByOrderId(String orderId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayOrderRefundInfoEntity::getOrderId, orderId); + return this.baseMapper.selectOne(lambdaQueryWrapper); + } + + /** + * 查询订单退款信息 + * + * @param id 订单退款信息主键 + * @return 订单退款信息 + */ + @Override + public PlayOrderRefundInfoEntity selectPlayOrderRefundInfoById(String id) { + return this.baseMapper.selectById(id); + } + + @Override + public IPage selectByPage(PlayOrderRefundQueryVo vo) { + MPJLambdaWrapper lambdaQueryWrapper = new MPJLambdaWrapper<>(); + return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), PlayOrderRefundReturnVo.class, lambdaQueryWrapper); + } + + /** + * 查询订单退款信息列表 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 订单退款信息 + */ + @Override + public IPage selectPlayOrderRefundInfoByPage(PlayOrderRefundInfoEntity playOrderRefundInfo) { + Page page = new Page<>(1, 10); + return this.baseMapper.selectPage(page, new LambdaQueryWrapper()); + } + + /** + * 新增订单退款信息 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 结果 + */ + @Override + public boolean create(PlayOrderRefundInfoEntity playOrderRefundInfo) { + if (StrUtil.isBlankIfStr(playOrderRefundInfo.getId())) { + playOrderRefundInfo.setId(IdUtils.getUuid()); + } + return save(playOrderRefundInfo); + } + + /** + * 修改订单退款信息 + * + * @param playOrderRefundInfo 订单退款信息 + * @return 结果 + */ + @Override + public boolean update(PlayOrderRefundInfoEntity playOrderRefundInfo) { + return updateById(playOrderRefundInfo); + } + + /** + * 批量删除订单退款信息 + * + * @param ids 需要删除的订单退款信息主键 + * @return 结果 + */ + @Override + public int deletePlayOrderRefundInfoByIds(String[] ids) { + return playOrderRefundInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除订单退款信息信息 + * + * @param id 订单退款信息主键 + * @return 结果 + */ + @Override + public int deletePlayOrderRefundInfoById(String id) { + return playOrderRefundInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/platform/service/ISysTenantService.java b/play-admin/src/main/java/com/starry/admin/modules/platform/service/ISysTenantService.java index c2c9c58..7f98a5a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/platform/service/ISysTenantService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/platform/service/ISysTenantService.java @@ -17,6 +17,13 @@ import java.util.List; public interface ISysTenantService extends IService { + /** + * 获得所有的租户信息 + * + * @return 租户表 + */ + List listAll(); + /** * 根据租户权限标识查询租户 * diff --git a/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantPackageServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantPackageServiceImpl.java index 545b31a..0185b47 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantPackageServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/platform/service/impl/SysTenantPackageServiceImpl.java @@ -1,6 +1,6 @@ package com.starry.admin.modules.platform.service.impl; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -62,7 +62,7 @@ public class SysTenantPackageServiceImpl extends ServiceImpl listAll() { + return this.baseMapper.selectList(new LambdaQueryWrapper<>()); + } + @Override public SysTenantEntity selectByTenantKey(String tenantKey) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -182,10 +187,10 @@ public class SysTenantServiceImpl extends ServiceImpl { /** * 设置微信公众号的token */ - @NotBlank(message = "微信商户Key") + @NotBlank(message = "微信商户Key不能为空") private String mchKey; /** * 设置微信公众号的EncodingAESKey */ - @NotBlank(message = "微信商户秘钥") + @NotBlank(message = "微信商户秘钥不能为空") private String mchId; + + /** + * 证书路径 + */ private String certificatePath; /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/platform/vo/SysTenantPackageVo.java b/play-admin/src/main/java/com/starry/admin/modules/platform/vo/SysTenantPackageVo.java index 7a7f1a9..0c21f58 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/platform/vo/SysTenantPackageVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/platform/vo/SysTenantPackageVo.java @@ -44,5 +44,4 @@ public class SysTenantPackageVo extends BasePageEntity { * 备注 */ private String remarks; - } diff --git a/play-admin/src/main/java/com/starry/admin/modules/play/mapper/PlayCommodityInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/play/mapper/PlayCommodityInfoMapper.java index ecbf2cf..6012510 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/play/mapper/PlayCommodityInfoMapper.java +++ b/play-admin/src/main/java/com/starry/admin/modules/play/mapper/PlayCommodityInfoMapper.java @@ -1,8 +1,10 @@ package com.starry.admin.modules.play.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity; +import com.starry.admin.modules.play.module.vo.PlayCommodityInfoVo; +import org.apache.ibatis.annotations.Select; /** * 服务项目Mapper接口 @@ -10,7 +12,17 @@ import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity; * @author admin * @since 2024-03-31 */ -public interface PlayCommodityInfoMapper extends BaseMapper { +public interface PlayCommodityInfoMapper extends MPJBaseMapper { + + + /** + * 查询服务项目信息 + * + * @param id UUID + * @return 项目信息 + */ + @Select("select t.id as commodityId,t.price as commodityPrice,t.item_name as serviceDuration,t1.item_name as commodityName from play_commodity_info t left join play_commodity_info t1 on t.p_id = t1.id where t.id = #{id} limit 1") + PlayCommodityInfoVo queryCommodityInfo(String id); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/play/module/entity/PlayCommodityInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/play/module/entity/PlayCommodityInfoEntity.java index f085f97..d9dd258 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/play/module/entity/PlayCommodityInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/play/module/entity/PlayCommodityInfoEntity.java @@ -18,12 +18,16 @@ import java.math.BigDecimal; @TableName("play_commodity_info") public class PlayCommodityInfoEntity extends BaseEntity { - /** * UUID */ private String id; + /** + * Pid + **/ + private String pId; + /** * 租户ID */ @@ -49,5 +53,20 @@ public class PlayCommodityInfoEntity extends BaseEntity */ private BigDecimal price; + /** + * 排序 + **/ + private Integer sort; + public PlayCommodityInfoEntity() { + } + + public PlayCommodityInfoEntity(String id, String pId, String itemType, String itemName, String serviceDuration, BigDecimal price) { + this.id = id; + this.pId = pId; + this.itemType = itemType; + this.itemName = itemName; + this.serviceDuration = serviceDuration; + this.price = price; + } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/play/module/vo/PlayCommodityInfoVo.java b/play-admin/src/main/java/com/starry/admin/modules/play/module/vo/PlayCommodityInfoVo.java new file mode 100644 index 0000000..4bc7c8c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/play/module/vo/PlayCommodityInfoVo.java @@ -0,0 +1,35 @@ +package com.starry.admin.modules.play.module.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 商品信息查询返回对象 + * + * @author admin + * @since 2024/6/2 上午8:52 + **/ +@Data +public class PlayCommodityInfoVo { + + /** + * UUID + */ + private String commodityId; + + /** + * 单价 + */ + private BigDecimal commodityPrice; + + /** + * 名称 + */ + private String commodityName; + + /** + * 服务时长 + */ + private String serviceDuration; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/play/service/IPlayCommodityInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/play/service/IPlayCommodityInfoService.java index 96249ac..d4c06f0 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/play/service/IPlayCommodityInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/play/service/IPlayCommodityInfoService.java @@ -3,6 +3,8 @@ package com.starry.admin.modules.play.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity; +import com.starry.admin.modules.play.module.vo.PlayCommodityInfoVo; +import com.starry.admin.modules.weichat.entity.PlayCommodityReturnVo; import java.util.List; @@ -13,6 +15,24 @@ import java.util.List; * @since 2024-03-31 */ public interface IPlayCommodityInfoService extends IService { + + + /** + * * 新增租户时 + * * 初始化租户服务项目 + * + * @param tenantId 租户ID + */ + void initPlayCommodityInfo(String tenantId); + + + /** + * 查询服务项目 + * + * @param id UUID + * @return 服务项目 + */ + PlayCommodityInfoVo queryCommodityInfo(String id); /** * 查询服务项目 * @@ -21,7 +41,26 @@ public interface IPlayCommodityInfoService extends IService + **/ + List selectTree(); + /** + * 查询当前租户所有服务项目 + * + * @return 当前租户所有服务项目列表 + */ + List selectByType(); + + + /** + * 查询当前租户所有服务项目列表 + * + * @return 当前租户所有服务项目列表 + */ List selectAll(); /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/play/service/impl/PlayCommodityInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/play/service/impl/PlayCommodityInfoServiceImpl.java index 54c0b28..cefed96 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/play/service/impl/PlayCommodityInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/play/service/impl/PlayCommodityInfoServiceImpl.java @@ -1,19 +1,27 @@ package com.starry.admin.modules.play.service.impl; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.play.mapper.PlayCommodityInfoMapper; import com.starry.admin.modules.play.module.entity.PlayCommodityInfoEntity; +import com.starry.admin.modules.play.module.vo.PlayCommodityInfoVo; import com.starry.admin.modules.play.service.IPlayCommodityInfoService; +import com.starry.admin.modules.weichat.entity.PlayCommodityReturnVo; +import com.starry.admin.utils.SecurityUtils; +import com.starry.common.utils.ConvertUtil; +import com.starry.common.utils.IdUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 服务项目Service业务层处理 @@ -27,11 +35,77 @@ public class PlayCommodityInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayCommodityInfoEntity::getPId, "00"); + List list = playCommodityInfoMapper.selectList(lambdaQueryWrapper); + for (PlayCommodityInfoEntity entity : list) { + initPlayCommodityInfo(entity, tenantId); + } + } + + public void initPlayCommodityInfo(PlayCommodityInfoEntity entity, String tenantId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayCommodityInfoEntity::getPId, entity.getId()); + entity.setId(IdUtils.getUuid()); + entity.setTenantId(tenantId); + this.baseMapper.insert(entity); + List list = playCommodityInfoMapper.selectList(lambdaQueryWrapper); + for (PlayCommodityInfoEntity commodityInfo : list) { + commodityInfo.setPId(entity.getId()); + initPlayCommodityInfo(commodityInfo, tenantId); + } + } + + + @Override + public List selectTree() { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + List list = this.baseMapper.selectList(lambdaQueryWrapper); + Map> collect = list.stream().filter(a -> a != null && a.getId() != null).collect(Collectors.groupingBy(PlayCommodityInfoEntity::getPId)); + return this.assembleTree(collect, collect.get("00")); + } + + /** + * 组装数据 + * + * @param data 数据,key=区域编码,value=区域列表 + * @param list 区域略表 + * @return List + * @author admin + * @since 2024/4/10 15:14 + **/ + public List assembleTree(Map> data, List list) { + if (list == null) { + return new ArrayList<>(); + } + List result = ConvertUtil.entityToVoList(list, PlayCommodityReturnVo.class); + for (PlayCommodityReturnVo entity : result) { + entity.setChild(assembleTree(data, data.get(entity.getId()))); + } + return result; + } + + @Override + public List selectByType() { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PlayCommodityInfoEntity::getItemType, "服务类型"); + return this.baseMapper.selectList(lambdaQueryWrapper); + } + @Override public List selectAll() { return this.baseMapper.selectList(new LambdaQueryWrapper<>()); } + @Override + public PlayCommodityInfoVo queryCommodityInfo(String id) { + return this.baseMapper.queryCommodityInfo(id); + } + /** * 查询服务项目 * @@ -40,7 +114,11 @@ public class PlayCommodityInfoServiceImpl extends ServiceImpl list = playCarouselInfoService.selectByPage(vo); + return R.ok(list); + } + + @PostMapping("/uploadFile") + public R uploadFile(@RequestParam("file") MultipartFile file) throws IOException { +// String fileAddress = ossFileService.upload(file.getInputStream(), SecurityUtils.getTenantId(), file.getOriginalFilename()); + return R.ok("https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/7f7ecd75fd29464db2867982f88e8ef0/2024/06/05/f8a42353c957.jpg"); + } + + + /** + * 新增页轮播列表 + */ + @PostMapping("/create") + public R create(@Validated @RequestBody PlayShopCarouselInfoAddVo vo) { + PlayShopCarouselInfoEntity entity = ConvertUtil.entityToVo(vo, PlayShopCarouselInfoEntity.class); + playCarouselInfoService.create(entity); + return R.ok(); + } + + + /** + * 修改页轮播状态 + */ + @PostMapping("/handleUpdateState") + public R listByPage(@Validated @RequestBody PlayShopCarouselInfoUpdateStateVo vo) { + PlayShopCarouselInfoEntity entity = ConvertUtil.entityToVo(vo, PlayShopCarouselInfoEntity.class); + playCarouselInfoService.update(entity); + return R.ok(); + } + + /** + * 删除店铺首页轮播 + */ + @Log(title = "店铺首页轮播", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@PathVariable String[] ids) { + return R.ok(playCarouselInfoService.deletePlayCarouselInfoByIds(ids)); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/mapper/PlayShopCarouselInfoMapper.java b/play-admin/src/main/java/com/starry/admin/modules/shop/mapper/PlayShopCarouselInfoMapper.java new file mode 100644 index 0000000..f98d8a0 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/mapper/PlayShopCarouselInfoMapper.java @@ -0,0 +1,16 @@ +package com.starry.admin.modules.shop.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.starry.admin.modules.shop.module.entity.PlayShopCarouselInfoEntity; + +/** + * 店铺首页轮播Mapper接口 + * + * @author admin + * @since 2024-06-05 + */ +public interface PlayShopCarouselInfoMapper extends BaseMapper { + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/module/entity/PlayShopCarouselInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/shop/module/entity/PlayShopCarouselInfoEntity.java new file mode 100644 index 0000000..e76fac7 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/module/entity/PlayShopCarouselInfoEntity.java @@ -0,0 +1,66 @@ +package com.starry.admin.modules.shop.module.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.starry.common.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +/** + * 店铺首页轮播对象 play_carousel_info + * + * @author admin + * @since 2024-06-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_shop_carousel_info") +public class PlayShopCarouselInfoEntity extends BaseEntity { + + + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 轮播图位置(0:首页) + */ + private String carouselIndex; + + /** + * 启用状态(0:未启用,1:已启用) + */ + private String enableState; + + /** + * 图片URL + */ + private String carouselUrl; + + /** + * 导航类型(0:无) + */ + private String navigationType; + + /** + * 排序 + */ + private Integer sort; + + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime addTime; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoAddVo.java b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoAddVo.java new file mode 100644 index 0000000..960d3fd --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoAddVo.java @@ -0,0 +1,47 @@ +package com.starry.admin.modules.shop.module.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + * @author admin + * @since 2024/6/5 上午10:36 + **/ +@Data +public class PlayShopCarouselInfoAddVo { + + + /** + * 轮播图位置(0:首页) + */ + @NotNull(message = "轮播图位置不能为空") + private String carouselIndex; + + /** + * 启用状态(0:未启用,1:已启用) + */ + @NotNull(message = "启用状态不能为空") + private String enableState; + + /** + * 图片URL + */ + @NotNull(message = "图片URL不能为空") + private String carouselUrl; + + /** + * 排序 + */ + private Integer sort; + + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime addTime = LocalDateTime.now(); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoQueryVo.java new file mode 100644 index 0000000..669f696 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoQueryVo.java @@ -0,0 +1,35 @@ +package com.starry.admin.modules.shop.module.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author admin + * @since 2024/6/5 上午10:36 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayShopCarouselInfoQueryVo extends BasePageEntity { + + /** + * 轮播图位置(0:首页) + */ + private String carouselIndex; + + /** + * 启用状态(0:未启用,1:已启用) + */ + private String enableState; + + + /** + * 创建时间 + */ + private List addTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoReturnVo.java new file mode 100644 index 0000000..b31b7bd --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoReturnVo.java @@ -0,0 +1,14 @@ +package com.starry.admin.modules.shop.module.vo; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author admin + * @since 2024/6/5 上午10:36 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayShopCarouselInfoReturnVo extends BasePageEntity { +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoUpdateStateVo.java b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoUpdateStateVo.java new file mode 100644 index 0000000..4f7adf0 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/module/vo/PlayShopCarouselInfoUpdateStateVo.java @@ -0,0 +1,22 @@ +package com.starry.admin.modules.shop.module.vo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author admin + * @since 2024/6/5 上午10:36 + **/ +@Data +public class PlayShopCarouselInfoUpdateStateVo { + + @NotNull(message = "ID不能为空") + private String id; + + /** + * 启用状态(0:未启用,1:已启用) + */ + @NotNull(message = "enableState不能为空") + private String enableState; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/service/IPlayShopCarouselInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/shop/service/IPlayShopCarouselInfoService.java new file mode 100644 index 0000000..707e115 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/service/IPlayShopCarouselInfoService.java @@ -0,0 +1,63 @@ +package com.starry.admin.modules.shop.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.shop.module.entity.PlayShopCarouselInfoEntity; +import com.starry.admin.modules.shop.module.vo.PlayShopCarouselInfoQueryVo; + +/** + * 店铺首页轮播Service接口 + * + * @author admin + * @since 2024-06-05 + */ +public interface IPlayShopCarouselInfoService extends IService { + /** + * 查询店铺首页轮播 + * + * @param id 店铺首页轮播主键 + * @return 店铺首页轮播 + */ + PlayShopCarouselInfoEntity selectPlayCarouselInfoById(String id); + + + /** + * 查询店铺首页轮播列表 + * + * @param vo 店铺首页轮播查询对象 + * @return 店铺首页轮播集合 + */ + IPage selectByPage(PlayShopCarouselInfoQueryVo vo); + + /** + * 新增店铺首页轮播 + * + * @param playCarouselInfo 店铺首页轮播 + * @return 结果 + */ + boolean create(PlayShopCarouselInfoEntity playCarouselInfo); + + /** + * 修改店铺首页轮播 + * + * @param playCarouselInfo 店铺首页轮播 + * @return 结果 + */ + boolean update(PlayShopCarouselInfoEntity playCarouselInfo); + + /** + * 批量删除店铺首页轮播 + * + * @param ids 需要删除的店铺首页轮播主键集合 + * @return 结果 + */ + int deletePlayCarouselInfoByIds(String[] ids); + + /** + * 删除店铺首页轮播信息 + * + * @param id 店铺首页轮播主键 + * @return 结果 + */ + int deletePlayCarouselInfoById(String id); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/shop/service/impl/PlayShopCarouselInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/shop/service/impl/PlayShopCarouselInfoServiceImpl.java new file mode 100644 index 0000000..26ad62e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/shop/service/impl/PlayShopCarouselInfoServiceImpl.java @@ -0,0 +1,104 @@ +package com.starry.admin.modules.shop.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.starry.admin.modules.shop.mapper.PlayShopCarouselInfoMapper; +import com.starry.admin.modules.shop.module.entity.PlayShopCarouselInfoEntity; +import com.starry.admin.modules.shop.module.vo.PlayShopCarouselInfoQueryVo; +import com.starry.admin.modules.shop.service.IPlayShopCarouselInfoService; +import com.starry.common.utils.IdUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; + +/** + * 店铺首页轮播Service业务层处理 + * + * @author admin + * @since 2024-06-05 + */ +@Service +public class PlayShopCarouselInfoServiceImpl extends ServiceImpl implements IPlayShopCarouselInfoService { + @Resource + private PlayShopCarouselInfoMapper playCarouselInfoMapper; + + /** + * 查询店铺首页轮播 + * + * @param id 店铺首页轮播主键 + * @return 店铺首页轮播 + */ + @Override + public PlayShopCarouselInfoEntity selectPlayCarouselInfoById(String id) { + return this.baseMapper.selectById(id); + } + + + @Override + public IPage selectByPage(PlayShopCarouselInfoQueryVo vo) { + LambdaQueryWrapper lambdaWrapper = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(vo.getCarouselIndex())) { + lambdaWrapper.eq(PlayShopCarouselInfoEntity::getCarouselIndex, vo.getCarouselIndex()); + } + if (StrUtil.isNotBlank(vo.getEnableState())) { + lambdaWrapper.eq(PlayShopCarouselInfoEntity::getEnableState, vo.getEnableState()); + } + if (vo.getAddTime() != null && vo.getAddTime().size() == 2) { + lambdaWrapper.between(PlayShopCarouselInfoEntity::getAddTime, vo.getAddTime().get(0), vo.getAddTime().get(1)); + } + return this.baseMapper.selectPage(new Page<>(vo.getPageNum(), vo.getPageSize()), lambdaWrapper); + + } + + + /** + * 新增店铺首页轮播 + * + * @param playCarouselInfo 店铺首页轮播 + * @return 结果 + */ + @Override + public boolean create(PlayShopCarouselInfoEntity playCarouselInfo) { + if (StrUtil.isBlankIfStr(playCarouselInfo.getId())) { + playCarouselInfo.setId(IdUtils.getUuid()); + } + return save(playCarouselInfo); + } + + /** + * 修改店铺首页轮播 + * + * @param playCarouselInfo 店铺首页轮播 + * @return 结果 + */ + @Override + public boolean update(PlayShopCarouselInfoEntity playCarouselInfo) { + return updateById(playCarouselInfo); + } + + /** + * 批量删除店铺首页轮播 + * + * @param ids 需要删除的店铺首页轮播主键 + * @return 结果 + */ + @Override + public int deletePlayCarouselInfoByIds(String[] ids) { + return playCarouselInfoMapper.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * 删除店铺首页轮播信息 + * + * @param id 店铺首页轮播主键 + * @return 结果 + */ + @Override + public int deletePlayCarouselInfoById(String id) { + return playCarouselInfoMapper.deleteById(id); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysAdministrativeAreaDictInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysAdministrativeAreaDictInfoServiceImpl.java index e9d9c9c..7466247 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysAdministrativeAreaDictInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/system/service/impl/SysAdministrativeAreaDictInfoServiceImpl.java @@ -1,6 +1,6 @@ package com.starry.admin.modules.system.service.impl; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -97,7 +97,7 @@ public class SysAdministrativeAreaDictInfoServiceImpl extends ServiceImpl tree = playCommodityInfoService.selectTree(); + return R.ok(tree); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java index bb48ed3..af6d357 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkController.java @@ -1,37 +1,44 @@ package com.starry.admin.modules.weichat.controller; -import cn.hutool.core.util.IdUtil; import cn.hutool.crypto.SecureUtil; -import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.starry.admin.common.aspect.ClerkUserLogin; import com.starry.admin.common.conf.ThreadLocalRequestDetail; import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.module.entity.*; import com.starry.admin.modules.clerk.module.vo.PlayClerkCommodityEditVo; import com.starry.admin.modules.clerk.module.vo.PlayClerkCommodityQueryVo; -import com.starry.admin.modules.clerk.service.IPlayClerkClassificationInfoService; -import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; -import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService; -import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; -import com.starry.admin.modules.clerk.service.impl.PlayClerkDataReviewInfoServiceImpl; +import com.starry.admin.modules.clerk.service.*; import com.starry.admin.modules.clerk.service.impl.PlayClerkUserInfoServiceImpl; +import com.starry.admin.modules.clerk.service.impl.PlayClerkUserReviewInfoServiceImpl; +import com.starry.admin.modules.order.module.vo.PlayOrderEvaluateQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderStateEditVo; +import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService; +import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.play.service.IPlayCommodityInfoService; import com.starry.admin.modules.weichat.entity.*; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoQueryVo; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo; +import com.starry.admin.modules.weichat.entity.order.PlayClerkOrderDetailsReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayClerkOrderInfoQueryVo; +import com.starry.admin.modules.weichat.entity.order.PlayClerkOrderListReturnVo; import com.starry.admin.modules.weichat.service.WxCustomUserService; import com.starry.admin.utils.SecurityUtils; import com.starry.common.redis.RedisCache; import com.starry.common.result.R; import com.starry.common.utils.ConvertUtil; +import com.starry.common.utils.IdUtils; import com.starry.common.utils.VerificationCodeUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -50,15 +57,6 @@ public class WxClerkController { @Resource private PlayClerkUserInfoServiceImpl playClerkUserInfoService; - @Resource - private PlayClerkDataReviewInfoServiceImpl dataReviewInfoService; - - @Resource - private IPlayClerkLevelInfoService playClerkLevelInfoService; - - @Resource - private IPlayClerkClassificationInfoService playClerkClassificationInfoService; - @Resource private IPlayClerkUserInfoService clerkUserInfoService; @@ -68,30 +66,41 @@ public class WxClerkController { @Resource private WxCustomUserService customUserService; + @Resource + private IPlayOrderInfoService playOrderInfoService; + @Resource + private IPlayOrderEvaluateInfoService playOrderEvaluateInfoService; + + @Resource + private PlayClerkUserReviewInfoServiceImpl playClerkUserReviewInfoService; + + @Resource + private IPlayClerkDataReviewInfoService playClerkDataReviewInfoService; + + @Resource + private IPlayCommodityInfoService playCommodityInfoService; + + @Resource + private IPlayClerkLevelInfoService playClerkLevelInfoService; + + @Resource + private IPlayClerkClassificationInfoService playClerkClassificationInfoService; + + + /** + * 店员获取个人信息 + */ @ClerkUserLogin @GetMapping("/user/queryById") - public R sendCode(@RequestParam("id") String id) { - PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); + public R queryById() { + PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(ThreadLocalRequestDetail.getClerkUserInfo().getId()); if (entity == null) { throw new CustomException("用户不存在"); } return R.ok(clerkUserInfoService.getVo(entity)); } - @ClerkUserLogin - @GetMapping("/user/deleteNotReviewInfo") - public R deleteNotReviewInfo(@RequestParam("id") String id) { - PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); - if (entity == null) { - throw new CustomException("用户不存在"); - } - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PlayClerkDataReviewInfoEntity::getPlayUserId, entity.getOpenid()); - dataReviewInfoService.remove(queryWrapper); - return R.ok("成功"); - } - @ClerkUserLogin @PostMapping("/user/sendCode") @@ -126,27 +135,22 @@ public class WxClerkController { @ClerkUserLogin @PostMapping("/user/add") public R userAdd(@Validated @RequestBody PlayClerkUserByWxAddVo vo) { - String playUserId = ThreadLocalRequestDetail.getClerkUserInfo().getId(); - PlayClerkUserInfoEntity userInfo = playClerkUserInfoService.selectById(playUserId); + String clerkId = ThreadLocalRequestDetail.getClerkUserInfo().getId(); + PlayClerkUserInfoEntity userInfo = playClerkUserInfoService.selectById(clerkId); if (userInfo == null) { throw new CustomException("系统错误,用户不存在"); } if ("1".equals(userInfo.getClerkState())) { throw new CustomException("当前用户已经是店员"); } - PlayClerkDataReviewInfoEntity dataReviewInfo = new PlayClerkDataReviewInfoEntity(); - dataReviewInfo.setPlayUserId(userInfo.getId()); - dataReviewInfo.setState("0"); - dataReviewInfo.setDataType("0"); - - if (!dataReviewInfoService.queryList(dataReviewInfo).isEmpty()) { + PlayClerkUserReviewInfoEntity entity = playClerkUserReviewInfoService.queryByClerkId(userInfo.getId(), "0"); + if (entity != null) { throw new CustomException("已有申请未审核"); } - dataReviewInfo.setClerkAvatar(userInfo.getAvatar()); - dataReviewInfo.setClerkNickname(userInfo.getNickname()); - dataReviewInfo.setContent(JSONObject.toJSONString(vo)); - dataReviewInfo.setAddTime(new Date()); - dataReviewInfoService.create(dataReviewInfo); + entity = ConvertUtil.entityToVo(vo, PlayClerkUserReviewInfoEntity.class); + entity.setReviewState("0"); + entity.setClerkId(clerkId); + playClerkUserReviewInfoService.create(entity); return R.ok("申请成功"); } @@ -155,20 +159,18 @@ public class WxClerkController { @PostMapping("/user/updateAvatar") public R updateAvatar(@Validated @RequestBody PlayClerkUserAvatarVo vo) { PlayClerkUserInfoEntity userInfo = ThreadLocalRequestDetail.getClerkUserInfo(); - - PlayClerkDataReviewInfoEntity dataReviewInfo = new PlayClerkDataReviewInfoEntity(); - dataReviewInfo.setPlayUserId(userInfo.getId()); - dataReviewInfo.setState("0"); - dataReviewInfo.setDataType("1"); - - if (!dataReviewInfoService.queryList(dataReviewInfo).isEmpty()) { + PlayClerkDataReviewInfoEntity entity = playClerkDataReviewInfoService.queryByClerkId(userInfo.getId(), "1", "0"); + if (entity != null) { throw new CustomException("已有申请未审核"); } - dataReviewInfo.setClerkAvatar(userInfo.getAvatar()); - dataReviewInfo.setClerkNickname(userInfo.getNickname()); - dataReviewInfo.setContent(JSONObject.toJSONString(vo)); - dataReviewInfo.setAddTime(new Date()); - dataReviewInfoService.create(dataReviewInfo); + entity = new PlayClerkDataReviewInfoEntity(); + entity.setClerkId(userInfo.getId()); + entity.setDataType("1"); + entity.setReviewState("0"); + List list = new ArrayList<>(); + list.add(vo.getAvatar()); + entity.setDataContent(list); + playClerkDataReviewInfoService.create(entity); return R.ok("申请成功"); } @@ -176,18 +178,16 @@ public class WxClerkController { @PostMapping("/user/updateAlbum") public R updateAlbum(@Validated @RequestBody PlayClerkUserAlbumVo vo) { PlayClerkUserInfoEntity userInfo = ThreadLocalRequestDetail.getClerkUserInfo(); - PlayClerkDataReviewInfoEntity dataReviewInfo = new PlayClerkDataReviewInfoEntity(); - dataReviewInfo.setPlayUserId(userInfo.getId()); - dataReviewInfo.setState("0"); - dataReviewInfo.setDataType("2"); - if (!dataReviewInfoService.queryList(dataReviewInfo).isEmpty()) { + PlayClerkDataReviewInfoEntity entity = playClerkDataReviewInfoService.queryByClerkId(userInfo.getId(), "2", "0"); + if (entity != null) { throw new CustomException("已有申请未审核"); } - dataReviewInfo.setClerkAvatar(userInfo.getAvatar()); - dataReviewInfo.setClerkNickname(userInfo.getNickname()); - dataReviewInfo.setContent(JSONObject.toJSONString(vo)); - dataReviewInfo.setAddTime(new Date()); - dataReviewInfoService.create(dataReviewInfo); + entity = new PlayClerkDataReviewInfoEntity(); + entity.setClerkId(userInfo.getId()); + entity.setDataType("2"); + entity.setReviewState("0"); + entity.setDataContent(vo.getAlbum()); + playClerkDataReviewInfoService.create(entity); return R.ok("申请成功"); } @@ -195,18 +195,18 @@ public class WxClerkController { @PostMapping("/user/updateAudio") public R updateAudio(@Validated @RequestBody PlayClerkUserAudioVo vo) { PlayClerkUserInfoEntity userInfo = ThreadLocalRequestDetail.getClerkUserInfo(); - PlayClerkDataReviewInfoEntity dataReviewInfo = new PlayClerkDataReviewInfoEntity(); - dataReviewInfo.setPlayUserId(userInfo.getId()); - dataReviewInfo.setState("0"); - dataReviewInfo.setDataType("3"); - if (!dataReviewInfoService.queryList(dataReviewInfo).isEmpty()) { + PlayClerkDataReviewInfoEntity entity = playClerkDataReviewInfoService.queryByClerkId(userInfo.getId(), "3", "0"); + if (entity != null) { throw new CustomException("已有申请未审核"); } - dataReviewInfo.setAddTime(new Date()); - dataReviewInfo.setClerkAvatar(userInfo.getAvatar()); - dataReviewInfo.setClerkNickname(userInfo.getNickname()); - dataReviewInfo.setContent(JSONObject.toJSONString(vo)); - dataReviewInfoService.create(dataReviewInfo); + entity = new PlayClerkDataReviewInfoEntity(); + entity.setClerkId(userInfo.getId()); + entity.setDataType("3"); + entity.setReviewState("0"); + List list = new ArrayList<>(); + list.add(vo.getAudio()); + entity.setDataContent(list); + playClerkDataReviewInfoService.create(entity); return R.ok("申请成功"); } @@ -257,7 +257,7 @@ public class WxClerkController { */ @PostMapping("/user/queryByPage") public R queryByPage(@RequestBody PlayClerkUserInfoQueryVo vo) { - IPage page = playClerkUserInfoService.selectByPage(vo, customUserService.getLoginUserId()); + IPage page = playClerkUserInfoService.selectByPage(vo, customUserService.getLoginUserId()); return R.ok(page); } @@ -270,10 +270,10 @@ public class WxClerkController { @PostMapping("/user/queryByRecommend") public R queryByRecommend() { PlayClerkUserInfoQueryVo vo = new PlayClerkUserInfoQueryVo(); - vo.setPageNum(10); + vo.setPageNum(1); vo.setPageSize(9999); vo.setRecommendationState("1"); - IPage page = playClerkUserInfoService.selectByPage(vo, ""); + IPage page = playClerkUserInfoService.selectByPage(vo, ""); return R.ok(page); } @@ -292,11 +292,11 @@ public class WxClerkController { } Map result = new HashMap<>(); List list = new ArrayList<>(); - list.add(new PlayGiftInfoVo(IdUtil.fastSimpleUUID(), "礼物1", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 0, "0")); - list.add(new PlayGiftInfoVo(IdUtil.fastSimpleUUID(), "礼物2", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 1, "0")); - list.add(new PlayGiftInfoVo(IdUtil.fastSimpleUUID(), "礼物3", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 2, "1")); - list.add(new PlayGiftInfoVo(IdUtil.fastSimpleUUID(), "礼物4", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 3, "1")); - list.add(new PlayGiftInfoVo(IdUtil.fastSimpleUUID(), "礼物5", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 4, "1")); + list.add(new PlayGiftInfoVo(IdUtils.getUuid(), "礼物1", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 0, "0")); + list.add(new PlayGiftInfoVo(IdUtils.getUuid(), "礼物2", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 1, "0")); + list.add(new PlayGiftInfoVo(IdUtils.getUuid(), "礼物3", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 2, "1")); + list.add(new PlayGiftInfoVo(IdUtils.getUuid(), "礼物4", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 3, "1")); + list.add(new PlayGiftInfoVo(IdUtils.getUuid(), "礼物5", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", 4, "1")); result.put("list", list); result.put("obtainedGift", list.size() - 1); result.put("totalGift", list.size()); @@ -312,73 +312,104 @@ public class WxClerkController { */ @GetMapping("/user/queryPriceById") public R queryDetailById(@RequestParam("id") String id) { - PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); - return R.ok(playClerkCommodityService.selectByUser(entity.getId())); + return R.ok(); + } + + + + + + /** + * 店员分页查询本人订单列表 + * + * @param vo 订单列表分页查询对象 + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @ClerkUserLogin + @PostMapping("/order/queryByPage") + public R queryOrderByPage(@Validated @RequestBody PlayClerkOrderInfoQueryVo vo) { + vo.setAcceptBy(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + IPage iPage = playOrderInfoService.clerkSelectOrderInfoByPage(vo); + return R.ok(iPage); + } + + /** + * 店员查询本人订单详情 + * + * @param id 订单ID + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @ClerkUserLogin + @GetMapping("/order/queryById") + public R queryById(@RequestParam("id") String id) { + PlayClerkOrderDetailsReturnVo orderInfo = playOrderInfoService.clerkSelectOrderDetails(ThreadLocalRequestDetail.getClerkUserInfo().getId(), id); + return R.ok(orderInfo); } /** - * 分页获取店员动态 + * 店员-接单 * - * @param id 店员ID - * @return 店员动态 - */ - @GetMapping("/user/queryTrendsById") - public R queryTrendsById(@RequestParam("id") String id) { - PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); - if (entity == null) { - throw new CustomException("用户不存在"); - } - List entities = new ArrayList<>(); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态1", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/0596854e16ae4a268eab4c08e2a9f762.mp3", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态2", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/0596854e16ae4a268eab4c08e2a9f762.mp3", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态3", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/0596854e16ae4a268eab4c08e2a9f762.mp3", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态4", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/0596854e16ae4a268eab4c08e2a9f762.mp3", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态5", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/0596854e16ae4a268eab4c08e2a9f762.mp3", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态6", "0", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态7", "0", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", new Date())); - entities.add(new PlayClerkUserTrendsInfoEntity(IdUtil.fastSimpleUUID(), "动态8", "0", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", new Date())); + * @param id 订单ID + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @ClerkUserLogin + @GetMapping("/order/accept") + public R acceptOrder(@RequestParam("id") String id) { + playOrderInfoService.updateStateTo1("1", ThreadLocalRequestDetail.getClerkUserInfo().getId(), ThreadLocalRequestDetail.getClerkUserInfo().getId(), id); + return R.ok("成功"); + } - IPage resultPage = new Page<>(); - resultPage.setRecords(entities); - // 设置分页参数 - resultPage.setCurrent(1); - resultPage.setSize(1); - resultPage.setTotal(5); // 假设total和实际情况一致 - return R.ok(resultPage); + /** + * 店员-开始订单 + * + * @param id 订单ID + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @ClerkUserLogin + @GetMapping("/order/start") + public R startOrder(@RequestParam("id") String id) { + playOrderInfoService.updateStateTo23("1", ThreadLocalRequestDetail.getClerkUserInfo().getId(), "2", id); + return R.ok("成功"); + } + + /** + * 店员-取消订单 + * + * @param vo 取消订单传参 + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @ClerkUserLogin + @PostMapping("/order/cancellation") + public R endOrder(@Validated @RequestBody PlayOrderStateEditVo vo) { + playOrderInfoService.updateStateTo4("1", ThreadLocalRequestDetail.getClerkUserInfo().getId(), vo.getOrderId(), vo.getRefundReason(), vo.getImages()); + return R.ok("成功"); } /** - * 分页获取店员评价 + * 分页获取店员评价(订单评价) * - * @param id 店员ID + * @param vo 店员评价查询对象 * @return 店员评价 */ - @GetMapping("/user/queryEvaluateById") - public R queryEvaluateById(@RequestParam("id") String id) { - PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); - if (entity == null) { - throw new CustomException("用户不存在"); - } - - List entities = new ArrayList<>(); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人1昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时")); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人2昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时")); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人3昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时")); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人4昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时")); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人5昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时")); - entities.add(new PlayClerkUserEvaluateInfoEntity(IdUtil.fastSimpleUUID(), IdUtil.fastSimpleUUID(), "评价人5昵称", "https://live-cloud-cvoon.oss-cn-hangzhou.aliyuncs.com/d8e929c041e94075b93cfc6338a83d4c/2024/04/15/fc09da2f923d46e6951292ff8f34f6aa.png", "评价内容", new Date(), IdUtil.fastSimpleUUID(), "店员昵称", IdUtil.fastSimpleUUID(), "文字语音条", "一小时", 5)); - - IPage resultPage = new Page<>(); - resultPage.setRecords(entities); - // 设置分页参数 - resultPage.setCurrent(1); - resultPage.setSize(1); - resultPage.setTotal(5); // 假设total和实际情况一致 - return R.ok(resultPage); + @PostMapping("/user/queryEvaluateByPage") + public R queryEvaluateById(@Validated @RequestBody PlayOrderEvaluateQueryVo vo) { + clerkUserInfoService.selectById(vo.getClerkId()); + return R.ok(playOrderEvaluateInfoService.selectByPage(vo)); } + @GetMapping("/level/queryAll") public R userAdd() { return R.ok(playClerkLevelInfoService.selectAll()); @@ -389,5 +420,4 @@ public class WxClerkController { return R.ok(playClerkClassificationInfoService.selectAll()); } - } diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkLeveController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkLeveController.java new file mode 100644 index 0000000..261c7b4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkLeveController.java @@ -0,0 +1,50 @@ +package com.starry.admin.modules.weichat.controller; + +import com.starry.admin.modules.clerk.module.entity.PlayClerkLevelInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkLevelInfoService; +import com.starry.admin.modules.weichat.entity.level.PlayClerkLevelReturnVo; +import com.starry.common.result.R; +import lombok.extern.slf4j.Slf4j; +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; +import java.util.ArrayList; +import java.util.List; + +/** + * 店员等级 + * + * @author admin + * @since 2024/5/29 上午6:24 + **/ +@Slf4j +@RestController +@RequestMapping("/wx/level/") +public class WxClerkLeveController { + + @Resource + private IPlayClerkLevelInfoService playClerkLevelInfoService; + + + /** + * 顾客查询所有店员所有等级列表 + * + * @return 店员所有等级列表 + */ + @GetMapping("/custom/queryClerkAllLevel") + public R customQueryClerkAllLevel() { + List list = playClerkLevelInfoService.selectAll(); + List returnVoList = new ArrayList<>(list.size()); + for (PlayClerkLevelInfoEntity entity : list) { + PlayClerkLevelReturnVo vo = new PlayClerkLevelReturnVo(); + vo.setId(entity.getId()); + vo.setLevelName(entity.getName()); + returnVoList.add(vo); + } + return R.ok(returnVoList); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkWagesController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkWagesController.java new file mode 100644 index 0000000..d5e1f6d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxClerkWagesController.java @@ -0,0 +1,140 @@ +package com.starry.admin.modules.weichat.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.starry.admin.common.aspect.ClerkUserLogin; +import com.starry.admin.common.conf.ThreadLocalRequestDetail; +import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; +import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; +import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.weichat.entity.wages.*; +import com.starry.common.result.R; +import com.starry.common.utils.ConvertUtil; +import com.starry.common.utils.IdUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +/** + * 店员工资接口 + * + * @author admin + * @since 2024/5/31 16:18 + **/ +@Slf4j +@RestController +@RequestMapping("/wx/wages") +public class WxClerkWagesController { + @Resource + private IPlayClerkWagesInfoService playClerkWagesInfoService; + + @Resource + private IPlayClerkWagesDetailsInfoService playClerkWagesDetailsInfoService; + + @Resource + private IPlayOrderInfoService playOrderInfoService; + + + /** + * 店员查询本人未结算工资 + * 订单完成之后,24小时之后进行订单结算,并且一旦订单结算了,就无法进行退款。想要退款,只能在24小时之内进行。 + * + * @author admin + * @since 2024/5/31 16:20 + **/ + @ClerkUserLogin + @GetMapping("clerk/queryUnsettledWages") + public R clerkQueryUnsettledWages() { + List list = playOrderInfoService.queryNotSettlementOrder(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + BigDecimal orderMoney = BigDecimal.ZERO; + BigDecimal estimatedRevenue = BigDecimal.ZERO; + for (PlayOrderInfoEntity entity : list) { + orderMoney = orderMoney.add(entity.getFinalAmount()); + estimatedRevenue = estimatedRevenue.add(entity.getEstimatedRevenue()); + } + ClerkUnsettledWagesReturnVo vo = new ClerkUnsettledWagesReturnVo(orderMoney, list.size(), estimatedRevenue); + return R.ok(vo); + } + + /** + * 店员查询本人当期工资 + * + * @author admin + * @since 2024/5/31 16:20 + **/ + @ClerkUserLogin + @GetMapping("clerk/queryCurrentPeriodWages") + public R clerkQueryCurrentPeriodWages() { + PlayClerkWagesInfoEntity entity = playClerkWagesInfoService.selectCurrentPeriodWagesByClerkId(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + if (entity == null) { + entity = new PlayClerkWagesInfoEntity(); + entity.setClerkId(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + entity.setId(IdUtils.getUuid()); + entity.setStartCountDate(LocalDate.now()); + entity.setEndCountDate(LocalDate.now()); + entity.setFinalAmount(BigDecimal.ZERO); + entity.setOrderNumber(0); + entity.setOrdersExpiredNumber(0); + entity.setOrderContinueNumber(0); + entity.setOrderContinueProportion(0); + entity.setOrderContinueMoney(BigDecimal.ZERO); + } + ClerkCurrentPeriodWagesReturnVo returnVo = ConvertUtil.entityToVo(entity, ClerkCurrentPeriodWagesReturnVo.class); + returnVo.setTotalMoney(entity.getFinalAmount()); + returnVo.setOrderWages(ConvertUtil.entityToVo(entity, OrderWagesReturnVo.class)); + return R.ok(returnVo); + } + + /** + * 店员查询本人历史工资 + * + * @author admin + * @since 2024/5/31 16:20 + **/ + @ClerkUserLogin + @PostMapping("clerk/queryHistoricalWages") + public R clerkQueryHistoricalWages() { + List list = playClerkWagesInfoService.selectHistoricalWagesByClerkId(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + List returnVoList = new ArrayList<>(list.size()); + for (PlayClerkWagesInfoEntity entity : list) { + returnVoList.add(ConvertUtil.entityToVo(entity, ClerkHistoricalWagesReturnVo.class)); + } + IPage page = new Page<>(); + page.setTotal(5); + page.setRecords(returnVoList); + page.setSize(10); + page.setPages(1); + return R.ok(page); + + } + + /** + * 店员查询本人工资详情 + * + * @author admin + * @since 2024/5/31 16:20 + **/ + @ClerkUserLogin + @GetMapping("clerk/queryWagesDetails") + public R clerkQueryWagesDetails(@RequestParam("id") String id) { + if (StrUtil.isBlankIfStr(id)) { + throw new CustomException("ID不能为空"); + } + List list = playClerkWagesDetailsInfoService.selectByWagesId(id); + List returnVos = new ArrayList<>(list.size()); + for (PlayClerkWagesDetailsInfoEntity entity : list) { + returnVos.add(ConvertUtil.entityToVo(entity, ClerkWagesDetailsReturnVo.class)); + } + return R.ok(returnVos); + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCommonController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCommonController.java index 2eae461..875e10b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCommonController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCommonController.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.weichat.controller; import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.starry.admin.common.exception.CustomException; import com.starry.admin.common.oss.service.IOssFileService; @@ -61,7 +61,7 @@ public class WxCommonController { String accessToken = wxAccessTokenService.getAccessToken(); // 下载录音文件,并转化为InputStream InputStream inputStream = WxFileUtils.getTemporaryMaterial(accessToken, mediaId); - File tempFile = FileUtil.createTempFile("wx_" + SecurityUtils.getTenantId(), IdUtil.fastSimpleUUID() + ".amr", null).toFile(); + File tempFile = FileUtil.createTempFile("wx_" + SecurityUtils.getTenantId(), IdUtils.getUuid() + ".amr", null).toFile(); // 可以在这里对临时文件进行操作 log.error("tempFile = {}", tempFile.getPath()); try (FileOutputStream fileOutputStream = new FileOutputStream(tempFile)) { @@ -76,11 +76,11 @@ public class WxCommonController { throw new CustomException("音频文件上传失败,文件不存在"); } //将下载的微信素材文件,转化为MP3文件 - File targetFile = FileUtil.createTempFile("wx_" + SecurityUtils.getTenantId(), IdUtil.fastSimpleUUID() + ".mp3", null).toFile(); + File targetFile = FileUtil.createTempFile("wx_" + SecurityUtils.getTenantId(), IdUtils.getUuid() + ".mp3", null).toFile(); log.error("targetFile = {}", targetFile.getPath()); WxFileUtils.audioConvert2Mp3(tempFile, targetFile); //将MP3文件上传到OSS - String fileAddress = ossFileService.upload(Files.newInputStream(targetFile.toPath()), SecurityUtils.getTenantId(), IdUtil.fastSimpleUUID() + ".mp3"); + String fileAddress = ossFileService.upload(Files.newInputStream(targetFile.toPath()), SecurityUtils.getTenantId(), IdUtils.getUuid() + ".mp3"); //删除临时文件 FileUtil.del(tempFile); FileUtil.del(targetFile); diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java index 0c71de5..1468a7e 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java @@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.starry.admin.common.aspect.CustomUserLogin; import com.starry.admin.common.conf.ThreadLocalRequestDetail; import com.starry.admin.common.exception.CustomException; -import com.starry.admin.modules.balance.service.IPlayBalanceDetailsInfoService; -import com.starry.admin.modules.clerk.module.entity.PlayClerkCommodityEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; -import com.starry.admin.modules.clerk.module.entity.PlayClerkUserListResultVo; import com.starry.admin.modules.clerk.service.IPlayClerkCommodityService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.custom.module.entity.PlayCustomLeaveMsgEntity; @@ -22,19 +19,31 @@ import com.starry.admin.modules.gift.service.IPlayGiftInfoService; import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; -import com.starry.admin.modules.order.module.vo.PlayOrderDetailsReturnVo; -import com.starry.admin.modules.order.module.vo.PlayOrderInfoQueryVo; -import com.starry.admin.modules.order.module.vo.PlayOrderInfoReturnVo; +import com.starry.admin.modules.order.module.entity.PlayOrderRandomInfoEntity; import com.starry.admin.modules.order.service.IPlayOrderComplaintInfoService; import com.starry.admin.modules.order.service.IPlayOrderEvaluateInfoService; import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.order.service.IPlayOrderRandomInfoService; +import com.starry.admin.modules.play.module.vo.PlayCommodityInfoVo; +import com.starry.admin.modules.play.service.IPlayCommodityInfoService; import com.starry.admin.modules.weichat.entity.*; +import com.starry.admin.modules.weichat.entity.clerk.PlayClerkUserInfoResultVo; +import com.starry.admin.modules.weichat.entity.costom.PlayCustomHideLevelStateEditVo; +import com.starry.admin.modules.weichat.entity.costom.PlayCustomHideRankingStateEditVo; +import com.starry.admin.modules.weichat.entity.evaluate.PlayCustomOrderEvaluateReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayCustomOrderDetailsReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayCustomOrderInfoQueryVo; +import com.starry.admin.modules.weichat.entity.order.PlayCustomOrderListReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayOrderInfoCommodityAdd; +import com.starry.admin.modules.weichat.entity.user.PlayCustomUserReturnDetailVo; import com.starry.admin.modules.weichat.service.WxCustomUserService; import com.starry.admin.utils.MoneyUtils; import com.starry.common.result.R; import com.starry.common.utils.ConvertUtil; +import com.starry.common.utils.IdUtils; import com.starry.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -53,9 +62,6 @@ public class WxCustomController { @Resource private IPlayCustomUserInfoService customUserInfoService; - @Resource - private IPlayBalanceDetailsInfoService playBalanceDetailsInfoService; - @Resource private IPlayClerkUserInfoService clerkUserInfoService; @@ -63,7 +69,7 @@ public class WxCustomController { private IPlayGiftInfoService giftInfoService; @Resource - private IPlayClerkCommodityService clerkCommodityService; + private IPlayCommodityInfoService playCommodityInfoService; @Resource private IPlayCustomFollowInfoService playCustomFollowInfoService; @@ -86,6 +92,10 @@ public class WxCustomController { @Resource private IPlayOrderEvaluateInfoService playOrderEvaluateInfoService; + @Resource + private IPlayOrderRandomInfoService playOrderRandomInfoService; + + /** * 根据店员ID查询店员详细信息 * @@ -95,7 +105,7 @@ public class WxCustomController { @GetMapping("/queryClerkDetailedById") public R queryClerkDetailedById(@RequestParam("id") String id) { PlayClerkUserInfoEntity entity = clerkUserInfoService.selectById(id); - PlayClerkUserListResultVo vo = ConvertUtil.entityToVo(entity, PlayClerkUserListResultVo.class); + PlayClerkUserInfoResultVo vo = ConvertUtil.entityToVo(entity, PlayClerkUserInfoResultVo.class); vo.setAddress(entity.getCity()); // 查询是否关注,未登录情况下,默认为未关注 String loginUserId = customUserService.getLoginUserId(); @@ -103,10 +113,19 @@ public class WxCustomController { vo.setFollowState(playCustomFollowInfoService.queryFollowState(loginUserId, vo.getId())); } // 服务项目 - vo.setCommodity(playClerkCommodityService.getClerkCommodityList(vo.getId())); + vo.setCommodity(playClerkCommodityService.getClerkCommodityList(vo.getId(), "1")); return R.ok(vo); } + /** + * 顾客本人刷新头像 + */ + @CustomUserLogin + @GetMapping("/refreshAvatar") + public R refreshAvatar() { + return R.ok(""); + } + /** * 根据顾客ID查询当前顾客详细信息 */ @@ -115,12 +134,43 @@ public class WxCustomController { public R queryById() { String userId = ThreadLocalRequestDetail.getCustomUserInfo().getId(); PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(userId); - return R.ok(customUserInfo); + PlayCustomUserReturnDetailVo vo = ConvertUtil.entityToVo(customUserInfo, PlayCustomUserReturnDetailVo.class); + PlayClerkUserInfoEntity clerkUserInfo = clerkUserInfoService.selectByOpenid(customUserInfo.getOpenid()); + if (clerkUserInfo != null) { + vo.setClerkState("1"); + } + return R.ok(vo); + } + + /** + * 顾客本人修改隐藏等级状态 + */ + @CustomUserLogin + @PostMapping("/updateHideLevelState") + public R updateHideLevelState(@Validated @RequestBody PlayCustomHideLevelStateEditVo vo) { + vo.setId(ThreadLocalRequestDetail.getCustomUserInfo().getId()); + PlayCustomUserInfoEntity entity = new PlayCustomUserInfoEntity(); + BeanUtils.copyProperties(vo, entity); + customUserInfoService.update(entity); + return R.ok("成功"); + } + + /** + * 顾客本人修改隐藏排名状态 + */ + @CustomUserLogin + @PostMapping("/updateHideRankingState") + public R updateHideRankingState(@Validated @RequestBody PlayCustomHideRankingStateEditVo vo) { + vo.setId(ThreadLocalRequestDetail.getCustomUserInfo().getId()); + PlayCustomUserInfoEntity entity = new PlayCustomUserInfoEntity(); + BeanUtils.copyProperties(vo, entity); + customUserInfoService.update(entity); + return R.ok("成功"); } /** - * 打赏店员 + * 打赏店员-打赏余额 */ @CustomUserLogin @PostMapping("/order/reward") @@ -132,14 +182,15 @@ public class WxCustomController { if (new BigDecimal(vo.getMoney()).compareTo(customUserInfo.getAccountBalance()) > 0) { throw new CustomException("余额不足"); } + String orderId = IdUtils.getUuid(); // 记录订单信息 - playOrderInfoService.createRewardOrder(new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), userId); + playOrderInfoService.createOrderInfo(orderId, playOrderInfoService.getOrderNo(), "3", "2", "2", "0", "1", "", "0", BigDecimal.ZERO, "", "", "", new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), BigDecimal.ZERO, userId, vo.getClerkId(), vo.getWeiChatCode(), vo.getRemark()); + // + // playOrderInfoService.createRewardOrder(orderId, new BigDecimal(vo.getMoney()), new BigDecimal(vo.getMoney()), userId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney()))); - playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "打赏", new BigDecimal(vo.getMoney()).multiply(new BigDecimal("-1"))); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(new BigDecimal(vo.getMoney())), "1", "打赏", new BigDecimal(vo.getMoney()), orderId); // 陪聊增加余额 - clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance().add(new BigDecimal(vo.getMoney()))); - playBalanceDetailsInfoService.create("1", clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(new BigDecimal(vo.getMoney())), "打赏", new BigDecimal(vo.getMoney()).multiply(new BigDecimal("1"))); + // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(new BigDecimal(vo.getMoney())), "2", "打赏", new BigDecimal(vo.getMoney()), orderId); return R.ok("成功"); } @@ -158,14 +209,15 @@ public class WxCustomController { if (money.compareTo(customUserInfo.getAccountBalance()) > 0) { throw new CustomException("账号余额不足"); } + String orderId = IdUtils.getUuid(); // 记录订单信息 - playOrderInfoService.createGiftOrder(vo.getGiftId(), giftInfo.getPrice(), vo.getGiftQuantity(), money, money, userId); + playOrderInfoService.createOrderInfo(orderId, playOrderInfoService.getOrderNo(), "3", "2", "2", "1", "1", giftInfo.getId(), "0", giftInfo.getPrice(), "", giftInfo.getName(), String.valueOf(vo.getGiftQuantity()), money, money, BigDecimal.ZERO, userId, vo.getClerkId(), vo.getWeiChatCode(), vo.getRemark()); + + // playOrderInfoService.createGiftOrder(orderId, vo.getGiftId(), giftInfo.getPrice(), String.valueOf(vo.getGiftQuantity()), money, money, userId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money)); - playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "赠送礼物", money.multiply(new BigDecimal("-1"))); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "赠送礼物", money, orderId); // 陪聊增加余额 - clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance().add(money)); - playBalanceDetailsInfoService.create("1", clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "赠送礼物", money.multiply(new BigDecimal("1"))); + // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "2", "赠送礼物", money, orderId); return R.ok("成功"); } @@ -182,29 +234,61 @@ public class WxCustomController { @PostMapping("/order/commodity") public R commodityToOrdder(@Validated @RequestBody PlayOrderInfoCommodityAdd vo) { String customId = ThreadLocalRequestDetail.getCustomUserInfo().getId(); - - PlayClerkCommodityEntity clerkCommodity = clerkCommodityService.selectPlayClerkCommodityById(vo.getCommodityId()); + PlayCommodityInfoVo commodityInfo = playCommodityInfoService.queryCommodityInfo(vo.getCommodityId()); PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(customId); PlayClerkUserInfoEntity clerkUserInfo = clerkUserInfoService.selectById(vo.getClerkId()); - BigDecimal money = clerkCommodity.getCommodityPrice().multiply(new BigDecimal(vo.getCommodityQuantity())); + BigDecimal money = commodityInfo.getCommodityPrice().multiply(new BigDecimal(vo.getCommodityQuantity())); if (money.compareTo(customUserInfo.getAccountBalance()) > 0) { throw new CustomException("余额不足"); } + String orderId = IdUtils.getUuid(); + // 记录订单信息 - playOrderInfoService.createOrdinaryOrder("2", "0", clerkCommodity.getCommodityId(), clerkCommodity.getCommodityPrice(), vo.getCommodityQuantity(), money, money, customId); + playOrderInfoService.createOrderInfo(orderId, playOrderInfoService.getOrderNo(), "0", "2", "0", "", "1", commodityInfo.getCommodityId(), "1", commodityInfo.getCommodityPrice(), commodityInfo.getServiceDuration(), commodityInfo.getCommodityName(), String.valueOf(vo.getCommodityQuantity()), money, money, BigDecimal.ZERO, customId, clerkUserInfo.getId(), vo.getWeiChatCode(), vo.getRemark()); + // playOrderInfoService.createOrdinaryOrder(orderId, commodityInfo.getCommodityId(), commodityInfo.getCommodityPrice(), String.valueOf(vo.getCommodityQuantity()), commodityInfo.getCommodityName(), commodityInfo.getServiceDuration(), money, money, customId, clerkUserInfo.getId(), vo.getRemark(), vo.getWeiChatCode()); // 顾客减少余额 - customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance().subtract(money)); - playBalanceDetailsInfoService.create("0", customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "打赏", money.multiply(new BigDecimal("-1"))); + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-指定单", money, orderId); // 陪聊增加余额 - clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance().add(money)); - playBalanceDetailsInfoService.create("1", clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "下单", money.multiply(new BigDecimal("1"))); + // clerkUserInfoService.updateAccountBalanceById(clerkUserInfo.getId(), clerkUserInfo.getAccountBalance(), clerkUserInfo.getAccountBalance().add(money), "2", "下单-指定单", money, orderId); return R.ok("成功"); } + + /** + * 新增随机订单 + * + * @param vo 随机单创建对象 + * @return R + */ @CustomUserLogin @PostMapping("/order/random") public R randomToOrdder(@Validated @RequestBody PlayOrderInfoRandomAdd vo) { + // 验证当前顾客余额是否充足 + String customId = ThreadLocalRequestDetail.getCustomUserInfo().getId(); + PlayCustomUserInfoEntity customUserInfo = customUserInfoService.selectById(customId); + PlayCommodityInfoVo commodityInfo = playCommodityInfoService.queryCommodityInfo(vo.getCommodityId()); + BigDecimal money = commodityInfo.getCommodityPrice().multiply(new BigDecimal(vo.getCommodityQuantity())); + if (money.compareTo(customUserInfo.getAccountBalance()) > 0) { + throw new CustomException("余额不足"); + } + String orderId = IdUtils.getUuid(); + + PlayOrderRandomInfoEntity orderRandomInfo = ConvertUtil.entityToVo(vo, PlayOrderRandomInfoEntity.class); + ; + orderRandomInfo.setCommodityId(commodityInfo.getCommodityId()); + orderRandomInfo.setCommodityName(commodityInfo.getCommodityName()); + orderRandomInfo.setCommodityPrice(commodityInfo.getCommodityPrice()); + orderRandomInfo.setCommodityNumber(String.valueOf(vo.getCommodityQuantity())); + orderRandomInfo.setServiceDuration(commodityInfo.getServiceDuration()); + orderRandomInfo.setId(orderId); + playOrderRandomInfoService.create(orderRandomInfo); + // 记录订单信息 + playOrderInfoService.createOrderInfo(orderId, playOrderInfoService.getOrderNo(), "0", "2", "1", "", "1", commodityInfo.getCommodityId(), "1", commodityInfo.getCommodityPrice(), commodityInfo.getServiceDuration(), commodityInfo.getCommodityName(), String.valueOf(vo.getCommodityQuantity()), money, money, BigDecimal.ZERO, customId, "", vo.getWeiChatCode(), vo.getRemark()); + + // playOrderInfoService.createRandomOrder(orderId, customUserInfo.getId(), commodityInfo.getCommodityPrice(), String.valueOf(vo.getCommodityQuantity()), commodityInfo.getServiceDuration(), commodityInfo.getCommodityName(), money, money, customId, vo.getRemark(), vo.getWeiChatCode()); + // 顾客减少余额 + customUserInfoService.updateAccountBalanceById(customUserInfo.getId(), customUserInfo.getAccountBalance(), customUserInfo.getAccountBalance().subtract(money), "1", "下单-随机单", money, orderId); // 下单成功后,先根据用户条件进行随机分配 return R.ok("下单成功"); } @@ -220,10 +304,9 @@ public class WxCustomController { **/ @CustomUserLogin @PostMapping("/order/queryByPage") - public R queryOrderByPage(@Validated @RequestBody PlayOrderInfoQueryVo vo) { + public R queryOrderByPage(@Validated @RequestBody PlayCustomOrderInfoQueryVo vo) { vo.setPurchaserBy(ThreadLocalRequestDetail.getCustomUserInfo().getId()); - vo.setOrderType("2"); - IPage iPage = playOrderInfoService.selectOrderInfoPage(vo); + IPage iPage = playOrderInfoService.customSelectOrderInfoByPage(vo); return R.ok(iPage); } @@ -238,12 +321,13 @@ public class WxCustomController { @CustomUserLogin @GetMapping("/order/queryById") public R queryById(@RequestParam("id") String id) { - PlayOrderDetailsReturnVo orderInfo = playOrderInfoService.selectById(id); - return R.ok(orderInfo); + PlayCustomOrderDetailsReturnVo vo = playOrderInfoService.customSelectOrderDetails(ThreadLocalRequestDetail.getCustomUserInfo().getId(), id); + return R.ok(vo); } + /** - * 顾客分页查询本人订单列表 + * 顾客-完成订单 * * @param id 订单ID * @return com.starry.common.result.R @@ -251,9 +335,25 @@ public class WxCustomController { * @since 2024/5/8 15:57 **/ @CustomUserLogin - @GetMapping("/order/cancellation") - public R cancellationOrder(@RequestParam("id") String id) { - playOrderInfoService.customCancellationOrder(id); + @GetMapping("/order/end") + public R endOrder(@RequestParam("id") String id) { + playOrderInfoService.updateStateTo23("0", ThreadLocalRequestDetail.getCustomUserInfo().getId(), "3", id); + return R.ok("成功"); + } + + + /** + * 顾客取消订单 + * + * @param vo 订单取消对象 + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @CustomUserLogin + @PostMapping("/order/cancellation") + public R cancellationOrder(@Validated @RequestBody PlayOrderCancellationVo vo) { + playOrderInfoService.updateStateTo4("0", ThreadLocalRequestDetail.getCustomUserInfo().getId(), vo.getOrderId(), vo.getRefundReason(), vo.getImages()); return R.ok("取消成功"); } @@ -278,6 +378,24 @@ public class WxCustomController { return R.ok("评价成功"); } + /** + * 根据订单ID查询当前顾客对当前人的评价 + * + * @param orderId 订单ID + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @CustomUserLogin + @GetMapping("/order/evaluate/queryByOrderId") + public R addOrderEvaluateByOrderId(@RequestParam("id") String orderId) { + PlayOrderEvaluateInfoEntity orderEvaluateInfo = playOrderEvaluateInfoService.queryCustomToOrderEvaluateInfo(ThreadLocalRequestDetail.getCustomUserInfo().getId(), orderId); + if (orderEvaluateInfo == null) { + throw new CustomException("当前订单未评价"); + } + return R.ok(ConvertUtil.entityToVo(orderEvaluateInfo, PlayCustomOrderEvaluateReturnVo.class)); + } + /** * 新增订单投诉信息 @@ -301,9 +419,6 @@ public class WxCustomController { } - - - /** * 顾客新增留言 * @@ -348,12 +463,6 @@ public class WxCustomController { } - - - - - - /** * 顾客修改对陪玩的关注状态 * @@ -370,5 +479,21 @@ public class WxCustomController { return R.ok("修改成功"); } + /** + * 顾客查询已关注陪聊列表 + * + * @param vo 陪玩的关注状态对象 + * @return com.starry.common.result.R + * @author admin + * @since 2024/5/8 15:57 + **/ + @CustomUserLogin + @PostMapping("/follow/queryByPage") + public R followQueryByPage(@Validated @RequestBody PlayClerkFollowQueryVo vo) { + vo.setCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId()); + IPage iPage = playCustomFollowInfoService.selectByPage(vo); + return R.ok(iPage); + } + } diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxGiftController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxGiftController.java index a8b618f..695b1b4 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxGiftController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxGiftController.java @@ -1,16 +1,23 @@ package com.starry.admin.modules.weichat.controller; +import cn.hutool.core.util.StrUtil; +import com.starry.admin.common.aspect.ClerkUserLogin; +import com.starry.admin.common.conf.ThreadLocalRequestDetail; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.gift.service.IPlayGiftInfoService; import com.starry.admin.modules.weichat.entity.PlayGiftInfoDto; +import com.starry.admin.modules.weichat.entity.gift.PlayClerkGiftReturnVo; import com.starry.common.result.R; import com.starry.common.utils.ConvertUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * @author admin @@ -22,8 +29,35 @@ public class WxGiftController { @Resource private IPlayGiftInfoService giftInfoService; + /** + * 顾客查询礼物列表 + * + * @return 礼物列表 + */ @GetMapping("/listByAll") - public R rewardToOrder() { + public R customListByAll() { return R.ok(ConvertUtil.entityToVoList(giftInfoService.listByAll(),PlayGiftInfoDto.class)); } + + + /** + * 顾客查询礼物列表 + * + * @param obtained 店员获得礼物状态,[0:未获得,1:已获得] + * @return 礼物列表 + */ + @ClerkUserLogin + @GetMapping("/clerk/listByAll") + public R clerkListByAll(@RequestParam("obtained") String obtained) { + if (StrUtil.isBlankIfStr(obtained)) { + throw new CustomException("obtained参数异常"); + } + if (!"0".equals(obtained) && !"1".equals(obtained)) { + throw new CustomException("obtained参数异常"); + } + List list = giftInfoService.clerkListByAll(ThreadLocalRequestDetail.getClerkUserInfo().getId(), obtained); + return R.ok(list); + } + + } diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxLevelController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxLevelController.java new file mode 100644 index 0000000..1ab2805 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxLevelController.java @@ -0,0 +1,48 @@ +package com.starry.admin.modules.weichat.controller; + + +import com.starry.admin.common.aspect.CustomUserLogin; +import com.starry.admin.modules.custom.module.entity.PlayCustomLevelInfoEntity; +import com.starry.admin.modules.custom.service.IPlayCustomLevelInfoService; +import com.starry.admin.modules.weichat.entity.vo.PlayCustomLevelInfoReturnVo; +import com.starry.common.result.R; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +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; +import java.util.ArrayList; +import java.util.List; + +/** + * @author admin + */ +@Slf4j +@RestController +@RequestMapping("/wx/level/") +public class WxLevelController { + + @Resource + private IPlayCustomLevelInfoService levelInfoService; + + + /** + * 顾客查询登记列表 + */ + @CustomUserLogin + @GetMapping("/custom/queryAll") + public R queryById() { + List list = levelInfoService.selectAll(); + List result = new ArrayList<>(); + for (PlayCustomLevelInfoEntity entity : list) { + PlayCustomLevelInfoReturnVo vo = new PlayCustomLevelInfoReturnVo(); + BeanUtils.copyProperties(entity, vo); + result.add(vo); + } + return R.ok(result); + } + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOauthController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOauthController.java index d564823..1eb6d60 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOauthController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOauthController.java @@ -107,6 +107,7 @@ public class WxOauthController { clerkUserInfoService.updateTokenById(entity.getId(), tokenValue); return R.ok(jsonObject); } catch (Exception e) { + log.error("顾客登录失败,", e); return R.unauthorized(); } } @@ -155,8 +156,8 @@ public class WxOauthController { @PostMapping("/custom/login") - public R customLogin(@Validated @RequestBody WxUserLoginVo vo) { + log.info("顾客登录接口调用,code = {}", vo.getCode()); try { String userId = wxOauthService.customUserLogin(vo.getCode()); PlayCustomUserInfoEntity entity = customUserInfoService.selectById(userId); @@ -174,6 +175,7 @@ public class WxOauthController { customUserInfoService.updateTokenById(entity.getId(), tokenValue); return R.ok(jsonObject); } catch (Exception e) { + log.error("登录失败", e); return R.unauthorized(); } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOrderInfoController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOrderInfoController.java new file mode 100644 index 0000000..f5d467c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxOrderInfoController.java @@ -0,0 +1,166 @@ +package com.starry.admin.modules.weichat.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.starry.admin.common.aspect.ClerkUserLogin; +import com.starry.admin.common.aspect.CustomUserLogin; +import com.starry.admin.common.conf.ThreadLocalRequestDetail; +import com.starry.admin.common.exception.CustomException; +import com.starry.admin.modules.order.module.entity.PlayOrderContinueInfoEntity; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueQueryVo; +import com.starry.admin.modules.order.module.vo.PlayOrderContinueReturnVo; +import com.starry.admin.modules.order.module.vo.PlayOrderReviewStateEditVo; +import com.starry.admin.modules.order.service.IPlayOrderContinueInfoService; +import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.order.service.IPlayOrderRandomInfoService; +import com.starry.admin.modules.weichat.entity.order.*; +import com.starry.common.result.R; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 订单处理 + * + * @author admin + * @since 2024/5/25 下午2:45 + **/ +@Slf4j +@RestController +@RequestMapping("/wx/order") +public class WxOrderInfoController { + + @Resource + private IPlayOrderInfoService playOrderInfoService; + + @Resource + private IPlayOrderContinueInfoService playOrderContinueInfoService; + + + @Resource + private IPlayOrderRandomInfoService playOrderRandomInfoService; + + + /** + * 续单申请-店员发起 + * + * @param vo 续单申请提交对象 + */ + @ClerkUserLogin + @PostMapping("/clerk/continue") + public R continueToOrdder(@Validated @RequestBody PlayOrderInfoContinueAdd vo) { + PlayOrderInfoEntity entity = playOrderInfoService.selectOrderInfoById(vo.getOrderId()); + if (!entity.getAcceptBy().equals(ThreadLocalRequestDetail.getClerkUserInfo().getId())) { + throw new CustomException("非本人订单;无法续单"); + } + + PlayOrderContinueInfoEntity orderContinueInfo = playOrderContinueInfoService.selectPlayOrderId(vo.getOrderId()); + if (orderContinueInfo != null) { + throw new CustomException("同一场订单只能续单一次"); + } + PlayOrderContinueInfoEntity orderContinueInfoEntity = new PlayOrderContinueInfoEntity(); + orderContinueInfoEntity.setOrderId(entity.getId()); + orderContinueInfoEntity.setOrderNo(entity.getOrderNo()); + orderContinueInfoEntity.setCustomId(entity.getPurchaserBy()); + orderContinueInfoEntity.setClerkId(entity.getAcceptBy()); + orderContinueInfoEntity.setPlaceType(entity.getPlaceType()); + orderContinueInfoEntity.setOrderMoney(entity.getOrderMoney()); + orderContinueInfoEntity.setFinalAmount(entity.getFinalAmount()); + orderContinueInfoEntity.setContinueMsg(entity.getRemark()); + orderContinueInfoEntity.setReviewedRequired("1"); + orderContinueInfoEntity.setReviewedState("0"); + orderContinueInfoEntity.setImages(vo.getImages()); + playOrderContinueInfoService.create(orderContinueInfoEntity); + return R.ok("下单成功"); + } + + + /** + * 店员查询随机单列表 + * + * @param vo 随机单列表查询对象 + * @return 订单列表 + */ + @ClerkUserLogin + @PostMapping("/clerk/selectRandomOrderByPage") + public R selectUnacceptedOrderByPage(@Validated @RequestBody PlayOrderInfoRandomQueryVo vo) { + return R.ok(playOrderRandomInfoService.selectByPage(vo)); + } + + /** + * 店员查询随机单详情 + * + * @param vo 随机单列表查询对象 + * @return 订单列表 + */ + @ClerkUserLogin + @GetMapping("/clerk/selectRandomOrderById") + public R selectUnacceptedOrderByPage(@RequestParam("id") String id) { + PlayClerkRandomOrderDetailReturnVo vo = playOrderRandomInfoService.clerkSelectOrderDetails(id,ThreadLocalRequestDetail.getClerkUserInfo().getId()); + if (vo == null) { + throw new CustomException("订单不存在"); + } + return R.ok(vo); + } + + /** + * 店员查询打赏动态 + * + * @param vo 打赏动态查询列表 + * @return 打赏动态列表 + */ + + @PostMapping("/clerk/selectRewardByPage") + public R clerkSelectRewardByPage(@Validated @RequestBody PlayRewardOrderQueryVo vo) { + return R.ok(playOrderInfoService.selectRewardByPage(vo)); + } + + /** + * 顾客查询最新打赏动态 + * + * @param vo 打赏动态查询列表 + * @return 打赏动态列表 + */ + + @GetMapping("/custom/selectRewardByPage") + public R customSelectReward() { + PlayRewardOrderQueryVo vo = new PlayRewardOrderQueryVo(); + return R.ok(playOrderInfoService.selectRewardByPage(vo)); + } + + + /** + * 顾客-分页查询续单列表 + * + * @param vo PlayOrderInfoContinueQueryVo + * @return 续单历史 + */ + @CustomUserLogin + @PostMapping("/custom/continueListByPage") + public R continueListByPage(@Validated @RequestBody PlayOrderInfoContinueQueryVo vo) { + PlayOrderContinueQueryVo queryVo = new PlayOrderContinueQueryVo(); + BeanUtils.copyProperties(vo, queryVo); + queryVo.setCustomId(ThreadLocalRequestDetail.getCustomUserInfo().getId()); + IPage page = playOrderContinueInfoService.selectPlayByPage(queryVo); + return R.ok(page); + } + + + /** + * 审批续单申申请 + */ + @CustomUserLogin + @PostMapping("/custom/updateReviewState") + public R updateReviewState(@Validated @RequestBody PlayOrderReviewStateEditVo vo) { + PlayOrderContinueInfoEntity entity = playOrderContinueInfoService.selectPlayOrderContinueInfoById(vo.getId()); + if (!"0".equals(entity.getReviewedState())) { + throw new CustomException("续单已处理"); + } + playOrderContinueInfoService.updateReviewState(vo); + return R.ok("成功"); + } + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java index dc931ea..714862a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayController.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.weichat.controller; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; @@ -17,6 +17,7 @@ import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.service.IPlayOrderInfoService; +import com.starry.admin.modules.order.service.impl.PlayOrderInfoServiceImpl; import com.starry.admin.modules.platform.entity.SysTenantEntity; import com.starry.admin.modules.platform.service.impl.SysTenantServiceImpl; import com.starry.admin.modules.weichat.service.WxCustomMpService; @@ -50,6 +51,9 @@ public class WxPlayController { @Resource private WxCustomMpService mpService; + @Resource + PlayOrderInfoServiceImpl playOrderInfoService; + /** * 微信支付-微信回调地址(https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8) @@ -137,8 +141,8 @@ public class WxPlayController { // 订单总金额,单位为分 long totalFee = getTotalFee(money); // 创建订单信息 - String orderId = IdUtil.fastSimpleUUID(); - orderInfoService.createRechargeOrder(orderId, new BigDecimal(totalFee * 1.0 / 100), new BigDecimal(totalFee * 1.0 / 100), customUserInfo.getId()); + String orderNo = playOrderInfoService.getOrderNo(); + orderInfoService.createRechargeOrder(orderNo, new BigDecimal(totalFee * 1.0 / 100), new BigDecimal(totalFee * 1.0 / 100), customUserInfo.getId()); String body = "树洞充值"; WxPayService wxPayService = mpService.getWxPay(); @@ -146,7 +150,7 @@ public class WxPlayController { request.setOpenid(customUserInfo.getOpenid()); // 订单总金额,单位为分(开发阶段固定设置为支付1分钱) request.setTotalFee(1); - request.setOutTradeNo(orderId); + request.setOutTradeNo(orderNo); request.setTradeType("JSAPI"); request.setSpbillCreateIp("101.43.206.16"); request.setNotifyUrl(wxPayService.getConfig().getNotifyUrl()); diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayOrderRankingController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayOrderRankingController.java new file mode 100644 index 0000000..27519cc --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxPlayOrderRankingController.java @@ -0,0 +1,52 @@ +package com.starry.admin.modules.weichat.controller; + +import com.starry.admin.common.aspect.ClerkUserLogin; +import com.starry.admin.common.conf.ThreadLocalRequestDetail; +import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; +import com.starry.admin.modules.weichat.entity.order.PlayOrderHistoryRankingReturnVo; +import com.starry.admin.modules.weichat.entity.order.PlayOrderRankingReturnVo; +import com.starry.common.result.R; +import lombok.extern.slf4j.Slf4j; +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; +import java.util.List; + +/** + * @author admin + * @since 2024/5/25 下午10:25 + **/ +@Slf4j +@RestController +@RequestMapping("/wx/orderRanking") +public class WxPlayOrderRankingController { + + + @Resource + private IPlayClerkRankingInfoService playClerkRankingInfoService; + + + /** + * 查询当前排行 + */ + @ClerkUserLogin + @GetMapping("/clerk/selectCurrentRanking") + public R selectCurrentRanking() { + PlayOrderRankingReturnVo result = playClerkRankingInfoService.selectCurrentRanking(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + return R.ok(result); + + } + + /** + * 查询历史排行 + */ + @ClerkUserLogin + @GetMapping("/clerk/selectHistoryRanking") + public R selectHistoryRanking() { + List result = playClerkRankingInfoService.selectHistoryRanking(ThreadLocalRequestDetail.getClerkUserInfo().getId()); + return R.ok(result); + + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowQueryVo.java new file mode 100644 index 0000000..06b717b --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowQueryVo.java @@ -0,0 +1,23 @@ +package com.starry.admin.modules.weichat.entity; + + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 顾客查询已关注陪聊接口 + * + * @author admin + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlayClerkFollowQueryVo extends BasePageEntity { + + private String customId; + + /** + * 关注状态[0:未关注,1:已关注] + */ + private String followState = "1"; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowReturnVo.java new file mode 100644 index 0000000..cc8acd1 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkFollowReturnVo.java @@ -0,0 +1,74 @@ +package com.starry.admin.modules.weichat.entity; + + +import lombok.Data; + +/** + * 顾客查询已关注陪聊接口 + * + * @author admin + */ +@Data +public class PlayClerkFollowReturnVo { + + private String id; + /** + * 顾客ID + * + * @since 2024/5/10 10:39 + **/ + private String customId; + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String nickname; + + /** + * 店员头像 + */ + private String avatar; + + /** + * 关注状态[0:未关注,1:已关注] + */ + private String followState; + + /** + * 在线状态【1:在线,0:离线】 + */ + private String onlineState; + + /** + * 最低消费 + */ + private String latestConsumption = "最低1船票"; + + /** + * 个性签名 + */ + private String signature; + + /** + * 性别[0:未知;1:男;2:女] + */ + private String sex; + + /** + * 年龄 + */ + private Integer age; + + /** + * 关注人数 + * + * @since 2024/5/10 10:42 + **/ + private Integer followNumber; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java index 55db198..2a917f8 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserLoginResponseVo.java @@ -106,7 +106,7 @@ public class PlayClerkUserLoginResponseVo { private String alipayImage; /** - * 是否必须实名【1:必须实名,0:非必须实名】 + * 是否必须实名【0:非必须实名;1:必须实名;2:跟随店铺设置】 */ private String mandatoryRealState; diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayCommodityReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayCommodityReturnVo.java new file mode 100644 index 0000000..b64360f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayCommodityReturnVo.java @@ -0,0 +1,41 @@ +package com.starry.admin.modules.weichat.entity; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 服务项目返回对象 + * + * @author admin + * @since 2024/5/29 16:41 + **/ +@Data +public class PlayCommodityReturnVo { + + private String id; + /** + * 项目类型 + */ + private String itemType; + + /** + * 项目名称 + */ + private String itemName; + + /** + * 服务时长(文字描述信息,不参与订单计算) + */ + private String serviceDuration; + + + /** + * 服务单价 + */ + private BigDecimal price; + + + List child; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderCancellationVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderCancellationVo.java new file mode 100644 index 0000000..70d1842 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderCancellationVo.java @@ -0,0 +1,35 @@ +package com.starry.admin.modules.weichat.entity; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.ArrayList; +import java.util.List; + +/** + * @author admin + * @since 2024/5/10 下午5:15 + **/ +@Data +public class PlayOrderCancellationVo { + + + /** + * 申请人ID + */ + private String customId; + /** + * 订单ID + */ + @NotBlank(message = "订单ID不能为空") + private String orderId; + + + /** + * 取消原因 + */ + @NotBlank(message = "取消原因不能为空") + private String refundReason; + + private List images = new ArrayList<>(); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/WxPlayClerkUserQueryVo.java similarity index 89% rename from play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserQueryVo.java rename to play-admin/src/main/java/com/starry/admin/modules/weichat/entity/WxPlayClerkUserQueryVo.java index 4ca6a59..2e5aa98 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayClerkUserQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/WxPlayClerkUserQueryVo.java @@ -12,7 +12,7 @@ import lombok.EqualsAndHashCode; **/ @EqualsAndHashCode(callSuper = true) @Data -public class PlayClerkUserQueryVo extends BasePageEntity { +public class WxPlayClerkUserQueryVo extends BasePageEntity { /** * 分类 diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkAddArticleVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkAddArticleVo.java new file mode 100644 index 0000000..c0b4f54 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkAddArticleVo.java @@ -0,0 +1,58 @@ +package com.starry.admin.modules.weichat.entity.article; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 店员新增动态 + * + * @author admin + * @since 2024/5/20 下午11:24 + **/ +@Data +public class PlayClerkAddArticleVo { + + /** + * 陪聊用户ID + */ + private String clerkId; + + /** + * 动态内容 + */ + @NotBlank(message = "动态内容不能为空") + private String articleCon; + + + /** + * 动态附件类型(0:图片;1:视频;3:录音) + */ + @NotBlank(message = "动态附件类型不能为空") + @Pattern(regexp = "[012]", message = "动态附件类型只能位0或1") + private String annexType; + + /** + * 动态附件内容 + */ + @NotNull(message = "动态附件不能为空") + @Size(min = 1, message = "附件数量必须大于0") + @Size(max = 6, message = "附件数量必须小于6") + private List annexCon; + + + /** + * 发布时间 + */ + private LocalDateTime releaseTime = LocalDateTime.now(); + + /** + * 审核状态(0:未审核:1:审核通过,2:审核不通过) + */ + private String reviewState = "0"; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomQueryVo.java new file mode 100644 index 0000000..1424245 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomQueryVo.java @@ -0,0 +1,27 @@ +package com.starry.admin.modules.weichat.entity.article; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author admin + * 顾客查询动态信息查询返回对象 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkArticleCustomQueryVo extends BasePageEntity { + + + /** + * 收藏状态(0:未收藏,1:已收藏) + */ + private String followState; + + /** + * 店员ID + */ + private String clerkId; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomReturnVo.java new file mode 100644 index 0000000..f6048c2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleCustomReturnVo.java @@ -0,0 +1,87 @@ +package com.starry.admin.modules.weichat.entity.article; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.starry.admin.modules.clerk.module.entity.PlayCustomArticleInfoEntity; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author admin + * 顾客查询动态信息查询返回对象 + */ +@Data +public class PlayClerkArticleCustomReturnVo { + + /** + * UUID + */ + private String id; + /** + * 陪聊用户ID + */ + private String clerkId; + + /** + * 陪聊用户昵称 + */ + private String clerkNickname; + + /** + * 陪聊用户头像 + */ + private String clerkAvatar; + + /** + * 陪聊用户性别 + */ + private String clerkSex; + + /** + * 动态内容 + */ + private String articleCon; + + + /** + * 动态附件类型(0:图片;1:视频;2:音频) + */ + private String annexType; + + /** + * 动态附件内容 + */ + private List annexCon; + + + /** + * 发布时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime releaseTime; + + /** + * 点赞总数 + */ + private Integer agreedQuantity = 0; + + /** + * 点赞状态(0:未关注,1:已关注) + */ + private String greedState = "0"; + + /** + * 收藏状态(0:未收藏,1:已收藏) + */ + private String followState = "0"; + + /** + * 陪聊点赞动态 + */ + @JsonIgnore + private List articleInfoEntities; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomFollowStateEditStateVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomFollowStateEditStateVo.java new file mode 100644 index 0000000..f4beb3e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomFollowStateEditStateVo.java @@ -0,0 +1,30 @@ +package com.starry.admin.modules.weichat.entity.article; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @author admin + * 顾客收藏动态状态修改 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkArticleFollowCustomFollowStateEditStateVo extends BasePageEntity { + + + @NotBlank(message = "id不能为空") + + private String id; + /** + * 收藏状态(0:未收藏,1:已收藏) + */ + @NotBlank(message = "followState不能为空") + @Pattern(regexp = "[01]", message = "followState值必须为0或者1") + private String followState; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomGreedStateEditStateVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomGreedStateEditStateVo.java new file mode 100644 index 0000000..80e7271 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/article/PlayClerkArticleFollowCustomGreedStateEditStateVo.java @@ -0,0 +1,30 @@ +package com.starry.admin.modules.weichat.entity.article; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * @author admin + * 顾客点赞动态查询状态修改 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayClerkArticleFollowCustomGreedStateEditStateVo extends BasePageEntity { + + + @NotBlank(message = "不能为空") + private String id; + + /** + * 点赞状态(0:未点赞,1:已关注) + */ + @NotBlank(message = "greedState不能为空") + @Pattern(regexp = "[01]", message = "greedState值必须为0或者1") + private String greedState; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoQueryVo.java similarity index 91% rename from play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoQueryVo.java rename to play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoQueryVo.java index 4efecde..08e0460 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserInfoQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoQueryVo.java @@ -1,4 +1,4 @@ -package com.starry.admin.modules.clerk.module.entity; +package com.starry.admin.modules.weichat.entity.clerk; import com.starry.common.domain.BasePageEntity; import lombok.Data; @@ -30,7 +30,7 @@ public class PlayClerkUserInfoQueryVo extends BasePageEntity { private String typeId; /** - * 店员性别(1:男:0:女) + * 性别[0:未知;1:男;2:女] */ private String sex; diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserListResultVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoResultVo.java similarity index 95% rename from play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserListResultVo.java rename to play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoResultVo.java index bc2fe5e..dfc5959 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/module/entity/PlayClerkUserListResultVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/clerk/PlayClerkUserInfoResultVo.java @@ -1,4 +1,4 @@ -package com.starry.admin.modules.clerk.module.entity; +package com.starry.admin.modules.weichat.entity.clerk; import lombok.Data; @@ -9,7 +9,7 @@ import java.util.List; * @author admin */ @Data -public class PlayClerkUserListResultVo { +public class PlayClerkUserInfoResultVo { /** * UUID @@ -42,7 +42,6 @@ public class PlayClerkUserListResultVo { */ private String avatar; - /** * 音频 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideLevelStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideLevelStateEditVo.java new file mode 100644 index 0000000..417c24f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideLevelStateEditVo.java @@ -0,0 +1,29 @@ +package com.starry.admin.modules.weichat.entity.costom; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * 顾客状态修改 + * + * @author admin + * @since 2024/5/21 下午10:38 + **/ +@Data +public class PlayCustomHideLevelStateEditVo { + + /** + * UUID + */ + private String id; + + /** + * 隐藏等级[0:不隐藏;1:隐藏] + */ + @NotNull(message = "hideLevelState不能为空") + @Pattern(regexp = "[01]", message = "hideLevelState状态异常") + private String hideLevelState; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideRankingStateEditVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideRankingStateEditVo.java new file mode 100644 index 0000000..8475985 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/costom/PlayCustomHideRankingStateEditVo.java @@ -0,0 +1,28 @@ +package com.starry.admin.modules.weichat.entity.costom; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * 顾客状态修改 + * + * @author admin + * @since 2024/5/21 下午10:38 + **/ +@Data +public class PlayCustomHideRankingStateEditVo { + + /** + * UUID + */ + private String id; + + /** + * 隐藏排名[0:不隐藏;1:隐藏] + */ + @NotNull(message = "hideRankingState不能为空") + @Pattern(regexp = "[01]", message = "hideRankingState状态异常") + private String hideRankingState; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/evaluate/PlayCustomOrderEvaluateReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/evaluate/PlayCustomOrderEvaluateReturnVo.java new file mode 100644 index 0000000..f13f823 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/evaluate/PlayCustomOrderEvaluateReturnVo.java @@ -0,0 +1,41 @@ +package com.starry.admin.modules.weichat.entity.evaluate; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 订单评价对象查询返回对象 + * + * @author admin + * @since 2024/5/13 16:15 + **/ +@Data +public class PlayCustomOrderEvaluateReturnVo { + + private String id; + + + /** + * 匿名评价(0:匿名,1:非匿名) + */ + private String anonymous; + + + /** + * 评价等级【1-5星,最低1星,最高5星】 + */ + private Integer evaluateLevel; + + /** + * 评价内容 + */ + private String evaluateCon; + + /** + * 评价时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date evaluateTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/gift/PlayClerkGiftReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/gift/PlayClerkGiftReturnVo.java new file mode 100644 index 0000000..78b77bb --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/gift/PlayClerkGiftReturnVo.java @@ -0,0 +1,52 @@ +package com.starry.admin.modules.weichat.entity.gift; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 店员礼物查询对象 + * + * @author admin + * @since 2024/5/26 上午12:20 + **/ +@Data +public class PlayClerkGiftReturnVo { + + + /** + * UUID + */ + private String id; + + /** + * 礼物名称 + */ + private String name; + + /** + * 礼物类型(0:盲盒,1:普通礼物) + */ + private String type; + + /** + * 礼物图片地址 + */ + private String url; + + /** + * 单价 + */ + private BigDecimal price; + + /** + * 价格单位 + */ + private String unit; + + + /** + * 礼物数量 + */ + private long giffNumber; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/level/PlayClerkLevelReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/level/PlayClerkLevelReturnVo.java new file mode 100644 index 0000000..4af068d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/level/PlayClerkLevelReturnVo.java @@ -0,0 +1,15 @@ +package com.starry.admin.modules.weichat.entity.level; + +import lombok.Data; + +/** + * @author admin + * @since 2024/5/29 上午6:29 + **/ +@Data +public class PlayClerkLevelReturnVo { + + private String id; + + private String levelName; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClearOrderInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClearOrderInfoQueryVo.java new file mode 100644 index 0000000..b2f8934 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClearOrderInfoQueryVo.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 店员分行查询订单-查询对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class PlayClearOrderInfoQueryVo extends BasePageEntity { + + + private String id; + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单 + * 1:已接单 + * 2:已开始 + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 订单类型【0:充值订单;1:提现订单;2:普通订单】 + */ + private String orderType = "2"; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 下单人 + */ + private String purchaserBy; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java new file mode 100644 index 0000000..a071aaf --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java @@ -0,0 +1,198 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 店员订单详情返回信息 + * + * @author admin + * @since 2024/5/12 下午9:16 + **/ +@Data +public class PlayClerkOrderDetailsReturnVo { + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + /** + * 订单备注 + */ + private String remark; + + /** + * 买家微信号码 + */ + private String weiChatCode; + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + /** + * 接单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date acceptTime; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + + /** + * 取消时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + + /** + * 退款人类型[0:顾客;1:店员;2:管理员] + */ + private String refundByType; + + /** + * 退款人ID + */ + private String refundById; + + /** + * 退款原因 + **/ + private String refundReason; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 预计收入 + */ + private BigDecimal estimatedRevenue; + + /** + * 优惠金额 + */ + private BigDecimal discountAmount; + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 用户等级ID + */ + private String customLevelId; + + /** + * 用户等级名称 + */ + private String customLevelName; + + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品名称 + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderInfoQueryVo.java new file mode 100644 index 0000000..bb1f032 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderInfoQueryVo.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 订单查询对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class PlayClerkOrderInfoQueryVo extends BasePageEntity { + + + private String id; + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单 + * 1:已接单 + * 2:已开始 + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 订单类型【0:充值订单;1:提现订单;2:普通订单】 + */ + private String orderType = "2"; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 下单人 + */ + private String acceptBy; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java new file mode 100644 index 0000000..9f18bc3 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java @@ -0,0 +1,141 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 店员查询订单列表返回对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +public class PlayClerkOrderListReturnVo { + + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 订单备注 + */ + private String remark; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 用户等级ID + */ + private String customLevelId; + + /** + * 用户等级名称 + */ + private String customLevelName; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkRandomOrderDetailReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkRandomOrderDetailReturnVo.java new file mode 100644 index 0000000..6588892 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkRandomOrderDetailReturnVo.java @@ -0,0 +1,126 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 随机单详情返回接口 + * + * @author admin + * @since 2024/5/30 10:00 + **/ +@Data +public class PlayClerkRandomOrderDetailReturnVo { + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private final String orderStatus = "0"; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private final String placeType = "1"; + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + /** + * 订单备注 + */ + private String remark; + + /** + * 买家微信号码 + */ + private String weiChatCode; + + + /** + * 卖家要求 + * + * @since 2024/5/30 10:02 + **/ + private List labels; + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 预计收入 + */ + private BigDecimal estimatedRevenue; + + /** + * 优惠金额 + */ + private BigDecimal discountAmount; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品名称 + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java new file mode 100644 index 0000000..bd335c2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java @@ -0,0 +1,194 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 顾客查询订单详情返回对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +public class PlayCustomOrderDetailsReturnVo { + + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 支付方式,0:余额支付,1:微信支付,2:支付宝支付 + */ + private String payMethod; + + /** + * 订单备注 + */ + private String remark; + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + /** + * 接单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date acceptTime; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; + + /** + * 取消时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + + /** + * 退款人类型[0:顾客;1:店员;2:管理员] + */ + private String refundByType; + + /** + * 退款人ID + */ + private String refundById; + + /** + * 退款原因 + **/ + private String refundReason; + + /** + * 是否评价(1:已评价;0:未评价) + */ + private String evaluate; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 优惠金额 + */ + private BigDecimal discountAmount; + + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品名称 + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + + + /** + * 微信号码 + * + * @since 2024/5/13 11:29 + **/ + private String weiChatCode; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderInfoQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderInfoQueryVo.java new file mode 100644 index 0000000..3090b4f --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderInfoQueryVo.java @@ -0,0 +1,45 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 订单查询对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class PlayCustomOrderInfoQueryVo extends BasePageEntity { + + + private String id; + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单 + * 1:已接单 + * 2:已开始 + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 订单类型【0:充值订单;1:提现订单;2:普通订单】 + */ + private String orderType = "2"; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 下单人 + */ + private String purchaserBy; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java new file mode 100644 index 0000000..03e980c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java @@ -0,0 +1,132 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 顾客查询订单列表返回对象 + * + * @author admin + * @since 2024-03-20 + */ +@Data +public class PlayCustomOrderListReturnVo { + + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 商品数量 + */ + private int commodityNumber; + + + + /** + * 订单备注 + */ + private String remark; + + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + /** + * 是否评价(1:已评价;0:未评价) + */ + private String evaluate; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + + +} \ No newline at end of file diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java new file mode 100644 index 0000000..3bc1081 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderHistoryRankingReturnVo.java @@ -0,0 +1,36 @@ +package com.starry.admin.modules.weichat.entity.order; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +/** + * 订单排行分页查询对象 + * + * @author admin + * @since 2024/5/25 下午10:27 + **/ +@Data +public class PlayOrderHistoryRankingReturnVo { + + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate endCountDate; + + /** + * 排序名词 + */ + private Long rankingIndex; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderInfoCommodityAdd.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoCommodityAdd.java similarity index 86% rename from play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderInfoCommodityAdd.java rename to play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoCommodityAdd.java index 19ddcb8..3434200 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/PlayOrderInfoCommodityAdd.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoCommodityAdd.java @@ -1,8 +1,9 @@ -package com.starry.admin.modules.weichat.entity; +package com.starry.admin.modules.weichat.entity.order; import com.starry.admin.modules.gift.module.constant.GiftConstant; import lombok.Data; +import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Max; import javax.validation.constraints.Min; @@ -38,6 +39,7 @@ public class PlayOrderInfoCommodityAdd { @NotBlank(message = "微信号不能为空") + @Length(max = 255, message = "微信号码长度不超过255个字符") private String weiChatCode; /** diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueAdd.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueAdd.java new file mode 100644 index 0000000..e80736c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueAdd.java @@ -0,0 +1,37 @@ +package com.starry.admin.modules.weichat.entity.order; + + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +/** + * 续单申请 + * + * @author admin + */ +@Data +public class PlayOrderInfoContinueAdd { + + /** + * orderId + */ + @NotBlank(message = "orderId不能为空") + private String orderId; + + + /** + * 订单备注 + */ + private String remark; + + /** + * 图片列表 + */ + @NotNull(message = "images不能为空") + @Size(min = 1, max = 6, message = "图片张数必须大于1张且小于6张") + private List images; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueQueryVo.java new file mode 100644 index 0000000..37f9750 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoContinueQueryVo.java @@ -0,0 +1,21 @@ +package com.starry.admin.modules.weichat.entity.order; + + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 续单申请列表查询 + * + * @author admin + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayOrderInfoContinueQueryVo extends BasePageEntity { + + /** + * 顾客ID + */ + private String customId; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomQueryVo.java similarity index 54% rename from play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleQueryVo.java rename to play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomQueryVo.java index f931008..0f7b317 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/article/module/vo/PlayClerkArticleQueryVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomQueryVo.java @@ -1,14 +1,18 @@ -package com.starry.admin.modules.article.module.vo; +package com.starry.admin.modules.weichat.entity.order; + import com.starry.common.domain.BasePageEntity; import lombok.Data; import lombok.EqualsAndHashCode; /** + * 待接单大厅 + * * @author admin - * 动态信息查询对象 */ @EqualsAndHashCode(callSuper = true) @Data -public class PlayClerkArticleQueryVo extends BasePageEntity { +public class PlayOrderInfoRandomQueryVo extends BasePageEntity { + + } diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomReturnVo.java new file mode 100644 index 0000000..68ea646 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderInfoRandomReturnVo.java @@ -0,0 +1,130 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author admin + * @since 2024/5/30 9:22 + **/ +public class PlayOrderInfoRandomReturnVo { + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private final String orderStatus = "0"; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private final String placeType = "1"; + + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 订单备注 + */ + private String remark; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 用户等级ID + */ + private String customLevelId; + + /** + * 用户等级名称 + */ + private String customLevelName; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java new file mode 100644 index 0000000..ec209ae --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingListVo.java @@ -0,0 +1,50 @@ +package com.starry.admin.modules.weichat.entity.order; + +import lombok.Data; + +/** + * 订单排行分页查询对象 + * + * @author admin + * @since 2024/5/25 下午10:27 + **/ +@Data +public class PlayOrderRankingListVo { + + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 店员等级ID + */ + private String levelId; + + /** + * 店员等级名称 + */ + private String levelName; + + /** + * 店员性别 + */ + private String clerkSex; + + /** + * 排序名词 + */ + private Long rankingIndex; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingQueryVo.java new file mode 100644 index 0000000..feef3bf --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingQueryVo.java @@ -0,0 +1,18 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.starry.common.domain.BasePageEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 订单排行分页查询对象 + * + * @author admin + * @since 2024/5/25 下午10:27 + **/ +@EqualsAndHashCode(callSuper = true) +@Data +public class PlayOrderRankingQueryVo extends BasePageEntity { + + private String clerkId; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingReturnVo.java new file mode 100644 index 0000000..c942cbd --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayOrderRankingReturnVo.java @@ -0,0 +1,106 @@ +package com.starry.admin.modules.weichat.entity.order; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.List; + +/** + * 订单排行分页查询对象 + * + * @author admin + * @since 2024/5/25 下午10:27 + **/ +@Data +public class PlayOrderRankingReturnVo { + + /** + * UUID + */ + private String id; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 店员等级ID + */ + private String levelId; + + /** + * 店员等级名称 + */ + private String levelName; + + /** + * 店员性别 + */ + private String clerkSex; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate endCountDate; + + /** + * 是否是当前排名 + */ + private String currentRanking; + + /** + * 订单总数 + */ + private String orderNumber; + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 续单数 + */ + private Long orderContinueNumber; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney; + + /** + * 超时未接单数量 + */ + private Long ordersExpiredNumber; + + /** + * 距离前一名相差金额 + */ + private BigDecimal previousMoney; + + /** + * 排序列表 + */ + private List rankings; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java new file mode 100644 index 0000000..7f351b4 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java @@ -0,0 +1,123 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author admin + * @since 2024/6/1 下午11:20 + **/ +@Data +public class PlayRandomOrderInfoReturnVo { + + + /** + * 订单ID + */ + private String id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单状态【0:1:2:3:4】 + * 0:已下单(待接单) + * 1:已接单(待开始) + * 2:已开始(服务中) + * 3:已完成 + * 4:已取消 + */ + private String orderStatus; + + /** + * 下单类型(0:指定单,1:随机单。2:打赏单) + */ + private String placeType; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + + + /** + * 商品数量 + */ + private int commodityNumber; + + + /** + * 订单备注 + */ + private String remark; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + + /** + * 用户ID + */ + private String customId; + + /** + * 用户昵称 + */ + private String customNickname; + + /** + * 用户头像 + */ + private String customAvatar; + + /** + * 用户等级ID + */ + private String customLevelId; + + /** + * 用户等级名称 + */ + private String customLevelName; + + /** + * 商品ID + */ + private String commodityId; + + /** + * 商品类型[0:礼物,1:服务] + */ + private String commodityType; + + /** + * 商品名称 + */ + private String commodityName; + /** + * 商品单价 + */ + private BigDecimal commodityPrice; + + /** + * 服务时长 + * + * @since 2024/5/8 16:44 + **/ + private String serviceDuration; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardInfoReturnVo.java new file mode 100644 index 0000000..677134c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardInfoReturnVo.java @@ -0,0 +1,67 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 打赏动态查询返回信息 + * + * @author admin + * @since 2024/5/25 下午7:49 + **/ +@Data +public class PlayRewardInfoReturnVo { + + /** + * UUID + */ + private String id; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 店员昵称 + */ + private String clerkNickname; + + /** + * 店员头像 + */ + private String clerkAvatar; + + /** + * 打赏类型(0:余额;1:礼物) + */ + private String rewardType; + + /** + * 商品数量 + */ + private String commodityNumber; + + /** + * 商品名称 + */ + private String commodityName; + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date purchaserTime; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardOrderQueryVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardOrderQueryVo.java new file mode 100644 index 0000000..bf171d0 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRewardOrderQueryVo.java @@ -0,0 +1,12 @@ +package com.starry.admin.modules.weichat.entity.order; + +import com.starry.common.domain.BasePageEntity; + +/** + * 打赏动态分页查询对象 + * + * @author admin + * @since 2024/5/25 下午7:36 + **/ +public class PlayRewardOrderQueryVo extends BasePageEntity { +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/user/PlayCustomUserReturnDetailVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/user/PlayCustomUserReturnDetailVo.java new file mode 100644 index 0000000..55e395e --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/user/PlayCustomUserReturnDetailVo.java @@ -0,0 +1,143 @@ +package com.starry.admin.modules.weichat.entity.user; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author admin + * @since 2024/5/28 下午5:07 + **/ +@Data +public class PlayCustomUserReturnDetailVo { + /** + * UUID + */ + private String id; + /** + * 租户ID + */ + private String tenantId; + /** + * 用户的标识,对当前公众号唯一 + */ + private String openid; + /** + * 用户的标识,对当前公众号唯一 + */ + private String unionid; + /** + * 顾客昵称 + */ + private String nickname; + /** + * 顾客性别(0:未知;1:男,2:女) + */ + private Integer sex; + /** + * 头像 + */ + private String avatar; + /** + * 手机号码 + */ + private String phone; + /** + * 微信号码 + */ + private String weiChatCode; + /** + * 等级ID + */ + private String levelId; + /** + * 所在国家 + */ + private String country; + /** + * 所在省份 + */ + private String province; + /** + * 所在城市 + */ + private String city; + /** + * 账户余额 + */ + private BigDecimal accountBalance; + /** + * 余额状态[0:不存在余额,1:存在余额] + */ + private String accountState; + /** + * 关注状态[0:未关注,1:已关注] + */ + private String subscribeState; + /** + * 黑名单状态[0:非黑名单,1:黑名单] + */ + private String blacklistState; + /** + * 违规状态[0:未违规,1:违规] + */ + private String violationState; + /** + * 是否下单状态[0:未下单过,1:下单过] + */ + private String purchaseState; + /** + * 绑定手机状态[0:未绑定,1:绑定] + */ + private String mobilePhoneState; + /** + * 实名状态【1:已实名,0:未实名】 + */ + private String realState; + /** + * 是否必须实名【2:跟随店铺设置,1:必须实名,0:非必须实名】 + */ + private String mandatoryRealState; + /** + * 注册时间 + */ + private Date registrationTime; + /** + * 上次登录时间 + */ + private Date lastLoginTime; + /** + * 首次下单时间 + */ + private Date firstPurchaseTime; + /** + * 最后一次下单时间 + */ + private Date lastPurchaseTime; + /** + * 隐藏等级[0:不隐藏;1:隐藏] + */ + private String hideLevelState; + /** + * 隐藏排名[0:不隐藏;1:隐藏] + */ + private String hideRankingState; + /** + * 备注 + */ + private String remark; + /** + * 最近一次登录token + */ + @JsonIgnore + private String token; + + + /** + * 员工状态【1:是陪聊,0:不是陪聊】 + */ + public String clerkState = "0"; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/vo/PlayCustomLevelInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/vo/PlayCustomLevelInfoReturnVo.java new file mode 100644 index 0000000..9fab94c --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/vo/PlayCustomLevelInfoReturnVo.java @@ -0,0 +1,31 @@ +package com.starry.admin.modules.weichat.entity.vo; + +import lombok.Data; + +/** + * @author admin + * @since 2024/5/21 下午10:18 + **/ +@Data +public class PlayCustomLevelInfoReturnVo { + + /** + * 等级名称 + */ + private String name; + + /** + * 等级数字(排序字段) + */ + private Integer level; + + /** + * 上一级消费金额 + */ + private String consumptionAmount; + + /** + * 满减比例 + */ + private Integer discount; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkCurrentPeriodWagesReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkCurrentPeriodWagesReturnVo.java new file mode 100644 index 0000000..f0a0312 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkCurrentPeriodWagesReturnVo.java @@ -0,0 +1,49 @@ +package com.starry.admin.modules.weichat.entity.wages; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * @author admin + * @since 2024/6/1 上午11:44 + **/ +@Data +public class ClerkCurrentPeriodWagesReturnVo { + + /** + * UUID + */ + private String id; + + + /** + * 总金额 + */ + private BigDecimal totalMoney; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate endCountDate; + + + /** + * 平台工资(订单) + */ + private OrderWagesReturnVo orderWages; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkHistoricalWagesReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkHistoricalWagesReturnVo.java new file mode 100644 index 0000000..d35f0be --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkHistoricalWagesReturnVo.java @@ -0,0 +1,43 @@ +package com.starry.admin.modules.weichat.entity.wages; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * @author admin + * @since 2024/6/1 上午11:44 + **/ +@Data +public class ClerkHistoricalWagesReturnVo { + + /** + * UUID + */ + private String id; + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + /** + * 开始统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate startCountDate; + + /** + * 结束统计时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate endCountDate; + + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkUnsettledWagesReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkUnsettledWagesReturnVo.java new file mode 100644 index 0000000..9345e9d --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkUnsettledWagesReturnVo.java @@ -0,0 +1,38 @@ +package com.starry.admin.modules.weichat.entity.wages; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author admin + * @since 2024/6/1 下午1:52 + **/ +@Data +public class ClerkUnsettledWagesReturnVo { + + + /** + * 订单金额 + */ + private BigDecimal orderMoney; + + + /** + * 订单总数 + */ + private Integer orderNumber; + + /** + * 预计收入 + */ + private BigDecimal estimatedRevenue; + + + + public ClerkUnsettledWagesReturnVo(BigDecimal orderMoney, Integer orderNumber, BigDecimal estimatedRevenue) { + this.orderMoney = orderMoney; + this.orderNumber = orderNumber; + this.estimatedRevenue = estimatedRevenue; + } +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkWagesDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkWagesDetailsReturnVo.java new file mode 100644 index 0000000..3f3fd04 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/ClerkWagesDetailsReturnVo.java @@ -0,0 +1,62 @@ +package com.starry.admin.modules.weichat.entity.wages; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author admin + * @since 2024/6/1 下午1:22 + **/ +@Data +public class ClerkWagesDetailsReturnVo { + /** + * UUID + */ + private String id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 工资统计ID + */ + private Long wagesId; + + /** + * 店员ID + */ + private String clerkId; + + /** + * 订单ID + */ + private String orderId; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单最终金额(支付金额) + */ + private BigDecimal finalAmount; + + /** + * 订单工资 + */ + private BigDecimal estimatedRevenue; + + /** + * 订单完成时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime endOrderTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/OrderWagesReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/OrderWagesReturnVo.java new file mode 100644 index 0000000..26fa2e2 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/wages/OrderWagesReturnVo.java @@ -0,0 +1,49 @@ +package com.starry.admin.modules.weichat.entity.wages; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author admin + * @since 2024/6/1 上午11:44 + **/ +@Data +public class OrderWagesReturnVo { + + /** + * 订单总数 + */ + private Integer orderNumber = 0; + + /** + * 订单金额 + */ + private BigDecimal orderMoney = BigDecimal.ZERO; + + /** + * 续单数 + */ + private Integer orderContinueNumber = 0; + + /** + * 续单比例 + */ + private double orderContinueProportion = 0.0; + + /** + * 续单金额 + */ + private BigDecimal orderContinueMoney = BigDecimal.ZERO; + + /** + * 超时未接单数 + */ + private Integer ordersExpiredNumber = 0; + + /** + * 店员收入 + */ + private BigDecimal estimatedRevenue = BigDecimal.ZERO; + +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxOauthService.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxOauthService.java index 85e5832..ebbb643 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxOauthService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxOauthService.java @@ -1,7 +1,7 @@ package com.starry.admin.modules.weichat.service; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import com.starry.admin.common.exception.ServiceException; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; @@ -66,7 +66,7 @@ public class WxOauthService { if (item == null) { PlayClerkUserInfoEntity entity = ConvertUtil.entityToVo(userInfo, PlayClerkUserInfoEntity.class); entity.setAvatar(userInfo.getHeadImgUrl()); - entity.setId(IdUtil.fastSimpleUUID()); + entity.setId(IdUtils.getUuid()); entity.setLevelId(playClerkLevelInfoService.getDefaultLevel().getId()); clerkUserInfoService.create(entity); return entity.getId(); @@ -96,7 +96,7 @@ public class WxOauthService { entity.setAvatar(userInfo.getHeadImgUrl()); PlayCustomUserInfoEntity item = customUserInfoService.selectByOpenid(openId); if (item == null) { - entity.setId(IdUtil.fastSimpleUUID()); + entity.setId(IdUtils.getUuid()); entity.setRegistrationTime(new Date()); entity.setLevelId(playCustomLevelInfoService.getDefaultLevel().getId()); } else { diff --git a/play-admin/src/main/resources/application-test.yml b/play-admin/src/main/resources/application-test.yml index f5ec4bf..6dee29d 100644 --- a/play-admin/src/main/resources/application-test.yml +++ b/play-admin/src/main/resources/application-test.yml @@ -9,7 +9,7 @@ spring: # 配置MySQL的驱动程序类 driver-class-name: com.p6spy.engine.spy.P6SpyDriver # 数据库连接地址(以MySql为例) - url: jdbc:p6spy:mysql://122.51.20.105:3306/play-with?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8 + url: jdbc:p6spy:mysql://122.51.20.105:3306/play-with?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&serverTimezone=UTC # 数据库对应的用户名 username: root # 数据库对应的密码 @@ -67,10 +67,10 @@ spring: # HTML 中 Reset All 按钮 reset-enable: true redis: - host: 122.51.20.105 # Redis服务器地址 - database: 10 # Redis数据库索引(默认为0) - port: 19087 # Redis服务器连接端口 - password: arcikXa7ZkEBGtLf + host: 127.0.0.1 # Redis服务器地址 + database: 1 # Redis数据库索引(默认为0) + port: 6379 # Redis服务器连接端口 + password: Spinfo@0123 timeout: 3000ms # 连接超时时间(毫秒) diff --git a/play-admin/src/main/resources/mapper/platform/SysTenantPackageMapper.xml b/play-admin/src/main/resources/mapper/platform/SysTenantPackageMapper.xml index 937d5ec..15fdb52 100644 --- a/play-admin/src/main/resources/mapper/platform/SysTenantPackageMapper.xml +++ b/play-admin/src/main/resources/mapper/platform/SysTenantPackageMapper.xml @@ -27,8 +27,7 @@ updated_by, created_time, created_by, - deleted, - version + deleted from sys_tenant_package diff --git a/play-admin/src/main/resources/mapper/system/SysDictMapper.xml b/play-admin/src/main/resources/mapper/system/SysDictMapper.xml index c7e7fc3..546005f 100644 --- a/play-admin/src/main/resources/mapper/system/SysDictMapper.xml +++ b/play-admin/src/main/resources/mapper/system/SysDictMapper.xml @@ -27,8 +27,7 @@ updated_by, created_time, created_by, - deleted, - version + deleted from sys_dict diff --git a/play-admin/src/main/resources/mapper/system/SysLoginLogMapper.xml b/play-admin/src/main/resources/mapper/system/SysLoginLogMapper.xml index 5e3a7dc..6ff69fd 100644 --- a/play-admin/src/main/resources/mapper/system/SysLoginLogMapper.xml +++ b/play-admin/src/main/resources/mapper/system/SysLoginLogMapper.xml @@ -35,8 +35,7 @@ updated_by, created_time, created_by, - deleted, - version + deleted from sys_login_log diff --git a/play-admin/src/main/resources/mapper/system/SysOperationLogMapper.xml b/play-admin/src/main/resources/mapper/system/SysOperationLogMapper.xml index 5342870..465ea82 100644 --- a/play-admin/src/main/resources/mapper/system/SysOperationLogMapper.xml +++ b/play-admin/src/main/resources/mapper/system/SysOperationLogMapper.xml @@ -26,7 +26,6 @@ - @@ -51,8 +50,7 @@ updated_by, created_time, created_by, - deleted, - version + deleted from sys_operation_log diff --git a/play-common/src/main/java/com/starry/common/context/CustomSecurityContextHolder.java b/play-common/src/main/java/com/starry/common/context/CustomSecurityContextHolder.java index 82d7ec2..ac55741 100644 --- a/play-common/src/main/java/com/starry/common/context/CustomSecurityContextHolder.java +++ b/play-common/src/main/java/com/starry/common/context/CustomSecurityContextHolder.java @@ -59,6 +59,10 @@ public class CustomSecurityContextHolder { return Convert.toLong(get(SecurityConstants.DETAILS_DEPT_ID)); } + public static String getUserId() { + return Convert.toStr(get(SecurityConstants.DETAILS_USER_ID)); + } + public static void setDeptId(String deptId) { set(SecurityConstants.DETAILS_DEPT_ID, deptId); } diff --git a/play-common/src/main/java/com/starry/common/domain/BaseEntity.java b/play-common/src/main/java/com/starry/common/domain/BaseEntity.java index f4866cc..ce20b3f 100644 --- a/play-common/src/main/java/com/starry/common/domain/BaseEntity.java +++ b/play-common/src/main/java/com/starry/common/domain/BaseEntity.java @@ -2,7 +2,6 @@ package com.starry.common.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.Version; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -52,10 +51,6 @@ public class BaseEntity implements Serializable { @ApiModelProperty(value = "更新人") private String updatedBy; - @Version - @ApiModelProperty(value = "数据版本") - private Long version; - /** * 搜索值 */ diff --git a/play-common/src/main/java/com/starry/common/utils/IdUtils.java b/play-common/src/main/java/com/starry/common/utils/IdUtils.java new file mode 100644 index 0000000..a130902 --- /dev/null +++ b/play-common/src/main/java/com/starry/common/utils/IdUtils.java @@ -0,0 +1,20 @@ +package com.starry.common.utils; + +import java.util.UUID; + +/** + * @author admin + * @since 2024/5/13 下午11:07 + **/ +public class IdUtils { + + + /** + * 生成16位的UUID + * + * @return UUID + */ + public static String getUuid() { + return UUID.randomUUID().toString().replaceAll("-", "").substring(0, 12); + } +} diff --git a/play-generator/src/main/resources/vm/java/serviceImpl.java.vm b/play-generator/src/main/resources/vm/java/serviceImpl.java.vm index 5a0d298..858a37b 100644 --- a/play-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/play-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -5,7 +5,7 @@ import java.util.Arrays; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import cn.hutool.core.util.IdUtil; +import com.starry.common.utils.IdUtils; import cn.hutool.core.util.StrUtil; import javax.annotation.Resource; @@ -71,7 +71,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C return rows; #else if (StrUtil.isBlankIfStr(${className}.getId())){ - ${className}.setId(IdUtil.fastSimpleUUID()); + ${className}.setId(IdUtils.getUuid()); } return save(${className}); #end diff --git a/pom.xml b/pom.xml index 5c44711..f4926ec 100644 --- a/pom.xml +++ b/pom.xml @@ -222,6 +222,12 @@ jave-nativebin-linux64 ${ws-schild.version} + + com.squareup.okio + okio + 3.4.0 + +