jiangqs
2023-07-12 f26537e926d7ad2d725e059700142ba14c0c2b1f
定时任务延时任务
1 文件已重命名
139个文件已修改
1个文件已删除
9个文件已添加
2708 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/DelayTaskEnum.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/IntegralChangeDto.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/DelayTask.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppMemberCouponVo.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppOrderTotalVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppOtherConfigGetVo.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ShopRelUserVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/OauthUrlVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/OauthUserVo.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/QwH5LoginVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/QwUserDetailDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerGoodsPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/SchedulerUtils.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppIntegralController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponAuditDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponAuditPageDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/IntegralRecord.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberTotal.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppIntegralRecordPageVo.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppIntegralTaskListVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppUserInfoVo.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponAuditPageVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponSimpleListVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/IntegralRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/IntegralRecordServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/IntegralRecordService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/IntegralRecordMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppConsumerPageDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerConsumerGoodsDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerConsumerGoodsPageDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerServiceRecordPageDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopOrderPageDto.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppConsumerPageVo.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppGoodsInfoVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppServiceRecordPageVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGetVo.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGoodsPageVo.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderPageVo.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerConsumerGoodsListVo.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerConsumerGoodsVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerGoodsPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberNoClearOrderVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerServiceRecordPageVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyAwardVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyOrderVo.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsDetailVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderTotal.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderPageVo.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowAgencyTaskDto.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowMemberTaskDto.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowPhoneDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtChangeCoopDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopDto.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopTagDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFollowShopTaskDto.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthPageDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopProportionEditDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTerminateCooperationDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTransferShopDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/AppShopInfoVo.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyPageVo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskRecordPageVo.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerMemberTaskPageVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerMemberTaskRecordPageVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerShopInfoVo.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtAgencyTaskRecordPageVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtMemberFollowPageVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopCertificatePageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopInfoVo.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopListSimpleVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopProportionPageVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopTaskRecordPageVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -87,4 +87,6 @@
    String COUPON_GET_ERROR = "该优惠券不可领取";
    String COUPON_GET_ALL = "该优惠券已领取完";
    String DOUBLE_INTEGRAL_TASK = "任务已完成,请勿重复提交";
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/DelayTaskEnum.java
New file
@@ -0,0 +1,42 @@
package com.ruoyi.system.api.constant;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@Getter
public enum DelayTaskEnum {
    ORDER_AUTOMATIC_CANCEL("订单延时任务-自动关闭","15分钟后订单自动关闭"),
    COUPON_SEND_DELAY_TASK("优惠券延时任务","定时启动优惠券发送"),
    ACTIVITY_START_TASK("活动延时任务","定时开始任务"),
    ACTIVITY_END_TASK("活动延时任务","定时结束任务"),
    ;
    String name;
    String code;
    private static Map<String, DelayTaskEnum> valueMap = new HashMap<>();
    static {
        for(DelayTaskEnum gender : DelayTaskEnum.values()) {
            valueMap.put(gender.name, gender);
        }
    }
    DelayTaskEnum(String name, String code) {
        this.code = code;
        this.name=name;
    }
    public static String getByName(String name) {
        DelayTaskEnum result = valueMap.get(name);
        if(result == null) {
            throw new IllegalArgumentException("No element matches " + name);
        }
        return result.code;
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java
@@ -40,4 +40,10 @@
     * 省市区列表key
     */
    String CITY_LIST = "CITY_LIST";
    /**
     * 秒杀活动商品key前缀
     */
    String ACTIVITY_GOODS = "ACTIVITY_GOODS";
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/IntegralChangeDto.java
New file
@@ -0,0 +1,30 @@
package com.ruoyi.system.api.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName IntegralChangeDto
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/12 15:39
 * @Version 1.0
 */
@Data
public class IntegralChangeDto {
    @ApiModelProperty(value="积分类型1分享获取2平台建议获取3门店建议获取4每日签到5消费得积分")
    private Integer integralType;
    @ApiModelProperty(value="变动值")
    private Integer changeIntegral;
    @ApiModelProperty(value="变动用户id")
    private Long userId;
    @ApiModelProperty(value="订单")
    private String orderId;
    @ApiModelProperty(value="订单")
    private String orderNo;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java
@@ -21,30 +21,30 @@
    @ApiModelProperty(value = "商户id集合",hidden = true)
    private List<Long> shopIdList;
    @ApiModelProperty("店铺地址省code")
    @ApiModelProperty(value="店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    @ApiModelProperty(value="店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    @ApiModelProperty(value="店铺地址区code")
    private String shopAreaCode;
    @ApiModelProperty("部门id")
    @ApiModelProperty(value="部门id")
    private Long deptId;
    @ApiModelProperty("员工id")
    @ApiModelProperty(value="员工id")
    private Long userId;
    @ApiModelProperty(value = "员工list",hidden = true)
    private List<Long> userIdList;
    @ApiModelProperty("活动来源1平台2商户")
    @ApiModelProperty(value="活动来源1平台2商户")
    private Integer activityFrom;
    @ApiModelProperty("活动类型1秒杀")
    @ApiModelProperty(value="活动类型1秒杀")
    private Integer activityType;
    @ApiModelProperty("活动id")
    @ApiModelProperty(value="活动id")
    private Long activityId;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/DelayTask.java
File was renamed from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/DelayTask.java
@@ -1,17 +1,16 @@
package com.ruoyi.system.domain.pojo.config;
package com.ruoyi.system.api.domain.poji.config;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
@@ -50,6 +49,8 @@
    @TableField("end_time")
    private Date endTime;
    @TableField("create_time")
    private Date createTime;
    @Override
    protected Serializable pkVal() {
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberCoupon.java
@@ -23,7 +23,7 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_user_coupon")
@TableName("t_member_coupon")
public class MemberCoupon extends Model<MemberCoupon> {
    private static final long serialVersionUID = 1L;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppMemberCouponVo.java
@@ -23,27 +23,27 @@
    @ApiModelProperty(value = "商品id")
    private String goodsId;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty("门槛金额")
    @ApiModelProperty(value="门槛金额")
    private BigDecimal moneyThreshold;
    @ApiModelProperty("折扣金额")
    @ApiModelProperty(value="折扣金额")
    private BigDecimal discountMoney;
    @ApiModelProperty("折扣百分比")
    @ApiModelProperty(value="折扣百分比")
    private BigDecimal discountPercent;
    @ApiModelProperty("有效开始时间")
    @ApiModelProperty(value="有效开始时间")
    private Date validStartTime;
    @ApiModelProperty("使用有效期")
    @ApiModelProperty(value="使用有效期")
    private Date deadlineTime;
    @ApiModelProperty("关联商品ids")
    @ApiModelProperty(value="关联商品ids")
    private String relGoodsIds;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppOrderTotalVo.java
@@ -13,9 +13,9 @@
@Data
public class AppOrderTotalVo {
    @ApiModelProperty("待支付统计")
    @ApiModelProperty(value="待支付统计")
    private Integer noPayCount;
    @ApiModelProperty("待核销统计")
    @ApiModelProperty(value="待核销统计")
    private Integer noUseCount;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/AppOtherConfigGetVo.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.system.api.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName AppOtherConfigGetVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/12 15:26
 * @Version 1.0
 */
@Data
public class AppOtherConfigGetVo {
    @ApiModelProperty(value = "分享小程序可获得积分")
    private Integer shareIntegral;
    @ApiModelProperty(value = "平台建议可获得积分")
    private Integer suggestPlatformIntegral;
    @ApiModelProperty(value = "每日签到可获得积分")
    private Integer signInIntegral;
    @ApiModelProperty(value = "门店建议可获得积分")
    private Integer suggestShopIntegral;
    @ApiModelProperty(value = "购物满1元可获得积分")
    private Integer payMoneyIntegral;
    @ApiModelProperty(value = "C端订单自动取消时间")
    private Integer orderAutoCancelTime;
    @ApiModelProperty(value = "首页风格1.鸿瑞堂2.古引坊")
    private Integer homeStyle;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java
@@ -18,7 +18,7 @@
    @ApiModelProperty(value = "任务时间")
    private Date taskDate;
    @ApiModelProperty("任务内容")
    @ApiModelProperty(value="任务内容")
    private String taskContent;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerCouponGoodsListVo.java
@@ -22,5 +22,6 @@
    @ApiModelProperty(value = "商品数量")
    private String goodsNum;
    @ApiModelProperty(value = "商品类型")
    private String goodsType;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerHomeShopTotalVo.java
@@ -20,7 +20,7 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户类型1.经销商2.代理商")
    @ApiModelProperty(value="商户类型1.经销商2.代理商")
    private Integer shopType;
    @ApiModelProperty(value = "今日到店")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/ShopRelUserVo.java
@@ -6,9 +6,9 @@
@Data
public class ShopRelUserVo {
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("用户姓名")
    @ApiModelProperty(value="用户姓名")
    private String userName;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/SysStaffVo.java
@@ -7,47 +7,47 @@
    /**
     * 员工id
     */
    @ApiModelProperty("员工id")
    @ApiModelProperty(value="员工id")
    private String staffId;
    /**
     * 删除标记
     */
    @ApiModelProperty("删除标记")
    @ApiModelProperty(value="删除标记")
    private Integer delFlag;
    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    @ApiModelProperty(value="用户id")
    private Long userId;
    /**
     * 员工姓名
     */
    @ApiModelProperty("员工姓名")
    @ApiModelProperty(value="员工姓名")
    private String staffName;
    /**
     * 员工电话
     */
    @ApiModelProperty("员工电话")
    @ApiModelProperty(value="员工电话")
    private String staffMobile;
    /**
     * 员工邮箱
     */
    @ApiModelProperty("员工邮箱")
    @ApiModelProperty(value="员工邮箱")
    private String staffEmail;
    /**
     * 员工职位
     */
    @ApiModelProperty("员工职位")
    @ApiModelProperty(value="员工职位")
    private String staffPost;
    /**
     * 员工头像
     */
    @ApiModelProperty("员工头像")
    @ApiModelProperty(value="员工头像")
    private String staffAvatar;
    /**
     * 负责人标记
     */
    @ApiModelProperty("负责人标记")
    @ApiModelProperty(value="负责人标记")
    private String headFlag;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java
@@ -4,7 +4,9 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.domain.poji.config.SysTag;
@@ -52,6 +54,25 @@
                return R.fail("获取活跃度失败:" + throwable.getMessage());
            }
            @Override
            public R<DelayTask> getDelayTask(String key) {
                return null;
            }
            @Override
            public R addDelayTask(DelayTask delayTask) {
                return null;
            }
            @Override
            public R deleteDelayTask(String key) {
                return null;
            }
            @Override
            public R<AppOtherConfigGetVo> getAppOtherConfigGetVo() {
                return R.fail("获取其他设置失败:" + throwable.getMessage());
            }
            @Override
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java
@@ -45,6 +45,11 @@
                return null;
            }
            @Override
            public R autoTimeSendCoupon(String couponId) {
                return R.fail("定时发送"+couponId+"优惠券失败:" + throwable.getMessage());
            }
        };
    }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -128,6 +128,11 @@
                return R.fail("获取核销奖品信息失败:" + throwable.getMessage());
            }
            @Override
            public R signShare(IntegralChangeDto integralChangeDto) {
                return R.fail("积分变动失败:" + throwable.getMessage());
            }
        };
    }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/OauthUrlVo.java
@@ -6,7 +6,7 @@
@Data
public class OauthUrlVo {
    @ApiModelProperty("企业微信网页授权链接")
    @ApiModelProperty(value="企业微信网页授权链接")
    private String oauthUrl;
    public OauthUrlVo(String oauthUrl) {
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/OauthUserVo.java
@@ -6,18 +6,18 @@
@Data
public class OauthUserVo {
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("成员UserID")
    @ApiModelProperty(value="成员UserID")
    private String userid;
    @ApiModelProperty("手机")
    @ApiModelProperty(value="手机")
    private String mobile;
    @ApiModelProperty("token凭证")
    @ApiModelProperty(value="token凭证")
    private String token;
    @ApiModelProperty("过期时间")
    @ApiModelProperty(value="过期时间")
    private Long expiresIn;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/QwH5LoginVo.java
@@ -7,13 +7,13 @@
@Data
public class QwH5LoginVo {
    @ApiModelProperty("成员UserID")
    @ApiModelProperty(value="成员UserID")
    private String userid;
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("手机")
    @ApiModelProperty(value="手机")
    private String mobile;
    @ApiModelProperty(value = "用户信息")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/QwUserDetailDto.java
@@ -6,9 +6,9 @@
@Data
public class QwUserDetailDto {
    @ApiModelProperty("成员UserID")
    @ApiModelProperty(value="成员UserID")
    private String userid;
    @ApiModelProperty("手机")
    @ApiModelProperty(value="手机")
    private String mobile;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -5,8 +5,10 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
import com.ruoyi.system.api.factory.RemoteConfigFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
@@ -90,5 +92,28 @@
    @PostMapping("/config/getActivenessByName")
    public R<Activeness> getActivenessByName(@RequestBody String name);
    /**
     * 延时任务控制
     */
    @PostMapping("/config/getDelayTask")
    public R<DelayTask> getDelayTask(@RequestBody String key);
    @PostMapping("/config/addDelayTask")
    public R addDelayTask(@RequestBody DelayTask delayTask);
    @PostMapping("/config/deleteDelayTask")
    public R deleteDelayTask(@RequestBody String key);
    /**
     * 延时任务控制
     */
    /**
     * @description  获取其他设置
     * @author  jqs
     * @date    2023/7/12 15:27
     * @param
     * @return  R<AppOtherConfigGetVo>
     */
    @PostMapping("/config/getAppOtherConfigGetVo")
    public R<AppOtherConfigGetVo> getAppOtherConfigGetVo();
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java
@@ -49,4 +49,14 @@
     */
    @PostMapping("/coupon/sendCouponGift")
    public R sendCouponGift(@RequestBody List<BirthdayGiftSendDto> giftSendDtoList);
    /**
     * @description  定时发送优惠券
     * @author  jqs
     * @date    2023/7/12 11:56
     * @param couponId
     * @return  R
     */
    @PostMapping("/coupon/autoTimeSendCoupon")
    public R autoTimeSendCoupon(@RequestBody String couponId);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -193,4 +193,15 @@
     */
    @PostMapping("/member/getVerifyPrize")
    public R<MemberGiftRecord> getVerifyPrize(@RequestBody String verifyPrize);
    /**
     * @description  积分变动
     * @author  jqs
     * @date    2023/7/12 17:04
     * @param integralChangeDto
     * @return  R
     */
    @PostMapping("/member/changeIntegral")
    public R signShare(@RequestBody IntegralChangeDto integralChangeDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java
@@ -91,4 +91,29 @@
        return R.ok(activityGoodsGetVo);
    }
    /**
     * @description  开始活动
     * @author  jqs
     * @date    2023/7/12 20:30
     * @param activityId
     * @return  R
     */
    @PostMapping("/startActivity")
    public R startActivity(@RequestBody String activityId){
        activityService.startActivity(activityId);
        return R.ok();
    }
    /**
     * @description  结束活动
     * @author  jqs
     * @date    2023/7/12 20:30
     * @param activityId
     * @return  R
     */
    @PostMapping("/endActivity")
    public R endActivity(@RequestBody String activityId){
        activityService.endActivity(activityId);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityListDto.java
@@ -13,10 +13,10 @@
@Data
public class MgtActivityListDto {
    @ApiModelProperty("活动来源1平台2商户")
    @ApiModelProperty(value="活动来源1平台2商户")
    private Integer activityFrom;
    @ApiModelProperty("活动类型1秒杀")
    @ApiModelProperty(value="活动类型1秒杀")
    private Integer activityType;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java
@@ -43,7 +43,7 @@
    @ApiModelProperty(value = "商品调理问题")
    private BigDecimal goodsNurses;
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
    @ApiModelProperty(value = "商品售价")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerGoodsPageVo.java
@@ -43,7 +43,7 @@
    @ApiModelProperty(value = "商品售价")
    private BigDecimal salesPrice;;
    @ApiModelProperty("周期次数标记0否1是")
    @ApiModelProperty(value="周期次数标记0否1是")
    private Integer cycleNumFlag;
    @ApiModelProperty(value = "商品默认服务次数")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java
New file
@@ -0,0 +1,35 @@
package com.ruoyi.goods.scheduler;
import com.ruoyi.goods.service.activity.ActivityService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class ActivityScheduler {
    @Autowired
    private SchedulerUtils schedulerUtils;
    @Autowired
    private ActivityService activityService;
    /**
     * 活动定时开始
     */
    @Scheduled(cron="0 */1 * * * ?")
    private void timingSendCoupon(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("活动定时任务开始执行");
            activityService.timingStartActivity();
        }
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/SchedulerUtils.java
New file
@@ -0,0 +1,48 @@
package com.ruoyi.goods.scheduler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
@Component
public class SchedulerUtils {
    @Autowired
    private StringRedisTemplate redisTemplate;
    public boolean getSchedulerRun() {
        String localIpAddress = getLocalIpAddress();
        return true;
    }
    public static String getLocalIpAddress() {
        String localIpAddress = "";
        try {
            Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
            InetAddress ip = null;
            while (allNetInterfaces.hasMoreElements()) {
                NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
                if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) {
                    continue;
                } else {
                    Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
                    while (addresses.hasMoreElements()) {
                        ip = addresses.nextElement();
                        if (ip != null && ip instanceof Inet4Address) {
                            return ip.getHostAddress();
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return localIpAddress;
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityGoodsService.java
@@ -2,9 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo;
import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo;
import java.util.List;
@@ -43,5 +41,12 @@
     */
    List<MgtActivityGoodsListVo> listVoByActivityId(String activityId);
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 20:35
     * @param activityId
     * @return  List<ActivityGoods>
     */
    List<ActivityGoods> listByActivityId(String activityId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java
@@ -123,4 +123,31 @@
     * @return  ActivityGoodsGetVo
     */
    ActivityGoodsGetVo getUserActivityGoods(ActivityGoodsGetDto activityGoodsGetDto);
    /**
     * @description  活动定时开始
     * @author  jqs
     * @date    2023/7/12 19:44
     * @param
     * @return  void
     */
    void timingStartActivity();
    /**
     * @description  开始活动
     * @author  jqs
     * @date    2023/7/12 20:31
     * @param activityId
     * @return  void
     */
    void startActivity(String activityId);
    /**
     * @description  结束活动
     * @author  jqs
     * @date    2023/7/12 20:31
     * @param activityId
     * @return  void
     */
    void endActivity(String activityId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityGoodsServiceImpl.java
@@ -8,9 +8,7 @@
import com.ruoyi.goods.mapper.activity.ActivityGoodsMapper;
import com.ruoyi.goods.service.activity.ActivityGoodsService;
import com.ruoyi.goods.service.activity.ActivityRecordService;
import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -74,5 +72,18 @@
        return activityGoodsMapper.listVoByActivityId(activityId);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 20:35
     * @param activityId
     * @return  List<ActivityGoods>
     */
    @Override
    public List<ActivityGoods> listByActivityId(String activityId){
        LambdaQueryWrapper<ActivityGoods> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ActivityGoods::getDelFlag,0);
        queryWrapper.eq(ActivityGoods::getActivityId,activityId);
        return this.list(queryWrapper);
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -1,11 +1,14 @@
package com.ruoyi.goods.service.impl.activity;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.goods.domain.dto.MgtActivityEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityGoodsEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
@@ -19,15 +22,19 @@
import com.ruoyi.goods.service.activity.ActivityService;
import com.ruoyi.goods.service.activity.ActivityTotalService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.ActivityGoodsGetDto;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.vo.ActivityGoodsGetVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.stereotype.Service;
@@ -38,6 +45,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -69,6 +77,13 @@
    @Resource
    private RemoteMemberService remoteMemberService;
    @Resource
    private RemoteConfigService remoteConfigService;
    @Resource
    private RedisService redisService;
    /**
     * @param mgtActivityEditDto
@@ -354,4 +369,104 @@
        activityGoodsGetVo.setAvailableBuyNum(availableBuyNum);
        return activityGoodsGetVo;
    }
    /**
     * @description  活动定时开始
     * @author  jqs
     * @date    2023/7/12 19:44
     * @param
     * @return  void
     */
    @Override
    public void timingStartActivity(){
        // 创建LambdaQueryWrapper对象
        LambdaQueryWrapper<Activity> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Activity::getDelFlag, 0);
        queryWrapper.eq(Activity::getActivityStatus, 0);
        // 计算时间差
        Date checkTime = DateUtils.addMinutes(new Date(), 61);
        queryWrapper.lt(Activity::getActivityStartTime, checkTime);
        // 查询符合条件的活动列表
        List<Activity> activityList = activityMapper.selectList(queryWrapper);
        // 如果活动列表不为空
        if (activityList != null && !activityList.isEmpty()) {
            // 遍历活动列表
            for (Activity activity : activityList) {
                String activityId = activity.getActivityId();
                Date activityStartTime = activity.getActivityStartTime();
                Date activityEndTime = activity.getActivityEndTime();
                long currentTimeMillis = System.currentTimeMillis();
                long startTimeDifference = currentTimeMillis - activityStartTime.getTime();
                long endTimeDifference = currentTimeMillis - activityEndTime.getTime();
                // 查询延时任务
                DelayTask startDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData();
                // 如果延时任务为空,创建延时任务控制活动定时开始和结束
                if (startDelayTask == null) {
                    redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, startTimeDifference, TimeUnit.MILLISECONDS);
                    startDelayTask = new DelayTask();
                    startDelayTask.setDelFlag(0);
                    startDelayTask.setCreateTime(new Date());
                    startDelayTask.setEndTime(activityStartTime);
                    startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId);
                    remoteConfigService.addDelayTask(startDelayTask);
                }
                // 查询延时任务
                DelayTask endDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId).getData();
                // 如果延时任务为空,创建延时任务控制活动定时开始和结束
                if (endDelayTask == null) {
                    redisService.setCacheObject(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId, activityEndTime, endTimeDifference, TimeUnit.MILLISECONDS);
                    endDelayTask = new DelayTask();
                    endDelayTask.setDelFlag(0);
                    endDelayTask.setCreateTime(new Date());
                    endDelayTask.setEndTime(activityEndTime);
                    endDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId);
                    remoteConfigService.addDelayTask(endDelayTask);
                }
            }
        }
    }
    /**
     * @description  开始活动
     * @author  jqs
     * @date    2023/7/12 20:31
     * @param activityId
     * @return  void
     */
    @Override
    public void startActivity(String activityId){
        Activity activity = this.getById(activityId);
        if(activity!=null&&activity.getActivityStatus()==0){
            activity.setActivityStatus(1);
            List<ActivityGoods> activityGoodsList = activityGoodsService.listByActivityId(activityId);
            if(activityGoodsList!=null&&!activityGoodsList.isEmpty()){
                for(ActivityGoods activityGoods : activityGoodsList){
                    redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+activityGoods.getGoodsId(),activityGoods.getActivityNumber());
                }
            }
            this.saveOrUpdate(activity);
        }
    }
    /**
     * @description  结束活动
     * @author  jqs
     * @date    2023/7/12 20:31
     * @param activityId
     * @return  void
     */
    @Override
    public void endActivity(String activityId){
        Activity activity = this.getById(activityId);
        if(activity!=null&&activity.getActivityStatus()==1){
            activity.setActivityStatus(2);
            List<ActivityGoods> activityGoodsList = activityGoodsService.listByActivityId(activityId);
            if(activityGoodsList!=null&&!activityGoodsList.isEmpty()){
                for(ActivityGoods activityGoods : activityGoodsList){
                    redisService.deleteObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+activityGoods.getGoodsId());
                }
            }
            this.saveOrUpdate(activity);
        }
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -383,7 +383,7 @@
        }
        goods.setRecommendFlag(mgtGoodsEditDto.getRecommendFlag());
        goods.setGoodsNurses(mgtGoodsEditDto.getGoodsNurses());
        goods.setGoodsTags(mgtGoodsEditDto.getGoodsNurses());
        goods.setGoodsTags(mgtGoodsEditDto.getGoodsTags());
        this.saveOrUpdate(goods);
        //商品图片视频处理
        final String goodsIdFinal = goodsId;
@@ -591,7 +591,7 @@
                    mgtGoodsEditInfoVo.setGoodsPicture(goodsFile.getFileUrl());
                }else if(goodsFile.getFileType()==2){
                    mgtGoodsEditInfoVo.setGoodsVideo(goodsFile.getFileUrl());
                }else if(goodsFile.getFileType()==2){
                }else if(goodsFile.getFileType()==3){
                    goodsBannersSj.add(goodsFile.getFileUrl());
                }
            }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java
@@ -85,4 +85,18 @@
        couponService.sendCouponGift(giftSendDtoList);
        return R.ok();
    }
    /**
     * @description  定时发送优惠券
     * @author  jqs
     * @date    2023/7/12 11:56
     * @param couponId
     * @return  R
     */
    @PostMapping("/autoTimeSendCoupon")
    public R autoTimeSendCoupon(@RequestBody String couponId){
        couponService.autoTimeSendCoupon(couponId);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -12,10 +12,7 @@
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import io.swagger.annotations.ApiOperation;
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 org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@@ -293,4 +290,17 @@
        MemberGiftRecord memberGiftRecord = memberGiftRecordService.getById(verifyPrize);
        return R.ok(memberGiftRecord);
    }
    /**
     * @description  积分变动
     * @author  jqs
     * @date    2023/7/12 17:04
     * @param integralChangeDto
     * @return  R
     */
    @PostMapping("/changeIntegral")
    public R signShare(@RequestBody IntegralChangeDto integralChangeDto) {
        memberService.changeIntegral(integralChangeDto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppIntegralController.java
New file
@@ -0,0 +1,90 @@
package com.ruoyi.member.controller.miniapp;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.vo.AppIntegralRecordPageVo;
import com.ruoyi.member.domain.vo.AppIntegralTaskListVo;
import com.ruoyi.member.service.member.IntegralRecordService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.AppPageDto;
import com.ruoyi.system.api.domain.dto.IntegralChangeDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
 * @ClassName AppIntegralController
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/12 14:09
 * @Version 1.0
 */
@Api(value = "小程序积分相关接口", tags = "小程序积分相关接口", description = "小程序积分相关接口")
@RestController
@RequestMapping("/app/integral")
public class AppIntegralController {
    @Resource
    private MemberService memberService;
    @Resource
    private IntegralRecordService integralRecordService;
    @RequestMapping(value = "/pageAppMemberIntegralRecord", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取用户积分明细列表")
    public R<Page<AppIntegralRecordPageVo>> pageAppMemberIntegralRecord(@RequestBody AppPageDto appPageDto) {
        Long userId = SecurityUtils.getUserId();
        appPageDto.setUserId(userId);
        Page<AppIntegralRecordPageVo> page = new Page<>();
        page.setSize(appPageDto.getPageSize());
        page.setCurrent(appPageDto.getPageNum());
        List<AppIntegralRecordPageVo> integralRecordPageVoList = integralRecordService.pageAppMemberIntegralRecord(page,userId);
        return R.ok(page.setRecords(integralRecordPageVoList));
    }
    @RequestMapping(value = "/listAppMemberIntegralTask", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取用户积分任务列表")
    public R<List<AppIntegralTaskListVo>> listAppMemberIntegralTask() {
        Long userId = SecurityUtils.getUserId();
        List<AppIntegralTaskListVo> integralTaskListVoList = memberService.listAppMemberIntegralTask(userId);
        return R.ok(integralTaskListVoList);
    }
    @RequestMapping(value = "/signToday", method = RequestMethod.POST)
    @ApiOperation(value = "今日签到")
    public R signToday() {
        Long userId = SecurityUtils.getUserId();
        IntegralChangeDto integralChangeDto = new IntegralChangeDto();
        integralChangeDto.setIntegralType(5);
        integralChangeDto.setUserId(userId);
        Boolean complete = memberService.changeIntegral(integralChangeDto);
        if(complete){
            throw new ServiceException(AppErrorConstant.DOUBLE_INTEGRAL_TASK);
        }
        return R.ok();
    }
    @RequestMapping(value = "/signShare", method = RequestMethod.POST)
    @ApiOperation(value = "今日分享")
    public R signShare() {
        Long userId = SecurityUtils.getUserId();
        IntegralChangeDto integralChangeDto = new IntegralChangeDto();
        integralChangeDto.setIntegralType(1);
        integralChangeDto.setUserId(userId);
        Boolean complete = memberService.changeIntegral(integralChangeDto);
        if(complete){
            throw new ServiceException(AppErrorConstant.DOUBLE_INTEGRAL_TASK);
        }
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -13,10 +13,7 @@
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.member.service.member.MemberSuggestService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.dto.AppPageDto;
import com.ruoyi.system.api.domain.dto.AppSuggestPageDto;
import com.ruoyi.system.api.domain.dto.AppUserSuggestDto;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.member.Member;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -86,6 +83,14 @@
        Long userId = SecurityUtils.getUserId();
        appUserSuggestDto.setUserId(userId);
        memberSuggestService.userSuggest(appUserSuggestDto);
        IntegralChangeDto integralChangeDto = new IntegralChangeDto();
        if(appUserSuggestDto.getSuggestType()==1){
            integralChangeDto.setIntegralType(2);
        }else{
            integralChangeDto.setIntegralType(3);
        }
        integralChangeDto.setUserId(userId);
        memberService.changeIntegral(integralChangeDto);
        return R.ok();
    }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java
@@ -21,10 +21,10 @@
    @ApiModelProperty(value = "优惠券id 新增不传")
    private String couponId;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.指定发放")
@@ -33,10 +33,10 @@
    @ApiModelProperty(value = "发送对象2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendTarget;
    @ApiModelProperty("发送时间类型1立即2定时")
    @ApiModelProperty(value="发送时间类型1立即2定时")
    private Integer sendTimeType;
    @ApiModelProperty("发送时间")
    @ApiModelProperty(value="发送时间")
    private Date sendTime;
    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponAuditDto.java
@@ -17,9 +17,9 @@
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("审核状态2审核通过3审核拒绝")
    @ApiModelProperty(value="审核状态2审核通过3审核拒绝")
    private Integer auditStatus;
    @ApiModelProperty("拒绝理由")
    @ApiModelProperty(value="拒绝理由")
    private String auditReason;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponAuditPageDto.java
@@ -14,10 +14,10 @@
@Data
public class MgtCouponAuditPageDto extends MgtPageDto {
    @ApiModelProperty("1申请中2审核通过3审核拒绝")
    @ApiModelProperty(value="1申请中2审核通过3审核拒绝")
    private Integer auditStatus;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "创建开始时间")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
@@ -21,19 +21,19 @@
    @ApiModelProperty(value = "优惠券id 新增不传")
    private String couponId;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendType;
    @ApiModelProperty("发送时间类型1立即2定时")
    @ApiModelProperty(value="发送时间类型1立即2定时")
    private Integer sendTimeType;
    @ApiModelProperty("发送时间")
    @ApiModelProperty(value="发送时间")
    private Date sendTime;
    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponPageDto.java
@@ -14,10 +14,10 @@
@Data
public class MgtCouponPageDto extends MgtPageDto {
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "创建开始时间")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
@@ -170,6 +170,12 @@
     */
    @TableField("limit_number")
    private Integer limitNumber;
    /**
     * 是否发放过
     */
    @TableField("send_flag")
    private Integer sendFlag;
    
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/IntegralRecord.java
@@ -1,16 +1,16 @@
package com.ruoyi.member.domain.pojo.member;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
@@ -42,7 +42,7 @@
    @TableField(value = "user_id")
    private Long userId;
    /**
     * 变动类型
     * 变动类型1分享获取2平台建议获取3门店建议获取4每日签到5消费得积分
     */
    @TableField("change_type")
    private Integer changeType;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberTotal.java
@@ -129,6 +129,31 @@
    @TableField("total_goods_order")
    private Integer totalGoodsOrder;
    /**
     * 分享标记
     */
    @TableField("share_flag")
    private Integer shareFlag;
    /**
     * 平台建议标记
     */
    @TableField("pl_suggest_flag")
    private Integer plSuggestFlag;
    /**
     * 门店建议标记
     */
    @TableField("shop_suggest_flag")
    private Integer shopSuggestFlag;
    /**
     * 签到标记
     */
    @TableField("sign_flag")
    private Integer signFlag;
    /**
     * 消费标记
     */
    @TableField("buy_flag")
    private Integer buyFlag;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppIntegralRecordPageVo.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.member.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @ClassName AppIntegralPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/12 14:29
 * @Version 1.0
 */
@Data
public class AppIntegralRecordPageVo {
    @ApiModelProperty(value="变动理由")
    private String changeReason;
    @ApiModelProperty(value="变动时间")
    private Date createTime;
    @ApiModelProperty(value="变动积分")
    private Integer changeIntegral;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppIntegralTaskListVo.java
New file
@@ -0,0 +1,28 @@
package com.ruoyi.member.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName AppIntegralTaskListVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/12 14:55
 * @Version 1.0
 */
@Data
public class AppIntegralTaskListVo {
    @ApiModelProperty(value="任务内容")
    private String taskContent;
    @ApiModelProperty(value="任务积分描述")
    private String taskDesc;
    @ApiModelProperty(value="推荐标记0否1是")
    private Integer recommendFlag;
    @ApiModelProperty(value="完成标记0否1是")
    private Integer completeFlag;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java
@@ -1,9 +1,11 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@@ -44,6 +46,18 @@
    private BigDecimal discountPercent;
    @ApiModelProperty(value = "有效开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validStartTime;
    @ApiModelProperty(value = "有效结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deadlineTime;
    @ApiModelProperty(value = "使用时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date useTime;
    @ApiModelProperty(value = "核销店铺")
    private String verifyShopName;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppUserInfoVo.java
@@ -1,9 +1,5 @@
package com.ruoyi.member.domain.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -23,7 +19,7 @@
    @ApiModelProperty(value = "关联id")
    private Long relationShopId;
    @ApiModelProperty("会员编号")
    @ApiModelProperty(value="会员编号")
    private String memberNo;
    @ApiModelProperty(value = "用户姓名")
@@ -35,24 +31,27 @@
    @ApiModelProperty(value = "手机号码")
    private String phonenumber;
    @ApiModelProperty("关联商户")
    @ApiModelProperty(value="关联商户")
    private String shopName;
    @ApiModelProperty("关联商户地址")
    @ApiModelProperty(value="关联商户地址")
    private String shopAddress;
    @ApiModelProperty("生日")
    @ApiModelProperty(value="生日")
    private String birthday;
    @ApiModelProperty("性别0=男,1=女,2=未知")
    @ApiModelProperty(value="性别0=男,1=女,2=未知")
    private Integer gender;
    @ApiModelProperty("用户头像")
    @ApiModelProperty(value="用户头像")
    private String avatar;
    @ApiModelProperty("待支付统计")
    @ApiModelProperty(value="待支付统计")
    private Integer noPayCount;
    @ApiModelProperty("待核销统计")
    @ApiModelProperty(value="待核销统计")
    private Integer noUseCount;
    @ApiModelProperty(value="积分")
    private Integer integral;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java
@@ -22,10 +22,10 @@
    @ApiModelProperty(value = "优惠券id 新增不传")
    private String couponId;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.指定发放")
@@ -34,10 +34,10 @@
    @ApiModelProperty(value = "发送对象2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendTarget;
    @ApiModelProperty("发送时间类型1立即2定时")
    @ApiModelProperty(value="发送时间类型1立即2定时")
    private Integer sendTimeType;
    @ApiModelProperty("发送时间")
    @ApiModelProperty(value="发送时间")
    private Date sendTime;
    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java
@@ -19,10 +19,10 @@
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty(value = "使用限制")
@@ -67,10 +67,10 @@
    @ApiModelProperty(value = "折扣百分比",hidden = true)
    private BigDecimal discountPercent;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("拒绝理由")
    @ApiModelProperty(value="拒绝理由")
    private String auditReason;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java
@@ -26,10 +26,10 @@
    @ApiModelProperty(value = "手机号码")
    private String phonenumber;
    @ApiModelProperty("用户头像")
    @ApiModelProperty(value="用户头像")
    private String avatar;
    @ApiModelProperty("用户生日")
    @ApiModelProperty(value="用户生日")
    private String birthday;
    @ApiModelProperty(value = "用户类型")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponAuditPageVo.java
@@ -19,10 +19,10 @@
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("店铺名称")
    @ApiModelProperty(value="店铺名称")
    private String shopName;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
@@ -59,11 +59,11 @@
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date sendTime;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("审核状态1申请中2审核通过3审核拒绝")
    @ApiModelProperty(value="审核状态1申请中2审核通过3审核拒绝")
    private String auditStatus;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java
@@ -21,19 +21,19 @@
    @ApiModelProperty(value = "优惠券id 新增不传")
    private String couponId;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendType;
    @ApiModelProperty("发送时间类型1立即2定时")
    @ApiModelProperty(value="发送时间类型1立即2定时")
    private Integer sendTimeType;
    @ApiModelProperty("发送时间")
    @ApiModelProperty(value="发送时间")
    private Date sendTime;
    @ApiModelProperty(value = "使用范围1.全场2.指定商品")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponMemberListVo.java
@@ -28,7 +28,7 @@
    @ApiModelProperty(value = "手机号码")
    private String mobile;
    @ApiModelProperty("用户头像")
    @ApiModelProperty(value="用户头像")
    private String avatar;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java
@@ -20,10 +20,10 @@
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品")
    private String couponType;
    @ApiModelProperty(value = "使用限制")
@@ -65,7 +65,7 @@
    @ApiModelProperty(value = "折扣百分比",hidden = true)
    private BigDecimal discountPercent;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponSimpleListVo.java
@@ -16,6 +16,6 @@
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("优惠券名称")
    @ApiModelProperty(value="优惠券名称")
    private String couponName;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/IntegralRecordMapper.java
@@ -4,6 +4,7 @@
import com.ruoyi.member.domain.dto.MgtMemberIntegralPageDto;
import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.member.domain.vo.AppIntegralRecordPageVo;
import com.ruoyi.member.domain.vo.MgtMemberIntegralPageVo;
import org.apache.ibatis.annotations.Param;
@@ -24,4 +25,15 @@
     * @return
     */
    List<MgtMemberIntegralPageVo> pageMgtMemberIntegral(Page page, @Param("param") MgtMemberIntegralPageDto mgtMemberIntegralPageDto);
    /**
     * @description  小程序获取用户积分明细
     * @author  jqs
     * @date    2023/7/12 14:37
     * @param page
     * @param userId
     * @return  List<AppIntegralRecordPageVo>
     */
    List<AppIntegralRecordPageVo> pageAppMemberIntegralRecord(Page page, @Param("userId")Long userId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
@@ -37,4 +37,13 @@
     * @return  List<AppMemberCouponPageVo>
     */
    List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page,@Param("param") AppMemberCouponPageDto appMemberCouponPageDto);
    /**
     * @description  定时检查优惠券过期
     * @author  jqs
     * @date    2023/7/12 19:19
     * @param
     * @return  void
     */
    void timingCheckMemberCoupon();
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java
New file
@@ -0,0 +1,51 @@
package com.ruoyi.member.scheduler;
import com.ruoyi.member.service.coupon.CouponService;
import com.ruoyi.member.service.member.MemberCouponService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
@Slf4j
public class MemberScheduler {
    @Autowired
    private SchedulerUtils schedulerUtils;
    @Resource
    private CouponService couponService;
    @Resource
    private MemberCouponService memberCouponService;
    /**
     * 优惠券定时发送
     */
    @Scheduled(cron="0 */1 * * * ?")
    private void timingSendCoupon(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("优惠券定时发放任务开始执行");
            couponService.timingSendCoupon();
        }
    }
    /**
     * 定时检查优惠券过期
     */
    @Scheduled(cron="5 0 * * * ?")
    private void timingCheckMemberCoupon(){
        if(schedulerUtils.getSchedulerRun()) {
            log.info("定时检查优惠券过期任务开始执行");
            memberCouponService.timingCheckMemberCoupon();
        }
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberrScheduler.java
File was deleted
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -181,4 +181,13 @@
     * @return  void
     */
    void appGetCoupon(String couponId,Long userId,Long shopId);
    /**
     * @description  定时发送优惠券
     * @author  jqs
     * @date    2023/7/12 12:01
     * @param couponId
     * @return  void
     */
    void autoTimeSendCoupon(String couponId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -92,7 +92,11 @@
        // 创建新的生日卡
        BirthdayCard birthdayCard = new BirthdayCard();
        birthdayCard.setDelFlag(0);
        birthdayCard.setShopId(0L);
        if(mgtBirthdayEditDto.getShopId()!=null){
            birthdayCard.setShopId(mgtBirthdayEditDto.getShopId());
        }else{
            birthdayCard.setShopId(0L);
        }
        birthdayCard.setCardStatus(mgtBirthdayEditDto.getCardStatus());
        // 根据卡状态设置开启或关闭时间
        if(mgtBirthdayEditDto.getCardStatus()==1){
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.pojo.coupon.*;
import com.ruoyi.member.domain.vo.*;
@@ -16,12 +17,17 @@
import com.ruoyi.member.service.member.MemberCouponService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
import com.ruoyi.system.api.service.RemoteActivityService;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteGoodsService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -30,6 +36,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -69,6 +76,15 @@
    @Resource
    private MemberCouponRecordService memberCouponRecordService;
    @Resource
    private RemoteShopService remoteShopService;
    @Resource
    private RedisService redisService;
    @Resource
    private RemoteConfigService remoteConfigService;
    /**
     * @description  平台获取优惠券列表
@@ -245,6 +261,8 @@
            coupon.setCreateUserId(mgtCouponEditDto.getUserId());
            coupon.setCouponFrom(1);
            coupon.setAuditStatus(2);
            coupon.setLimitNumber(0);
            coupon.setSendFlag(0);
            //创建优惠券统计
            couponTotal = new CouponTotal();
            couponTotal.setCouponId(couponId);
@@ -302,10 +320,13 @@
                    .collect(Collectors.toList());
            couponRelUserService.saveBatch(couponRelUserList);
        }
        this.saveOrUpdate(coupon);
        //处理优惠券发放
        if(coupon.getSendTimeType()==1){
            sendCoupon(coupon,relUserIdList);
            coupon.setSendFlag(1);
            this.saveOrUpdate(coupon);
        }else{
            this.saveOrUpdate(coupon);
        }
    }
@@ -401,6 +422,90 @@
        }
    }
    private void sendCouponNow(Coupon coupon, List<Long> relUserIdList){
        //1.手动领取2.全部用户3.会员用户4非会员用户5自定义
        Date nowTime = new Date();
        Integer sendType = coupon.getSendType();
        List<Long> userIdList = new ArrayList<>();
        Long shopId = null;
        if(coupon.getCouponFrom()==2 && sendType==3){
            shopId = coupon.getShopId();
        }
        if(sendType >= 2 && sendType <= 4){
            userIdList = memberService.listIdBySendType(sendType,shopId);
        }else if(sendType == 5){
            //关联类型1.用户管理筛选2.活动管理筛选
            if(coupon.getRelationType()==2){
                Integer relationActivityType = coupon.getRelationActivityType();
                //关联活动类型1秒杀活动
                switch(relationActivityType){
                    case 1:
                        userIdList = remoteActivityService.listUserIdByActivityId(coupon.getRelationActivityId()).getData();
                        break;
                    default:
                        break;
                }
            }else if(coupon.getRelationType()==1){
                userIdList = relUserIdList;
            }
        }
        if(relUserIdList!=null&&!relUserIdList.isEmpty()){
            List<MemberCoupon> memberCouponList = new ArrayList<>();
            MemberCoupon memberCoupon;
            Integer sendTotal = 0;
            Integer sendPerson = 0;
            String memberCouponId;
            Integer sendUserTotal;
            for(Long userId : userIdList){
                memberCouponId = IdUtils.simpleUUID();
                memberCoupon = new MemberCoupon();
                memberCoupon.setId(memberCouponId);
                memberCoupon.setDelFlag(0);
                memberCoupon.setCouponId(coupon.getCouponId());
                memberCoupon.setUserId(userId);
                memberCoupon.setShopId(coupon.getShopId());
                memberCoupon.setCouponType(coupon.getCouponType());
                memberCoupon.setCouponStatus(coupon.getCouponStatus());
                memberCoupon.setCouponName(coupon.getCouponName());
                memberCoupon.setSendType(coupon.getSendType());
                memberCoupon.setSendTimeType(coupon.getSendTimeType());
                memberCoupon.setSendTime(coupon.getSendTime());
                memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                memberCoupon.setUseScope(coupon.getUseScope());
                memberCoupon.setValidTimeType(coupon.getValidTimeType());
                memberCoupon.setValidStartTime(coupon.getValidStartTime());
                memberCoupon.setValidEndTime(coupon.getValidEndTime());
                memberCoupon.setValidDay(coupon.getValidDay());
                memberCoupon.setReceiveTime(nowTime);
                memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                //有效期处理1.时间段2.领取之日起
                if(coupon.getValidTimeType()==1){
                    memberCoupon.setDeadlineTime(coupon.getValidEndTime());
                }else if(coupon.getValidTimeType()==2){
                    memberCoupon.setDeadlineTime(DateUtils.addDays(nowTime,coupon.getValidDay()));
                }
                memberCouponList.add(memberCoupon);
                sendTotal = sendTotal + 1;
                if(coupon.getSendType()==1){
                    sendUserTotal = memberCouponService.totalMemberCouponByUserAndCoupon(userId,coupon.getCouponId());
                    if(sendUserTotal!=null&&sendUserTotal>0){
                    }else{
                        sendPerson = sendPerson + 1;
                    }
                }
                memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
            }
            memberCouponService.saveBatch(memberCouponList);
            //处理优惠券统计
            if(sendTotal>0){
                couponMapper.updateCouponTotal(coupon.getCouponId(),sendTotal,sendPerson);
            }
        }
    }
    /**
     * @description  平台删除优惠券
     * @author  jqs
@@ -431,31 +536,61 @@
     */
    @Override
    public void timingSendCoupon(){
        //获取1小时内需要发送的优惠券
        LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Coupon::getDelFlag,0);
        queryWrapper.eq(Coupon::getCouponStatus,1);
        queryWrapper.eq(Coupon::getSendTimeType,2);
        queryWrapper.eq(Coupon::getAuditStatus,2);
        queryWrapper.eq(Coupon::getSendTime,DateUtils.getNowDate());
        queryWrapper.eq(Coupon::getSendFlag,0);
        Date checkTime = DateUtils.addMinutes(new Date(),61);
        queryWrapper.le(Coupon::getSendTime, checkTime);
        List<Coupon> couponList = couponMapper.selectList(queryWrapper);
        if(couponList!=null&&!couponList.isEmpty()){
            List<CouponRelUser> couponRelUserList;
            List<Long> userIdList = new ArrayList<>();
            for(Coupon coupon : couponList){
                if(coupon.getSendType()==5&&coupon.getRelationType()==1){
                    couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId()));
                    if(couponRelUserList!=null&&!couponRelUserList.isEmpty()){
                        userIdList = couponRelUserList.stream()
                                .map(CouponRelUser::getUserId)
                                .collect(Collectors.toList());
                    }else{
                        userIdList = new ArrayList<>();
                    }
            for(Coupon coupon : couponList) {
                String couponId = coupon.getCouponId();
                Date sendTime = coupon.getSendTime();
                long currentTimeMillis = System.currentTimeMillis();
                long timeDifference = currentTimeMillis - sendTime.getTime();
                DelayTask delayTask = remoteConfigService.getDelayTask(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode()+"-"+couponId).getData();
                if(delayTask==null){
                    //创建延时任务控制优惠券定时发放
                    redisService.setCacheObject(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode()+"-"+couponId,sendTime,timeDifference, TimeUnit.MILLISECONDS);
                    delayTask = new DelayTask();
                    delayTask.setDelFlag(0);
                    delayTask.setCreateTime(new Date());
                    delayTask.setEndTime(sendTime);
                    delayTask.setRedisKey(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode()+"-"+couponId);
                    remoteConfigService.addDelayTask(delayTask);
                }
                //发送优惠券
                sendCoupon(coupon, userIdList);
            }
        }
    }
    /**
     * @description  定时发送优惠券
     * @author  jqs
     * @date    2023/7/12 12:01
     * @param couponId
     * @return  void
     */
    @Override
    public void autoTimeSendCoupon(String couponId){
        List<CouponRelUser> couponRelUserList;
        List<Long> userIdList = new ArrayList<>();
        Coupon coupon = this.getById(couponId);
        if(coupon.getSendType()==5&&coupon.getRelationType()==1){
            couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId()));
            if(couponRelUserList!=null&&!couponRelUserList.isEmpty()){
                userIdList = couponRelUserList.stream()
                        .map(CouponRelUser::getUserId)
                        .collect(Collectors.toList());
            }else{
                userIdList = new ArrayList<>();
            }
        }
        //发送优惠券
        sendCouponNow(coupon, userIdList);
    }
    /**
@@ -587,7 +722,6 @@
        coupon.setAuditReason(mgtCouponAuditDto.getAuditReason());
        coupon.setUpdateTime(new Date());
        coupon.setUpdateUserId(mgtCouponAuditDto.getUserId());
        this.saveOrUpdate(coupon);
        //审核通过后判断是否立即发放
        if(coupon.getCouponStatus()==2&&coupon.getSendTimeType()==1){
            List<CouponRelUser> couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId()));
@@ -599,7 +733,9 @@
            }
            //发放优惠券
            sendCoupon(coupon, userIdList);
            coupon.setSendFlag(1);
        }
        this.saveOrUpdate(coupon);
    }
    /**
@@ -749,6 +885,8 @@
            coupon.setCreateTime(new Date());
            coupon.setCreateUserId(merCouponEditDto.getUserId());
            coupon.setCouponFrom(2);
            coupon.setSendFlag(0);
            coupon.setLimitNumber(merCouponEditDto.getLimitNumber());
            //创建优惠券统计
            couponTotal = new CouponTotal();
            couponTotal.setCouponId(couponId);
@@ -901,19 +1039,34 @@
        if(!getAbleCouponPageVoList.isEmpty()){
            String relGoodsIds;
            List<Goods> goodsList;
            List<String> goodsLimitList;
            List<String> goodsLimitList = null;
            Shop shop = null;
            for(AppGetAbleCouponPageVo appGetAbleCouponPageVo : getAbleCouponPageVoList){
                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                    goodsLimitList = goodsList.stream().map(goods -> {
                        String goodsName = goods.getGoodsName();
                        goodsName = "限制" + goodsName + "适用";
                        return goodsName;
                    }).collect(Collectors.toList());
                    appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
                if(StringUtils.isNotBlank(relGoodsIds)){
                    goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                    if(!goodsList.isEmpty()){
                        goodsLimitList = goodsList.stream().map(goods -> {
                            String goodsName = goods.getGoodsName();
                            goodsName = "限制" + goodsName + "适用";
                            return goodsName;
                        }).collect(Collectors.toList());
                    }
                }else{
                    goodsLimitList = new ArrayList<>();
                    if(appGetAbleCouponPageVo.getShopId()!=null){
                        if(shop!=null&&shop.getShopId().equals(appGetAbleCouponPageVo.getShopId())){
                        }else{
                            shop = remoteShopService.getShop(appGetAbleCouponPageVo.getShopId()).getData();
                        }
                        goodsLimitList.add(shop.getShopName()+"通用");
                    }else{
                        goodsLimitList.add("全场通用");
                    }
                }
                appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
            }
        }
        return getAbleCouponPageVoList;
    }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/IntegralRecordServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.MgtMemberIntegralPageDto;
import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.ruoyi.member.domain.vo.AppIntegralRecordPageVo;
import com.ruoyi.member.domain.vo.MgtMemberIntegralPageVo;
import com.ruoyi.member.mapper.member.IntegralRecordMapper;
import com.ruoyi.member.service.member.IntegralRecordService;
@@ -35,4 +36,17 @@
    public List<MgtMemberIntegralPageVo> pageMgtMemberIntegral(Page page, MgtMemberIntegralPageDto mgtMemberIntegralPageDto){
        return integralRecordMapper.pageMgtMemberIntegral(page, mgtMemberIntegralPageDto);
    }
    /**
     * @description  小程序获取用户积分明细
     * @author  jqs
     * @date    2023/7/12 14:37
     * @param page
     * @param userId
     * @return  List<AppIntegralRecordPageVo>
     */
    @Override
    public List<AppIntegralRecordPageVo> pageAppMemberIntegralRecord(Page page, Long userId){
        return integralRecordMapper.pageAppMemberIntegralRecord(page,userId);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
@@ -4,24 +4,25 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
import com.ruoyi.member.mapper.member.MemberCouponMapper;
import com.ruoyi.member.service.member.MemberCouponService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.service.RemoteGoodsService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -43,6 +44,7 @@
    @Resource
    private RemoteShopService remoteShopService;
    /**
     * @description: TODO
@@ -175,32 +177,52 @@
        if(!memberCouponPageVoList.isEmpty()){
            String relGoodsIds;
            List<Goods> goodsList;
            List<String> goodsLimitList;
            Shop shop = null;
            List<String> goodsLimitList = null;
            HashSet<Long> shopIdSet = new HashSet<>();
            for(AppMemberCouponPageVo appGetAbleCouponPageVo : memberCouponPageVoList){
                shopIdSet.add(appGetAbleCouponPageVo.getShopId());
            }
            String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(shopJoinedString);
            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            for(AppMemberCouponPageVo appGetAbleCouponPageVo : memberCouponPageVoList){
                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                    goodsLimitList = goodsList.stream().map(goods -> {
                        String goodsName = goods.getGoodsName();
                        goodsName = "限制" + goodsName + "适用";
                        return goodsName;
                    }).collect(Collectors.toList());
                if(StringUtils.isNotBlank(relGoodsIds)){
                    goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                    if(!goodsList.isEmpty()){
                        goodsLimitList = goodsList.stream().map(goods -> {
                            String goodsName = goods.getGoodsName();
                            goodsName = "限制" + goodsName + "适用";
                            return goodsName;
                        }).collect(Collectors.toList());
                    }
                }else{
                    goodsLimitList = new ArrayList<>();
                    if(appGetAbleCouponPageVo.getShopId()!=null){
                        if(shop!=null&&shop.getShopId().equals(appGetAbleCouponPageVo.getShopId())){
                        }else{
                            shop = remoteShopService.getShop(appGetAbleCouponPageVo.getShopId()).getData();
                        }
                        goodsLimitList.add(shop.getShopName()+"通用");
                        goodsLimitList.add(shopMap.get(appGetAbleCouponPageVo.getShopId()).getShopName()+"通用");
                    }else{
                        goodsLimitList.add("全场通用");
                    }
                }
                appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
                appGetAbleCouponPageVo.setVerifyShopName(shopMap.get(appGetAbleCouponPageVo.getShopId()).getShopName());
            }
        }
        return memberCouponPageVoList;
    }
    /**
     * @description  定时检查优惠券过期
     * @author  jqs
     * @date    2023/7/12 19:19
     * @param
     * @return  void
     */
    @Override
    public void timingCheckMemberCoupon(){
        memberCouponMapper.timingCheckMemberCoupon();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -306,6 +306,8 @@
        AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData();
        appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount());
        appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount());
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        appUserInfoVo.setIntegral(memberTotal.getUseableIntegral());
        return appUserInfoVo;
    }
@@ -772,6 +774,11 @@
        memberTotal.setTotalExperienceOrder(0);
        memberTotal.setTotalServiceOrder(0);
        memberTotal.setTotalGoodsOrder(0);
        memberTotal.setShareFlag(0);
        memberTotal.setPlSuggestFlag(0);
        memberTotal.setShopSuggestFlag(0);
        memberTotal.setSignFlag(0);
        memberTotal.setBuyFlag(0);
        memberTotalService.saveOrUpdate(memberTotal);
    }
@@ -1644,4 +1651,163 @@
    public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){
        sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId()));
    }
    /**
     * @description  获取用户任务列表
     * @author  jqs
     * @date    2023/7/12 15:07
     * @param userId
     * @return  List<AppIntegralTaskListVo>
     */
    @Override
    public List<AppIntegralTaskListVo> listAppMemberIntegralTask(Long userId){
        // 获取指定用户的会员信息
        Member member = this.getByUserId(userId);
        // 获取会员的总积分信息
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        // 获取其他配置信息
        AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData();
        // 创建一个空的积分任务列表
        List<AppIntegralTaskListVo> appIntegralTaskListVoList = new ArrayList<>();
        // 创建分享小程序任务
        AppIntegralTaskListVo shareTask = new AppIntegralTaskListVo();
        shareTask.setTaskContent("分享小程序给微信好友");
        shareTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getShareIntegral() + "积分");
        shareTask.setRecommendFlag(1);
        shareTask.setCompleteFlag(memberTotal.getShareFlag());
        appIntegralTaskListVoList.add(shareTask);
        // 创建提交平台建议任务
        AppIntegralTaskListVo plSuggestTask = new AppIntegralTaskListVo();
        plSuggestTask.setTaskContent("提交平台建议");
        plSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestPlatformIntegral() + "积分");
        plSuggestTask.setRecommendFlag(1);
        plSuggestTask.setCompleteFlag(memberTotal.getPlSuggestFlag());
        appIntegralTaskListVoList.add(plSuggestTask);
        // 创建提交门店建议任务
        AppIntegralTaskListVo shopSuggestTask = new AppIntegralTaskListVo();
        shopSuggestTask.setTaskContent("提交门店建议");
        shopSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestShopIntegral() + "积分");
        shopSuggestTask.setRecommendFlag(1);
        shopSuggestTask.setCompleteFlag(memberTotal.getShopSuggestFlag());
        appIntegralTaskListVoList.add(shopSuggestTask);
        // 创建每日签到任务
        AppIntegralTaskListVo signTask = new AppIntegralTaskListVo();
        signTask.setTaskContent("每日签到");
        signTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSignInIntegral() + "积分");
        signTask.setRecommendFlag(1);
        signTask.setCompleteFlag(memberTotal.getSignFlag());
        appIntegralTaskListVoList.add(signTask);
        // 创建消费得积分任务
        AppIntegralTaskListVo buyTask = new AppIntegralTaskListVo();
        buyTask.setTaskContent("消费得积分");
        buyTask.setTaskDesc("每消费1元+" + appOtherConfigGetVo.getPayMoneyIntegral() + "积分");
        buyTask.setRecommendFlag(1);
        buyTask.setCompleteFlag(memberTotal.getBuyFlag());
        appIntegralTaskListVoList.add(buyTask);
        // 返回积分任务列表
        return appIntegralTaskListVoList;
    }
    /**
     * @description  积分变动
     * @author  jqs
     * @date    2023/7/12 15:59
     * @param integralChangeDto
     * @return  void
     */
    @Override
    public Boolean changeIntegral(IntegralChangeDto integralChangeDto){
        Member member = this.getByUserId(integralChangeDto.getUserId());
        Integer integralType = integralChangeDto.getIntegralType();
        Integer changeIntegral = integralChangeDto.getChangeIntegral();
        MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
        Boolean completeFlag = false;
        switch(integralType){
            case 1:
                if(memberTotal.getShareFlag()==1){
                    completeFlag = true;
                }
                break;
            case 2:
                if(memberTotal.getPlSuggestFlag()==1){
                    completeFlag = true;
                }
                break;
            case 3:
                if(memberTotal.getShopSuggestFlag()==1){
                    completeFlag = true;
                }
                break;
            case 4:
                if(memberTotal.getSignFlag()==1){
                    completeFlag = true;
                }
                break;
            default:
                break;
        }
        if(completeFlag){
            return completeFlag;
        }
        AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData();
        IntegralRecord integralRecord = new IntegralRecord();
        integralRecord.setDelFlag(0);
        integralRecord.setUserId(integralChangeDto.getUserId());
        integralRecord.setChangeType(integralType);
        integralRecord.setCreateTime(new Date());
        //1分享获取2平台建议获取3门店建议获取4每日签到5消费得积分
        switch(integralType){
            case 1:
                changeIntegral = appOtherConfigGetVo.getShareIntegral();
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("每日任务【分享小程序】获得积分");
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setShareFlag(1);
                break;
            case 2:
                changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral();
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("每日任务【提交平台建议】获得积分");
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setPlSuggestFlag(1);
                break;
            case 3:
                changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral();
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("每日任务【提交门店建议】获得积分");
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setShopSuggestFlag(1);
                break;
            case 4:
                changeIntegral = appOtherConfigGetVo.getSignInIntegral();
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("每日任务【签到】获得积分");
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setSignFlag(1);
                break;
            case 5:
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分");
                integralRecord.setOrderId(integralChangeDto.getOrderId());
                integralRecord.setOrderNo(integralChangeDto.getOrderNo());
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setBuyFlag(1);
                break;
            default:
                break;
        }
        memberTotalService.saveOrUpdate(memberTotal);
        integralRecordService.saveOrUpdate(integralRecord);
        return completeFlag;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java
@@ -2,12 +2,13 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.AppIntegralTaskListVo;
import com.ruoyi.member.mapper.member.MemberTotalMapper;
import com.ruoyi.member.service.member.MemberTotalService;
import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
 *  服务实现类
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/IntegralRecordService.java
@@ -4,6 +4,7 @@
import com.ruoyi.member.domain.dto.MgtMemberIntegralPageDto;
import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.vo.AppIntegralRecordPageVo;
import com.ruoyi.member.domain.vo.MgtMemberIntegralPageVo;
import java.util.List;
@@ -25,4 +26,17 @@
     * @return
     */
    List<MgtMemberIntegralPageVo> pageMgtMemberIntegral(Page page, MgtMemberIntegralPageDto mgtMemberIntegralPageDto);
    /**
     * @description  小程序获取用户积分明细
     * @author  jqs
     * @date    2023/7/12 14:37
     * @param page
     * @param userId
     * @return  List<AppIntegralRecordPageVo>
     */
    List<AppIntegralRecordPageVo> pageAppMemberIntegralRecord(Page page, Long userId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
@@ -66,4 +66,13 @@
     * @return  List<AppMemberCouponPageVo>
     */
    List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page, AppMemberCouponPageDto appMemberCouponPageDto);
    /**
     * @description  定时检查优惠券过期
     * @author  jqs
     * @date    2023/7/12 19:19
     * @param
     * @return  void
     */
    void timingCheckMemberCoupon();
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -330,4 +330,22 @@
     * @return  void
     */
    void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto);
    /**
     * @description  获取用户任务列表
     * @author  jqs
     * @date    2023/7/12 15:07
     * @param userId
     * @return  List<AppIntegralTaskListVo>
     */
    List<AppIntegralTaskListVo> listAppMemberIntegralTask(Long userId);
    /**
     * @description  积分变动
     * @author  jqs
     * @date    2023/7/12 15:59
     * @param integralChangeDto
     * @return  void
     */
    Boolean changeIntegral(IntegralChangeDto integralChangeDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto;
/**
 * <p>
@@ -13,7 +12,6 @@
 * @since 2023-05-25
 */
public interface MemberTotalService extends IService<MemberTotal> {
}
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -346,10 +346,10 @@
            tc.coupon_type  couponType,
            tc.money_threshold moneyThreshold,
            tc.discount_money discountMoney,
            tc.discount_percent discountPercent
            tc.discount_percent discountPercent,
            tc.rel_goods_ids relGoodsIds
        FROM t_coupon tc
        WHERE tc.dle_flag = 0 AND tc.coupon_status = 1 AND tc.send_type = 1 AND (tc.coupon_from = 1 OR (tc.coupon_from = 2 AND tc.shop_id = #{shopId}))
        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.send_type = 1 AND (tc.coupon_from = 1 OR (tc.coupon_from = 2 AND tc.shop_id = #{shopId}))
        <if test="unGetList != null and unGetList.size()>0">
            AND tc.coupon_id NOT IN
            <foreach collection="unGetList" item="item" open="(" separator="," close=")">
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/IntegralRecordMapper.xml
@@ -20,4 +20,15 @@
        ORDER BY tir.create_time DESC
    </select>
    <select id="pageAppMemberIntegralRecord" resultType="com.ruoyi.member.domain.vo.AppIntegralRecordPageVo">
        SELECT
        tir.create_time createTime,
        tir.change_integral changeIntegral,
        tir.change_reason changeReason
        FROM t_integral_record tir
        WHERE tir.del_flag = 0 AND tir.user_id = #{userId}
        ORDER BY tir.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -175,15 +175,22 @@
            tuc.money_threshold moneyThreshold,
            tuc.discount_money discountMoney,
            tuc.discount_percent discountPercent,
            tuc.valid_start_time validStartTime,
            tuc.deadline_time deadlineTime,
            tuc.rel_goods_ids relGoodsIds,
            tuc.shop_id shopId
            tuc.shop_id shopId,
            IFNULL(tuc.valid_start_time,tuc.receive_time) validStartTime,
            tuc.deadline_time deadlineTime,
            tuc.use_time useTime
        FROM t_member_coupon tuc
        WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.userId}
        WHERE tuc.del_flag = 0 AND tuc.user_id = #{param.userId}
        <if test="param.couponStatus != null">
            tuc.coupon_status = #{param.couponStatus}
            AND tuc.coupon_status = #{param.couponStatus}
        </if>
        ORDER BY tuc.receive_time DESC
    </select>
    <update id="timingCheckMemberCoupon">
        UPDATE t_member_coupon
        SET coupon_status = 0
        WHERE del_flag = 0 AND  coupon_status = 1 AND deadline_time &lt; CURDATE()
    </update>
</mapper>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -106,4 +106,6 @@
        consumerGoodsService.sendGoodsGift(giftSendDtoList);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppConsumerPageDto.java
@@ -17,6 +17,6 @@
    @ApiModelProperty(value = "shopId",hidden = true)
    private Long shopId;
    @ApiModelProperty("商品类型1周期2服务3体验4单品")
    @ApiModelProperty(value="商品类型1周期2服务3体验4单品")
    private Integer goodsType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerConsumerGoodsDto.java
@@ -18,6 +18,6 @@
    @ApiModelProperty(value = "会员用户id")
    private Long memberUserId;
    @ApiModelProperty("商品类型1周期2服务3体验")
    @ApiModelProperty(value="商品类型1周期2服务3体验")
    private Integer goodsType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerConsumerGoodsPageDto.java
@@ -18,6 +18,6 @@
    @ApiModelProperty(value = "会员用户id")
    private Long memberUserId;
    @ApiModelProperty("商品类型1周期2服务3体验")
    @ApiModelProperty(value="商品类型1周期2服务3体验")
    private Integer goodsType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerServiceRecordPageDto.java
@@ -16,6 +16,6 @@
public class MerServiceRecordPageDto extends MerPageDto {
    @ApiModelProperty("会员用户id")
    @ApiModelProperty(value="会员用户id")
    private Long memberUserId;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopOrderPageDto.java
@@ -38,12 +38,12 @@
    @ApiModelProperty(value = "code转换商户ids",hidden = true)
    private String shopIds;
    @ApiModelProperty("店铺地址省code")
    @ApiModelProperty(value="店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    @ApiModelProperty(value="店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    @ApiModelProperty(value="店铺地址区code")
    private String shopAreaCode;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppConsumerPageVo.java
@@ -15,34 +15,34 @@
@Data
public class AppConsumerPageVo {
    @ApiModelProperty("服务id")
    @ApiModelProperty(value="服务id")
    private String consumerGoodsId;
    @ApiModelProperty("服务状态-1删除1未完成2完成")
    @ApiModelProperty(value="服务状态-1删除1未完成2完成")
    private Integer serviceStatus;
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("商品类型1周期2服务3体验4单品")
    @ApiModelProperty(value="商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty("商品名称")
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @ApiModelProperty("商品图片")
    @ApiModelProperty(value="商品图片")
    private String goodsPicture;
    @ApiModelProperty("商品调理问题")
    @ApiModelProperty(value="商品调理问题")
    private String goodsNurses;
    @ApiModelProperty("周期标记")
    @ApiModelProperty(value="周期标记")
    private Integer cycleNumFlag;
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
    @ApiModelProperty("消耗次数")
    @ApiModelProperty(value="消耗次数")
    private Integer usedNum;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppGoodsInfoVo.java
@@ -41,7 +41,7 @@
    @ApiModelProperty(value = "商品调理问题")
    private BigDecimal goodsNurses;
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
    @ApiModelProperty(value = "商品售价")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppServiceRecordPageVo.java
@@ -18,13 +18,13 @@
public class AppServiceRecordPageVo {
    @ApiModelProperty("服务名称")
    @ApiModelProperty(value="服务名称")
    private String consumerGoodsNames;
    @ApiModelProperty("服务类型1.周期2.服务3.体验")
    @ApiModelProperty(value="服务类型1.周期2.服务3.体验")
    private Integer serviceType;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGetVo.java
@@ -22,13 +22,13 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    @ApiModelProperty("订单来源1.商城2.秒杀活动3.线下创建")
    @ApiModelProperty(value="订单来源1.商城2.秒杀活动3.线下创建")
    private Integer orderFrom;
    @ApiModelProperty(value = "商品总价")
@@ -37,44 +37,44 @@
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
    @ApiModelProperty("应收金额")
    @ApiModelProperty(value="应收金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("应收订金")
    @ApiModelProperty(value="应收订金")
    private BigDecimal receivableDeposit;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList;
    @ApiModelProperty("订单支付金额")
    @ApiModelProperty(value="订单支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty(value = "是否绑定商户0否1是")
    private Integer sameShop;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("支付时间")
    @ApiModelProperty(value="支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    @ApiModelProperty("核销时间")
    @ApiModelProperty(value="核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date useTime;
    @ApiModelProperty("取消时间")
    @ApiModelProperty(value="取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;
    @ApiModelProperty("订单备注")
    @ApiModelProperty(value="订单备注")
    private String orderRemark;
    @ApiModelProperty(value = "核销码")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGoodsPageVo.java
@@ -16,16 +16,16 @@
@Data
public class AppUserOrderGoodsPageVo {
    @ApiModelProperty("订单商品id")
    @ApiModelProperty(value="订单商品id")
    private String orderGoodsId;
    @ApiModelProperty("商品id")
    @ApiModelProperty(value="商品id")
    private String goodsId;
    @ApiModelProperty("商品名称")
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @ApiModelProperty("商品图片")
    @ApiModelProperty(value="商品图片")
    private String goodsPicture;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
@@ -40,10 +40,10 @@
    @ApiModelProperty(value = "商品实际价格")
    private BigDecimal goodsRealPrice;
    @ApiModelProperty("周期标记")
    @ApiModelProperty(value="周期标记")
    private Integer cycleNumFlag;
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderPageVo.java
@@ -20,31 +20,31 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    @ApiModelProperty("订单来源1.商城订单2.秒杀活动3.线下创建")
    @ApiModelProperty(value="订单来源1.商城订单2.秒杀活动3.线下创建")
    private Integer orderFrom;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList;
    @ApiModelProperty("订单支付金额")
    @ApiModelProperty(value="订单支付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("商品数量")
    @ApiModelProperty(value="商品数量")
    private Integer goodsNum;
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty("商户服务电话")
    @ApiModelProperty(value="商户服务电话")
    private String shopServicePhone;
    @ApiModelProperty(value = "是否绑定商户0否1是")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerConsumerGoodsListVo.java
@@ -13,36 +13,36 @@
@Data
public class MerConsumerGoodsListVo {
    @ApiModelProperty("服务id")
    @ApiModelProperty(value="服务id")
    private String consumerGoodsId;
    @ApiModelProperty("服务状态-1删除1未完成2完成")
    @ApiModelProperty(value="服务状态-1删除1未完成2完成")
    private Integer serviceStatus;
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("商品类型1周期2服务3体验4单品")
    @ApiModelProperty(value="商品类型1周期2服务3体验4单品")
    private Integer goodsType;
    @ApiModelProperty("商品名称")
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @ApiModelProperty(value = "商品简介")
    private String goodsIntroduction;
    @ApiModelProperty("商品图片")
    @ApiModelProperty(value="商品图片")
    private String goodsPicture;
    @ApiModelProperty("商品调理问题")
    @ApiModelProperty(value="商品调理问题")
    private String goodsNurses;
    @ApiModelProperty("周期标记")
    @ApiModelProperty(value="周期标记")
    private Integer cycleNumFlag;
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
    @ApiModelProperty("消耗次数")
    @ApiModelProperty(value="消耗次数")
    private Integer usedNum;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerConsumerGoodsVo.java
@@ -15,10 +15,10 @@
@Data
public class MerConsumerGoodsVo {
    @ApiModelProperty("未确认商品")
    @ApiModelProperty(value="未确认商品")
    private List<MerConsumerGoodsListVo> noSureList;
    @ApiModelProperty("确认商品")
    @ApiModelProperty(value="确认商品")
    private List<MerConsumerGoodsListVo> sureList;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerGoodsPageVo.java
@@ -43,7 +43,7 @@
    @ApiModelProperty(value = "商品售价")
    private BigDecimal salesPrice;;
    @ApiModelProperty("周期次数标记0否1是")
    @ApiModelProperty(value="周期次数标记0否1是")
    private Integer cycleNumFlag;
    @ApiModelProperty(value = "商品默认服务次数")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberNoClearOrderVo.java
@@ -21,10 +21,10 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty("订单状态")
    @ApiModelProperty(value="订单状态")
    private Integer orderStatus;
    @ApiModelProperty(value = "商品总价")
@@ -33,19 +33,19 @@
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
    @ApiModelProperty("应收金额")
    @ApiModelProperty(value="应收金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("应收订金")
    @ApiModelProperty(value="应收订金")
    private BigDecimal receivableDeposit;
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderGoodsPageVo.java
@@ -13,10 +13,10 @@
@Data
public class MerOrderGoodsPageVo {
    @ApiModelProperty("商品名字")
    @ApiModelProperty(value="商品名字")
    private String goodsName;
    @ApiModelProperty("购买数量")
    @ApiModelProperty(value="购买数量")
    private Integer buyNum;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java
@@ -31,7 +31,7 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
@@ -43,31 +43,31 @@
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
    @ApiModelProperty("应收金额")
    @ApiModelProperty(value="应收金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("应收订金")
    @ApiModelProperty(value="应收订金")
    private BigDecimal receivableDeposit;
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("订单备注")
    @ApiModelProperty(value="订单备注")
    private String orderRemark;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private Integer orderFrom;
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private String orderFromDesc;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<MerOrderGoodsPageVo> merOrderGoodsVoList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerServiceRecordPageVo.java
@@ -17,13 +17,13 @@
public class MerServiceRecordPageVo {
    @ApiModelProperty("服务名称")
    @ApiModelProperty(value="服务名称")
    private String consumerGoodsNames;
    @ApiModelProperty("服务类型1.周期2.服务3.体验")
    @ApiModelProperty(value="服务类型1.周期2.服务3.体验")
    private Integer serviceType;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyAwardVo.java
@@ -16,6 +16,12 @@
@Data
public class MerVerifyAwardVo {
    @ApiModelProperty(value = "核销状态1.未核销2.已核销")
    private Integer verifyStatus;
    @ApiModelProperty(value = "奖品id")
    private String prizeId;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyCouponVo.java
@@ -1,9 +1,11 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.api.domain.vo.MerCouponGoodsListVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -16,6 +18,9 @@
@Data
public class MerVerifyCouponVo {
    @ApiModelProperty(value = "核销状态1.未核销2.已核销")
    private Integer verifyStatus;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
@@ -25,9 +30,16 @@
    @ApiModelProperty(value = "优惠券id")
    private String memberCouponId;
    @ApiModelProperty(value = "优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "优惠券来源")
    private String couponFrom;
    @ApiModelProperty(value = "获奖时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "优惠券商品列表")
    private List<MerCouponGoodsListVo> goodsList;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyOrderVo.java
@@ -1,6 +1,5 @@
package com.ruoyi.order.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -22,13 +21,13 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    @ApiModelProperty("订单来源1.商城2.秒杀活动3.线下创建")
    @ApiModelProperty(value="订单来源1.商城2.秒杀活动3.线下创建")
    private Integer orderFrom;
    @ApiModelProperty(value = "商品总价")
@@ -37,31 +36,31 @@
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
    @ApiModelProperty("应收金额")
    @ApiModelProperty(value="应收金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("应收订金")
    @ApiModelProperty(value="应收订金")
    private BigDecimal receivableDeposit;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList;
    @ApiModelProperty("订单支付金额")
    @ApiModelProperty(value="订单支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("支付时间")
    @ApiModelProperty(value="支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    @ApiModelProperty("核销时间")
    @ApiModelProperty(value="核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date useTime;
    @ApiModelProperty("订单备注")
    @ApiModelProperty(value="订单备注")
    private String orderRemark;
    @ApiModelProperty(value = "用户姓名")
@@ -70,6 +69,6 @@
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @ApiModelProperty("结清标记0否1是")
    @ApiModelProperty(value="结清标记0否1是")
    private Integer closeFlag;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java
@@ -20,11 +20,11 @@
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @Excel(name = "秒杀活动", width = 30)
    @ApiModelProperty("秒杀活动")
    @ApiModelProperty(value="秒杀活动")
    private String activityName;
    @ApiModelProperty(value = "用户id")
@@ -43,7 +43,7 @@
    private String userMobile;
    @Excel(name = "商品名称", width = 30)
    @ApiModelProperty("商品名称")
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @Excel(name = "秒杀价格", width = 30)
@@ -51,39 +51,39 @@
    private BigDecimal activityPrice;
    @Excel(name = "购买数量", width = 30)
    @ApiModelProperty("购买数量")
    @ApiModelProperty(value="购买数量")
    private Integer buyNum;
    @Excel(name = "订单金额", width = 30)
    @ApiModelProperty("订单金额")
    @ApiModelProperty(value="订单金额")
    private BigDecimal orderMoney;
    @Excel(name = "应付金额", width = 30)
    @ApiModelProperty("应付金额")
    @ApiModelProperty(value="应付金额")
    private BigDecimal receivableMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单未支付金额", width = 30)
    @ApiModelProperty("订单未支付金额")
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("核销店铺id")
    @ApiModelProperty(value="核销店铺id")
    private Long shopId;
    @Excel(name = "核销店铺", width = 30)
    @ApiModelProperty("核销店铺")
    @ApiModelProperty(value="核销店铺")
    private String shopName;
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("核销时间")
    @ApiModelProperty(value="核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java
@@ -23,15 +23,15 @@
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @Excel(name = "核销门店", width = 30)
    @ApiModelProperty("核销门店")
    @ApiModelProperty(value="核销门店")
    private String shopName;
    @Excel(name = "商品信息", width = 30)
    @ApiModelProperty("商品信息")
    @ApiModelProperty(value="商品信息")
    private String goodsInfo;
    @Excel(name = "订单状态", width = 30)
@@ -47,28 +47,28 @@
    private BigDecimal discountMoney;
    @Excel(name = "应收金额", width = 30)
    @ApiModelProperty("应收金额")
    @ApiModelProperty(value="应收金额")
    private BigDecimal receivableMoney;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private String orderFromDesc;
    @ApiModelProperty("核销门店id")
    @ApiModelProperty(value="核销门店id")
    private Long shopId;
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private Integer orderFrom;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java
@@ -19,31 +19,31 @@
    @Excel(name = "服务类型", width = 30)
    @ApiModelProperty("服务类型1.周期2.服务3.体验")
    @ApiModelProperty(value="服务类型1.周期2.服务3.体验")
    private Integer serviceType;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "服务商户id", width = 30)
    @ApiModelProperty("服务商户id")
    @ApiModelProperty(value="服务商户id")
    private Long shopId;
    @Excel(name = "服务商户", width = 30)
    @ApiModelProperty("服务商户")
    @ApiModelProperty(value="服务商户")
    private String shopName;
    @Excel(name = "服务商品名称", width = 30)
    @ApiModelProperty("服务商品名称")
    @ApiModelProperty(value="服务商品名称")
    private String consumerGoodsName;
    @Excel(name = "服务次数", width = 30)
    @ApiModelProperty("服务次数")
    @ApiModelProperty(value="服务次数")
    private Integer serviceNum;
    @Excel(name = "剩余次数", width = 30)
    @ApiModelProperty("剩余次数")
    @ApiModelProperty(value="剩余次数")
    private Integer surpNum;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java
@@ -18,7 +18,7 @@
@Data
public class MgtOrderDetailVo {
    @ApiModelProperty("订单id")
    @ApiModelProperty(value="订单id")
    private String orderId;
    @ApiModelProperty(value = "用户id")
@@ -33,69 +33,69 @@
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private String orderStatus;
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty("订单来源1.商城2.秒杀活动3.线下创建")
    @ApiModelProperty(value="订单来源1.商城2.秒杀活动3.线下创建")
    private String orderFrom;
    @ApiModelProperty("订单金额")
    @ApiModelProperty(value="订单金额")
    private BigDecimal orderMoney;
    @ApiModelProperty("应付金额")
    @ApiModelProperty(value="应付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @ApiModelProperty("订单未支付金额")
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("秒杀活动")
    @ApiModelProperty(value="秒杀活动")
    private String activityName;
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("线上支付金额")
    @ApiModelProperty(value="线上支付金额")
    private BigDecimal onlinePayMoney;
    @ApiModelProperty("线下支付金额")
    @ApiModelProperty(value="线下支付金额")
    private BigDecimal offlinePayMoney;
    @ApiModelProperty("线上支付时间")
    @ApiModelProperty(value="线上支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;
    @ApiModelProperty("线下支付时间")
    @ApiModelProperty(value="线下支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date offPayTime;
    @ApiModelProperty("完成时间")
    @ApiModelProperty(value="完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    @ApiModelProperty("取消时间")
    @ApiModelProperty(value="取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;
    @ApiModelProperty("订单备注")
    @ApiModelProperty(value="订单备注")
    private String orderRemark;
    @ApiModelProperty("核销店铺id")
    @ApiModelProperty(value="核销店铺id")
    private Long shopId;
    @ApiModelProperty("核销店铺")
    @ApiModelProperty(value="核销店铺")
    private String shopName;
    @ApiModelProperty("核销时间")
    @ApiModelProperty(value="核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsDetailVo.java
@@ -16,16 +16,16 @@
public class MgtOrderGoodsDetailVo {
    @ApiModelProperty("订单商品id")
    @ApiModelProperty(value="订单商品id")
    private String orderGoodsId;
    @ApiModelProperty("商品id")
    @ApiModelProperty(value="商品id")
    private String goodsId;
    @ApiModelProperty("商品名称")
    @ApiModelProperty(value="商品名称")
    private String goodsName;
    @ApiModelProperty("商品图片")
    @ApiModelProperty(value="商品图片")
    private String goodsPicture;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java
@@ -13,10 +13,10 @@
@Data
public class MgtOrderGoodsPageVo {
    @ApiModelProperty("商品名字")
    @ApiModelProperty(value="商品名字")
    private String goodsName;
    @ApiModelProperty("购买数量")
    @ApiModelProperty(value="购买数量")
    private Integer buyNum;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderTotal.java
@@ -15,33 +15,33 @@
@Data
public class MgtOrderTotal {
    @ApiModelProperty("订单总数")
    @ApiModelProperty(value="订单总数")
    private Integer orderTotal;
    @ApiModelProperty("订单金额总数")
    @ApiModelProperty(value="订单金额总数")
    private BigDecimal orderMoneyTotal;
    @ApiModelProperty("门店订单总数")
    @ApiModelProperty(value="门店订单总数")
    private Integer shopOrderTotal;
    @ApiModelProperty("门店订单金额总数")
    @ApiModelProperty(value="门店订单金额总数")
    private BigDecimal shopOrderMoneyTotal;
    @ApiModelProperty("门店订单已付金额总数")
    @ApiModelProperty(value="门店订单已付金额总数")
    private BigDecimal shopPayMoneyTotal;
    @ApiModelProperty("门店订单未付金额总数")
    @ApiModelProperty(value="门店订单未付金额总数")
    private BigDecimal shopUnPayMoneyTotal;
    @ApiModelProperty("活动订单总数")
    @ApiModelProperty(value="活动订单总数")
    private Integer activityOrderTotal;
    @ApiModelProperty("活动订单金额总数")
    @ApiModelProperty(value="活动订单金额总数")
    private BigDecimal  activityOrderMoneyTotal;
    @ApiModelProperty("活动订单已付金额总数")
    @ApiModelProperty(value="活动订单已付金额总数")
    private BigDecimal  activityPayMoneyTotal;
    @ApiModelProperty("活动订单未付金额总数")
    @ApiModelProperty(value="活动订单未付金额总数")
    private BigDecimal  activityUnPayMoneyTotal;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderPageVo.java
@@ -17,11 +17,11 @@
@Data
public class MgtShopAllOrderPageVo {
    @ApiModelProperty("订单id")
    @ApiModelProperty(value="订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "用户id")
@@ -31,31 +31,31 @@
    @ApiModelProperty(value = "客户信息")
    private String userInfo;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList;
    @Excel(name = "商品信息", width = 30)
    @ApiModelProperty("商品信息")
    @ApiModelProperty(value="商品信息")
    private String goodsInfo;
    @Excel(name = "订单金额", width = 30)
    @ApiModelProperty("订单金额")
    @ApiModelProperty(value="订单金额")
    private BigDecimal orderMoney;
    @Excel(name = "优惠金额", width = 30)
    @ApiModelProperty("优惠金额")
    @ApiModelProperty(value="优惠金额")
    private BigDecimal discountMoney;
    @Excel(name = "应付金额", width = 30)
    @ApiModelProperty("应付金额")
    @ApiModelProperty(value="应付金额")
    private BigDecimal receivableMoney;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private String orderFrom;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java
@@ -19,11 +19,11 @@
@Data
public class MgtShopOrderPageVo {
    @ApiModelProperty("订单id")
    @ApiModelProperty(value="订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value = "用户id")
@@ -37,51 +37,51 @@
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty("订单商品列表")
    @ApiModelProperty(value="订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList;
    @Excel(name = "商品信息", width = 30)
    @ApiModelProperty("商品信息")
    @ApiModelProperty(value="商品信息")
    private String goodsInfo;
    @Excel(name = "订单金额", width = 30)
    @ApiModelProperty("订单金额")
    @ApiModelProperty(value="订单金额")
    private BigDecimal orderMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @ApiModelProperty(value="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "优惠金额", width = 30)
    @ApiModelProperty("优惠金额")
    @ApiModelProperty(value="优惠金额")
    private BigDecimal discountMoney;
    @Excel(name = "应付金额", width = 30)
    @ApiModelProperty("应付金额")
    @ApiModelProperty(value="应付金额")
    private BigDecimal receivableMoney;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    @ApiModelProperty(value="订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单未支付金额", width = 30)
    @ApiModelProperty("订单未支付金额")
    @ApiModelProperty(value="订单未支付金额")
    private BigDecimal unPaidMoney;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    @ApiModelProperty(value="订单来源")
    private String orderFrom;
    @ApiModelProperty("核销店铺id")
    @ApiModelProperty(value="核销店铺id")
    private Long shopId;
    @Excel(name = "核销店铺", width = 30)
    @ApiModelProperty("核销店铺")
    @ApiModelProperty(value="核销店铺")
    private String shopName;
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("核销时间")
    @ApiModelProperty(value="核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.CodeFactoryUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.*;
@@ -22,6 +23,7 @@
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.order.service.order.UserServiceRecordService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
@@ -90,6 +92,9 @@
    @Resource
    private UserServiceRecordMapper userServiceRecordMapper;
    @Resource
    private RedisService redisService;
    /**
     * @description: buyGoods
@@ -527,6 +532,13 @@
        String activityId = appPlaceActivityDto.getActivityId();
        String goodsId = appPlaceActivityDto.getGoodsId();
        Integer buyNum = appPlaceActivityDto.getBuyNum();
        //redis库存控制极简版
        Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId);
        if(surpNum==null||surpNum<buyNum){
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }else{
            redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId,surpNum-buyNum);
        }
        // 定义购买数量,服务数量,商品数量
        BigDecimal buyNumBig;
        Integer serviceNum;
@@ -560,6 +572,9 @@
            throw new ServiceException(AppErrorConstant.ACTIVITY_END);
        }
        if (activityGoodsGetVo.getAvailableBuyNum() < 1) {
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }
        if (buyNum < activityGoodsGetVo.getAvailableBuyNum()) {
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }
        // 创建订单ID和订单号
@@ -977,12 +992,23 @@
        merVerifyCouponVo.setUserName(member.getNickName());
        merVerifyCouponVo.setUserMobile(member.getMobile());
        merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
        merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName());
        merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime());
        // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
                .map(goods -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
                        merCouponGoods.setGoodsType("服务");
                    } else if (goods.getGoodsType() == 3) {
                        merCouponGoods.setGoodsType("体验");
                    } else if (goods.getGoodsType() == 4) {
                        merCouponGoods.setGoodsType("单品");
                    }
                    // 设置其他属性
                    return merCouponGoods;
                })
@@ -1030,6 +1056,7 @@
            consumerGoodsList.add(consumerGoods);
        }
        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
        merVerifyCouponVo.setVerifyStatus(2);
        return merVerifyCouponVo;
    }
@@ -1117,6 +1144,8 @@
            appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId());
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        merVerifyAwardVo.setPrizeId(merVerifyPrizeDto.getPrizeId());
        merVerifyAwardVo.setVerifyStatus(2);
        return merVerifyAwardVo;
    }
@@ -2401,18 +2430,30 @@
        merVerifyCouponVo.setUserName(member.getNickName());
        merVerifyCouponVo.setUserMobile(member.getMobile());
        merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
        merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName());
        merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime());
        // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
                .map(goods -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
                        merCouponGoods.setGoodsType("服务");
                    } else if (goods.getGoodsType() == 3) {
                        merCouponGoods.setGoodsType("体验");
                    } else if (goods.getGoodsType() == 4) {
                        merCouponGoods.setGoodsType("单品");
                    }
                    // 设置其他属性
                    return merCouponGoods;
                })
                .collect(Collectors.toList());
        // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
        merVerifyCouponVo.setGoodsList(merCouponGoodsList);
        merVerifyCouponVo.setVerifyStatus(1);
        return merVerifyCouponVo;
    }
@@ -2475,6 +2516,8 @@
                break;
        }
        merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime());
        merVerifyAwardVo.setVerifyStatus(1);
        merVerifyAwardVo.setPrizeId(verifyCode);
        return merVerifyAwardVo;
    }
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -1297,13 +1297,7 @@
        IFNULL(SUM(order_money),0) orderMoney,
        IFNULL(SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END),0) onlineMoney,
        IFNULL(SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END),0) offlineMoney,
        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END),0) activityMoney,
        IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal,
        IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal,
        IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal,
        IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN tog.goods_total_money ELSE 0 END),0) cycleMoney,
        IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN tog.goods_total_money ELSE 0 END),0) experienceMoney,
        IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN tog.goods_total_money ELSE 0 END),0) serviceMoney
        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END),0) activityMoney
        FROM t_order WHERE del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowAgencyTaskDto.java
@@ -19,31 +19,31 @@
    @ApiModelProperty(value = "任务id")
    private String taskId;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("电话跟踪内容")
    @ApiModelProperty(value="电话跟踪内容")
    private List<MerFollowPhoneDto> followPhone;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("跟进图片地址 多个,号隔开")
    @ApiModelProperty(value="跟进图片地址 多个,号隔开")
    private String picture;
    @ApiModelProperty("跟进视频地址 多个,号隔开")
    @ApiModelProperty(value="跟进视频地址 多个,号隔开")
    private String video;
    @ApiModelProperty("跟进音频地址 多个,号隔开")
    @ApiModelProperty(value="跟进音频地址 多个,号隔开")
    private String audio;
    @ApiModelProperty("下次任务时间")
    @ApiModelProperty(value="下次任务时间")
    private String nextTaskDate;
    @ApiModelProperty("下次任务内容")
    @ApiModelProperty(value="下次任务内容")
    private String nextTaskContent;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowMemberTaskDto.java
@@ -19,31 +19,31 @@
    @ApiModelProperty(value = "任务id")
    private String taskId;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("电话跟踪内容")
    @ApiModelProperty(value="电话跟踪内容")
    private List<MerFollowPhoneDto> followPhone;
    @ApiModelProperty("手动跟踪内容")
    @ApiModelProperty(value="手动跟踪内容")
    private String followContent;
    @ApiModelProperty("跟进图片地址 多个,号隔开")
    @ApiModelProperty(value="跟进图片地址 多个,号隔开")
    private String picture;
    @ApiModelProperty("跟进视频地址 多个,号隔开")
    @ApiModelProperty(value="跟进视频地址 多个,号隔开")
    private String video;
    @ApiModelProperty("跟进音频地址 多个,号隔开")
    @ApiModelProperty(value="跟进音频地址 多个,号隔开")
    private String audio;
    @ApiModelProperty("下次任务时间")
    @ApiModelProperty(value="下次任务时间")
    private String nextTaskDate;
    @ApiModelProperty("下次任务内容")
    @ApiModelProperty(value="下次任务内容")
    private String nextTaskContent;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerFollowPhoneDto.java
@@ -16,11 +16,11 @@
@Data
public class MerFollowPhoneDto {
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtChangeCoopDto.java
@@ -19,10 +19,10 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("合作开始时间")
    @ApiModelProperty(value="合作开始时间")
    private String coopStartTime;
    @ApiModelProperty("合作结束时间")
    @ApiModelProperty(value="合作结束时间")
    private String coopEndTime;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopDto.java
@@ -21,111 +21,111 @@
    @ApiModelProperty(value = "商户id 新增不传")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    @NotNull(message = "商户名称不能为空")
    private String shopName;
    @ApiModelProperty("商户类型1.经销商2.代理商")
    @ApiModelProperty(value="商户类型1.经销商2.代理商")
    @NotNull(message = "商户类型不能为空")
    private Integer shopType;
    @ApiModelProperty("商户编号")
    @ApiModelProperty(value="商户编号")
    @NotNull(message = "商户编号不能为空")
    private String shopNumber;
    @ApiModelProperty("营业开始时间")
    @ApiModelProperty(value="营业开始时间")
    private String businessStartTime;
    @ApiModelProperty("营业结束时间")
    @ApiModelProperty(value="营业结束时间")
    private String businessEndTime;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("签约区域")
    @ApiModelProperty(value="签约区域")
    private String signAreaCode;
    @ApiModelProperty("商户服务电话")
    @ApiModelProperty(value="商户服务电话")
    private String shopServicePhone;
    @ApiModelProperty("管辖员工")
    @ApiModelProperty(value="管辖员工")
    private Long belongUserId;
    @ApiModelProperty("所属经销商")
    @ApiModelProperty(value="所属经销商")
    private Long belongShopId;
    @ApiModelProperty("扶持能力1.有2.没有")
    @ApiModelProperty(value="扶持能力1.有2.没有")
    private Integer supportingCapacityFlag;
    @ApiModelProperty("店面操作人数1.1人2.1人以上")
    @ApiModelProperty(value="店面操作人数1.1人2.1人以上")
    private Integer operationPersonFlag;
    @ApiModelProperty("执行力1.强2.弱")
    @ApiModelProperty(value="执行力1.强2.弱")
    private Integer executiveForceFlag;
    @ApiModelProperty("格局1.大2.小")
    @ApiModelProperty(value="格局1.大2.小")
    private Integer patternFlag;
    @ApiModelProperty("人脉1.宽2.窄")
    @ApiModelProperty(value="人脉1.宽2.窄")
    private Integer connectionFlag;
    @ApiModelProperty("经济能力1.强2.差")
    @ApiModelProperty(value="经济能力1.强2.差")
    private Integer economicAbilityFlag;
    @ApiModelProperty("与合作商关系1.好2.差")
    @ApiModelProperty(value="与合作商关系1.好2.差")
    private Integer relationPartner;
    @ApiModelProperty("曾从事事业")
    @ApiModelProperty(value="曾从事事业")
    private String businessHistory;
    @ApiModelProperty("店铺地址省code")
    @ApiModelProperty(value="店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    @ApiModelProperty(value="店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    @ApiModelProperty(value="店铺地址区code")
    private String shopAreaCode;
    @ApiModelProperty("店铺区域全称")
    @ApiModelProperty(value="店铺区域全称")
    private String shopAreaName;
    @ApiModelProperty("店铺详细地址")
    @ApiModelProperty(value="店铺详细地址")
    private String shopAddress;
    @ApiModelProperty("店铺经度")
    @ApiModelProperty(value="店铺经度")
    private String shopLongitude;
    @ApiModelProperty("店铺维度")
    @ApiModelProperty(value="店铺维度")
    private String shopLatitude;
    @ApiModelProperty("店铺详情")
    @ApiModelProperty(value="店铺详情")
    private String shopDetail;
    @ApiModelProperty("营销功能1开2关")
    @ApiModelProperty(value="营销功能1开2关")
    private Integer marketingFunctionFlag;
    @ApiModelProperty("领券1开2关")
    @ApiModelProperty(value="领券1开2关")
    private Integer platformCouponFlag;
    @ApiModelProperty("生日卡1开2关")
    @ApiModelProperty(value="生日卡1开2关")
    private Integer platformBirthdayFlag;
    @ApiModelProperty("推荐人")
    @ApiModelProperty(value="推荐人")
    private String recommendPerson;
    @ApiModelProperty("商户标签id 多个用,隔开")
    @ApiModelProperty(value="商户标签id 多个用,隔开")
    private String shopTagIds;
    @ApiModelProperty("关联用户id 多个用,隔开")
    @ApiModelProperty(value="关联用户id 多个用,隔开")
    private String relUserIds;
    @ApiModelProperty("商户封面")
    @ApiModelProperty(value="商户封面")
    private String shopPicture;
    @ApiModelProperty("商户banner 多个用,隔开")
    @ApiModelProperty(value="商户banner 多个用,隔开")
    private String shopBanners;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopTagDto.java
@@ -14,7 +14,7 @@
@Data
public class MgtEditShopTagDto extends MgtBaseGetDto {
    @ApiModelProperty("商户标签id 多个用,隔开")
    @ApiModelProperty(value="商户标签id 多个用,隔开")
    private String shopTagIds;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtFollowShopTaskDto.java
@@ -14,27 +14,27 @@
@Data
public class MgtFollowShopTaskDto extends MerBaseDto {
    @ApiModelProperty("商户id")
    @ApiModelProperty(value="商户id")
    private Long shopId;
    @ApiModelProperty("任务标题")
    @ApiModelProperty(value="任务标题")
    private String taskTitle;
    @ApiModelProperty("跟进类型")
    @ApiModelProperty(value="跟进类型")
    private String followType;
    @ApiModelProperty("跟进内容")
    @ApiModelProperty(value="跟进内容")
    private String followContent;
    @ApiModelProperty("跟进图片地址 多个,号隔开")
    @ApiModelProperty(value="跟进图片地址 多个,号隔开")
    private String picture;
    @ApiModelProperty("下次任务时间")
    @ApiModelProperty(value="下次任务时间")
    private String nextTaskDate;
    @ApiModelProperty("下次任务标题")
    @ApiModelProperty(value="下次任务标题")
    private String nextTaskTitle;
    @ApiModelProperty("紧急程度")
    @ApiModelProperty(value="紧急程度")
    private String emergencyState;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthDto.java
@@ -28,10 +28,10 @@
    @ApiModelProperty(value = "商户名称")
    private String shopName;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    /**
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthPageDto.java
@@ -18,16 +18,16 @@
    @ApiModelProperty(value = "商户名称")
    private String shopName;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("认证类型1个人2企业")
    @ApiModelProperty(value="认证类型1个人2企业")
    private Integer mainType;
    @ApiModelProperty("审核状态0:未提交\n" +
    @ApiModelProperty(value="审核状态0:未提交\n" +
            "        1:CHECKING:资料校验中\n" +
            "        2:ACCOUNT_NEED_VERIFY:待账户验证\n" +
            "        3:AUDITING:审核中\n" +
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopProportionEditDto.java
@@ -16,7 +16,7 @@
@Data
public class MgtShopProportionEditDto extends MgtBaseDto {
    @ApiModelProperty("分成id")
    @ApiModelProperty(value="分成id")
    private Long proportionId;
    @ApiModelProperty(value = "分成比例")
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTerminateCooperationDto.java
@@ -19,7 +19,7 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("合作状态0终止1开启")
    @ApiModelProperty(value="合作状态0终止1开启")
    private Integer cooperativeFlag;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTransferShopDto.java
@@ -17,9 +17,9 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("转移用户id")
    @ApiModelProperty(value="转移用户id")
    private Long transferUserId;
    @ApiModelProperty("转移备注")
    @ApiModelProperty(value="转移备注")
    private String transferRemark;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/AppShopInfoVo.java
@@ -31,27 +31,27 @@
    @ApiModelProperty(value = "维度")
    private String shopLatitude;
    @ApiModelProperty("营业开始时间")
    @ApiModelProperty(value="营业开始时间")
    private String businessStartTime;
    @ApiModelProperty("营业结束时间")
    @ApiModelProperty(value="营业结束时间")
    private String businessEndTime;
    @ApiModelProperty("商户标签")
    @ApiModelProperty(value="商户标签")
    private String shopTags;
    @ApiModelProperty("商户服务电话")
    @ApiModelProperty(value="商户服务电话")
    private String shopServicePhone;
    @ApiModelProperty("商户封面")
    @ApiModelProperty(value="商户封面")
    private String shopPicture;
    @ApiModelProperty("商户banners")
    @ApiModelProperty(value="商户banners")
    private String shopBanners;
    @ApiModelProperty("店铺详情")
    @ApiModelProperty(value="店铺详情")
    private String shopDetail;
    @ApiModelProperty("店铺证书")
    @ApiModelProperty(value="店铺证书")
    private List<ShopCertificate> shopCertificateList;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyPageVo.java
@@ -20,7 +20,7 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户状态0冻结1正常2终止合作")
    @ApiModelProperty(value="商户状态0冻结1正常2终止合作")
    private Integer shopStatus;
    @ApiModelProperty(value = "商户名称")
@@ -29,13 +29,13 @@
    @ApiModelProperty(value = "商户地址")
    private String shopAddress;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("合作期限")
    @ApiModelProperty(value="合作期限")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cooperationEndTime;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskPageVo.java
@@ -21,10 +21,10 @@
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
    @ApiModelProperty("任务内容")
    @ApiModelProperty(value="任务内容")
    private String taskContent;
    @ApiModelProperty("今日标记")
    @ApiModelProperty(value="今日标记")
    private Integer todayFlag;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskRecordPageVo.java
@@ -26,28 +26,28 @@
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("联系人")
    @ApiModelProperty(value="联系人")
    private String callName;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("跟进图片地址")
    @ApiModelProperty(value="跟进图片地址")
    private List<String> picture;
    @ApiModelProperty("跟进视频地址")
    @ApiModelProperty(value="跟进视频地址")
    private List<String> video;
    @ApiModelProperty("跟进音频地址")
    @ApiModelProperty(value="跟进音频地址")
    private List<String> audio;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerMemberTaskPageVo.java
@@ -23,14 +23,14 @@
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
    @ApiModelProperty("任务内容")
    @ApiModelProperty(value="任务内容")
    private String taskContent;
    @ApiModelProperty("处理内容")
    @ApiModelProperty(value="处理内容")
    private String dealContent;
    @ApiModelProperty("今日标记")
    @ApiModelProperty(value="今日标记")
    private Integer todayFlag;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerMemberTaskRecordPageVo.java
@@ -26,25 +26,25 @@
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("跟进图片地址")
    @ApiModelProperty(value="跟进图片地址")
    private List<String> picture;
    @ApiModelProperty("跟进视频地址")
    @ApiModelProperty(value="跟进视频地址")
    private List<String> video;
    @ApiModelProperty("跟进音频地址")
    @ApiModelProperty(value="跟进音频地址")
    private List<String> audio;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerShopInfoVo.java
@@ -19,115 +19,115 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty("商户类型1.经销商2.代理商")
    @ApiModelProperty(value="商户类型1.经销商2.代理商")
    private Integer shopType;
    @ApiModelProperty("营业开始时间")
    @ApiModelProperty(value="营业开始时间")
    private String businessStartTime;
    @ApiModelProperty("营业结束时间")
    @ApiModelProperty(value="营业结束时间")
    private String businessEndTime;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("签约区域")
    @ApiModelProperty(value="签约区域")
    private String signAreaCode;
    @ApiModelProperty("商户服务电话")
    @ApiModelProperty(value="商户服务电话")
    private String shopServicePhone;
    @ApiModelProperty("管辖员工")
    @ApiModelProperty(value="管辖员工")
    private Long belongUserId;
    @ApiModelProperty("所属经销商")
    @ApiModelProperty(value="所属经销商")
    private Long belongShopId;
    @ApiModelProperty("扶持能力1.有2.没有")
    @ApiModelProperty(value="扶持能力1.有2.没有")
    private Integer supportingCapacityFlag;
    @ApiModelProperty("店面操作人数1.1人2.1人以上")
    @ApiModelProperty(value="店面操作人数1.1人2.1人以上")
    private Integer operationPersonFlag;
    @ApiModelProperty("执行力1.强2.弱")
    @ApiModelProperty(value="执行力1.强2.弱")
    private Integer executiveForceFlag;
    @ApiModelProperty("格局1.大2.小")
    @ApiModelProperty(value="格局1.大2.小")
    private Integer patternFlag;
    @ApiModelProperty("人脉1.宽2.窄")
    @ApiModelProperty(value="人脉1.宽2.窄")
    private Integer connectionFlag;
    @ApiModelProperty("经济能力1.强2.差")
    @ApiModelProperty(value="经济能力1.强2.差")
    private Integer economicAbilityFlag;
    @ApiModelProperty("与合作商关系1.好2.差")
    @ApiModelProperty(value="与合作商关系1.好2.差")
    private Integer relationPartner;
    @ApiModelProperty("曾从事事业")
    @ApiModelProperty(value="曾从事事业")
    private String businessHistory;
    @ApiModelProperty("店铺地址省code")
    @ApiModelProperty(value="店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    @ApiModelProperty(value="店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    @ApiModelProperty(value="店铺地址区code")
    private String shopAreaCode;
    @ApiModelProperty("店铺区域全称")
    @ApiModelProperty(value="店铺区域全称")
    private String shopAreaName;
    @ApiModelProperty("店铺详细地址")
    @ApiModelProperty(value="店铺详细地址")
    private String shopAddress;
    @ApiModelProperty("店铺经度")
    @ApiModelProperty(value="店铺经度")
    private String shopLongitude;
    @ApiModelProperty("店铺维度")
    @ApiModelProperty(value="店铺维度")
    private String shopLatitude;
    @ApiModelProperty("店铺详情")
    @ApiModelProperty(value="店铺详情")
    private String shopDetail;
    @ApiModelProperty("营销功能1开2关")
    @ApiModelProperty(value="营销功能1开2关")
    private Integer marketingFunctionFlag;
    @ApiModelProperty("领券1开2关")
    @ApiModelProperty(value="领券1开2关")
    private Integer platformCouponFlag;
    @ApiModelProperty("生日卡1开2关")
    @ApiModelProperty(value="生日卡1开2关")
    private Integer platformBirthdayFlag;
    @ApiModelProperty("推荐人")
    @ApiModelProperty(value="推荐人")
    private String recommendPerson;
    @ApiModelProperty("商户标签id 多个用,隔开")
    @ApiModelProperty(value="商户标签id 多个用,隔开")
    private String shopTagIds;
    @ApiModelProperty("商户标签")
    @ApiModelProperty(value="商户标签")
    private String shopTags;
    @ApiModelProperty("关联用户id 多个用,隔开")
    @ApiModelProperty(value="关联用户id 多个用,隔开")
    private String relUserIds;
    @ApiModelProperty("关联用户")
    @ApiModelProperty(value="关联用户")
    private String relUsers;
    @ApiModelProperty("商户封面")
    @ApiModelProperty(value="商户封面")
    private String shopPicture;
    @ApiModelProperty("商户banner 多个用,隔开")
    @ApiModelProperty(value="商户banner 多个用,隔开")
    private String shopBanners;
    @ApiModelProperty("证书list")
    @ApiModelProperty(value="证书list")
    private List<ShopCertificate> shopCertificateList;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtAgencyTaskRecordPageVo.java
@@ -36,25 +36,25 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("跟进图片地址")
    @ApiModelProperty(value="跟进图片地址")
    private List<String> picture;
    @ApiModelProperty("跟进视频地址")
    @ApiModelProperty(value="跟进视频地址")
    private List<String> video;
    @ApiModelProperty("跟进音频地址")
    @ApiModelProperty(value="跟进音频地址")
    private List<String> audio;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtMemberFollowPageVo.java
@@ -35,25 +35,25 @@
    @ApiModelProperty(value = "任务时间")
    private String taskDate;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private Integer followType;
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("跟进图片地址")
    @ApiModelProperty(value="跟进图片地址")
    private List<String> picture;
    @ApiModelProperty("跟进视频地址")
    @ApiModelProperty(value="跟进视频地址")
    private List<String> video;
    @ApiModelProperty("跟进音频地址")
    @ApiModelProperty(value="跟进音频地址")
    private List<String> audio;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthGetVo.java
@@ -22,10 +22,10 @@
    @ApiModelProperty(value = "商户名称")
    private String shopName;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    /**
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java
@@ -23,18 +23,18 @@
    @ApiModelProperty(value = "商户名称")
    private String shopName;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("认证类型")
    @ApiModelProperty(value="认证类型")
    private String mainType;
    @ApiModelProperty("审核状态")
    @ApiModelProperty(value="审核状态")
    private Integer auditStatus;
    @ApiModelProperty("审核状态描述")
    @ApiModelProperty(value="审核状态描述")
    private String auditStatusDesc;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopCertificatePageVo.java
@@ -36,9 +36,9 @@
    @ApiModelProperty(value = "商户名称")
    private String shopName;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopInfoVo.java
@@ -19,115 +19,115 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty("商户类型1.经销商2.代理商")
    @ApiModelProperty(value="商户类型1.经销商2.代理商")
    private Integer shopType;
    @ApiModelProperty("营业开始时间")
    @ApiModelProperty(value="营业开始时间")
    private String businessStartTime;
    @ApiModelProperty("营业结束时间")
    @ApiModelProperty(value="营业结束时间")
    private String businessEndTime;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @ApiModelProperty("签约区域")
    @ApiModelProperty(value="签约区域")
    private String signAreaCode;
    @ApiModelProperty("商户服务电话")
    @ApiModelProperty(value="商户服务电话")
    private String shopServicePhone;
    @ApiModelProperty("管辖员工")
    @ApiModelProperty(value="管辖员工")
    private Long belongUserId;
    @ApiModelProperty("所属经销商")
    @ApiModelProperty(value="所属经销商")
    private Long belongShopId;
    @ApiModelProperty("扶持能力1.有2.没有")
    @ApiModelProperty(value="扶持能力1.有2.没有")
    private Integer supportingCapacityFlag;
    @ApiModelProperty("店面操作人数1.1人2.1人以上")
    @ApiModelProperty(value="店面操作人数1.1人2.1人以上")
    private Integer operationPersonFlag;
    @ApiModelProperty("执行力1.强2.弱")
    @ApiModelProperty(value="执行力1.强2.弱")
    private Integer executiveForceFlag;
    @ApiModelProperty("格局1.大2.小")
    @ApiModelProperty(value="格局1.大2.小")
    private Integer patternFlag;
    @ApiModelProperty("人脉1.宽2.窄")
    @ApiModelProperty(value="人脉1.宽2.窄")
    private Integer connectionFlag;
    @ApiModelProperty("经济能力1.强2.差")
    @ApiModelProperty(value="经济能力1.强2.差")
    private Integer economicAbilityFlag;
    @ApiModelProperty("与合作商关系1.好2.差")
    @ApiModelProperty(value="与合作商关系1.好2.差")
    private Integer relationPartner;
    @ApiModelProperty("曾从事事业")
    @ApiModelProperty(value="曾从事事业")
    private String businessHistory;
    @ApiModelProperty("店铺地址省code")
    @ApiModelProperty(value="店铺地址省code")
    private String shopProvinceCode;
    @ApiModelProperty("店铺地址市code")
    @ApiModelProperty(value="店铺地址市code")
    private String shopCityCode;
    @ApiModelProperty("店铺地址区code")
    @ApiModelProperty(value="店铺地址区code")
    private String shopAreaCode;
    @ApiModelProperty("店铺区域全称")
    @ApiModelProperty(value="店铺区域全称")
    private String shopAreaName;
    @ApiModelProperty("店铺详细地址")
    @ApiModelProperty(value="店铺详细地址")
    private String shopAddress;
    @ApiModelProperty("店铺经度")
    @ApiModelProperty(value="店铺经度")
    private String shopLongitude;
    @ApiModelProperty("店铺维度")
    @ApiModelProperty(value="店铺维度")
    private String shopLatitude;
    @ApiModelProperty("店铺详情")
    @ApiModelProperty(value="店铺详情")
    private String shopDetail;
    @ApiModelProperty("营销功能1开2关")
    @ApiModelProperty(value="营销功能1开2关")
    private Integer marketingFunctionFlag;
    @ApiModelProperty("领券1开2关")
    @ApiModelProperty(value="领券1开2关")
    private Integer platformCouponFlag;
    @ApiModelProperty("生日卡1开2关")
    @ApiModelProperty(value="生日卡1开2关")
    private Integer platformBirthdayFlag;
    @ApiModelProperty("推荐人")
    @ApiModelProperty(value="推荐人")
    private String recommendPerson;
    @ApiModelProperty("商户标签id 多个用,隔开")
    @ApiModelProperty(value="商户标签id 多个用,隔开")
    private String shopTagIds;
    @ApiModelProperty("商户标签")
    @ApiModelProperty(value="商户标签")
    private String shopTags;
    @ApiModelProperty("关联用户id 多个用,隔开")
    @ApiModelProperty(value="关联用户id 多个用,隔开")
    private String relUserIds;
    @ApiModelProperty("关联用户")
    @ApiModelProperty(value="关联用户")
    private String relUsers;
    @ApiModelProperty("商户封面")
    @ApiModelProperty(value="商户封面")
    private String shopPicture;
    @ApiModelProperty("商户banner 多个用,隔开")
    @ApiModelProperty(value="商户banner 多个用,隔开")
    private String shopBanners;
    @ApiModelProperty("证书list")
    @ApiModelProperty(value="证书list")
    private List<ShopCertificate> shopCertificateList;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopListSimpleVo.java
@@ -16,7 +16,7 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java
@@ -20,76 +20,76 @@
    private Long shopId;
    @Excel(name = "签约时间", width = 30)
    @ApiModelProperty("签约时间")
    @ApiModelProperty(value="签约时间")
    private String signTime;
    @Excel(name = "商户名称", width = 30)
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @Excel(name = "商户编号", width = 30)
    @ApiModelProperty("商户编号")
    @ApiModelProperty(value="商户编号")
    private String shopNumber;
    @Excel(name = "商户标签", width = 30)
    @ApiModelProperty("商户标签")
    @ApiModelProperty(value="商户标签")
    private String shopTags;
    @ApiModelProperty("签约人id")
    @ApiModelProperty(value="签约人id")
    private Long signUserId;
    @Excel(name = "签约员工", width = 30)
    @ApiModelProperty("签约员工")
    @ApiModelProperty(value="签约员工")
    private String signUser;
    @Excel(name = "首提金额", width = 30)
    @ApiModelProperty("首提金额")
    @ApiModelProperty(value="首提金额")
    private BigDecimal firstWithdraw;
    @ApiModelProperty("关联员工id")
    @ApiModelProperty(value="关联员工id")
    private Long belongUserId;
    @Excel(name = "关联员工", width = 30)
    @ApiModelProperty("关联员工")
    @ApiModelProperty(value="关联员工")
    private String belongUser;
    @Excel(name = "关联部门", width = 30)
    @ApiModelProperty("关联部门")
    @ApiModelProperty(value="关联部门")
    private String belongDept;
    @Excel(name = "来源渠道", width = 30)
    @ApiModelProperty("来源渠道")
    @ApiModelProperty(value="来源渠道")
    private String shopSource;
    @Excel(name = "签约区域", width = 30)
    @ApiModelProperty("签约区域")
    @ApiModelProperty(value="签约区域")
    private String signAreaName;
    @Excel(name = "合作期限", width = 30)
    @ApiModelProperty("合作期限")
    @ApiModelProperty(value="合作期限")
    private String cooperationTime;
    @Excel(name = "店铺地址", width = 30)
    @ApiModelProperty("店铺地址")
    @ApiModelProperty(value="店铺地址")
    private String shopAddress;
    @Excel(name = "店主姓名", width = 30)
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @Excel(name = "店主联系方式", width = 30)
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @Excel(name = "商户状态", width = 30)
    @ApiModelProperty("商户状态-1删除0冻结1正常2终止合作")
    @ApiModelProperty(value="商户状态-1删除0冻结1正常2终止合作")
    private String shopStatus;
    @Excel(name = "商户活动次数", width = 30)
    @ApiModelProperty("商户活动次数")
    @ApiModelProperty(value="商户活动次数")
    private Integer shopActivityCount;
    @Excel(name = "店铺设置状态", width = 30)
    @ApiModelProperty("店铺设置状态")
    @ApiModelProperty(value="店铺设置状态")
    private String shopCustomStatus;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopProportionPageVo.java
@@ -21,13 +21,13 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty("店铺地址")
    @ApiModelProperty(value="店铺地址")
    private String shopAddress;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty(value = "分成比例")
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java
@@ -29,11 +29,11 @@
    private String shopType;
    @Excel(name = "店主姓名", width = 30)
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @Excel(name = "店主联系方式", width = 30)
    @ApiModelProperty("店主联系方式")
    @ApiModelProperty(value="店主联系方式")
    private String shopownerPhone;
    @Excel(name = "建议内容", width = 30)
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopTaskRecordPageVo.java
@@ -36,25 +36,25 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("跟踪类型1电话2手动")
    @ApiModelProperty(value="跟踪类型1电话2手动")
    private String followType;
    @ApiModelProperty("电话时间")
    @ApiModelProperty(value="电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date callTime;
    @ApiModelProperty("跟踪内容")
    @ApiModelProperty(value="跟踪内容")
    private String followContent;
    @ApiModelProperty("拨打电话")
    @ApiModelProperty(value="拨打电话")
    private String callPhone;
    @ApiModelProperty("跟进图片地址")
    @ApiModelProperty(value="跟进图片地址")
    private List<String> picture;
    @ApiModelProperty("跟进视频地址")
    @ApiModelProperty(value="跟进视频地址")
    private List<String> video;
    @ApiModelProperty("跟进音频地址")
    @ApiModelProperty(value="跟进音频地址")
    private List<String> audio;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoVo.java
@@ -10,24 +10,24 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @ApiModelProperty("商户名称")
    @ApiModelProperty(value="商户名称")
    private String shopName;
    @ApiModelProperty("店铺区域全称")
    @ApiModelProperty(value="店铺区域全称")
    private String shopAreaName;
    @ApiModelProperty("店铺详细地址")
    @ApiModelProperty(value="店铺详细地址")
    private String shopAddress;
    @ApiModelProperty("店主姓名")
    @ApiModelProperty(value="店主姓名")
    private String shopownerName;
    @ApiModelProperty("联系电话")
    @ApiModelProperty(value="联系电话")
    private String shopownerPhone;
    @ApiModelProperty("合作期限")
    @ApiModelProperty(value="合作期限")
    private Date cooperationEndTime;
    @ApiModelProperty("所属经销商")
    @ApiModelProperty(value="所属经销商")
    private String belongShopName;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -4,12 +4,12 @@
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByDept;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.SysClassification;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo;
import com.ruoyi.system.service.config.ActivenessService;
import com.ruoyi.system.service.config.SysClassificationService;
import com.ruoyi.system.service.config.SysTagService;
import com.ruoyi.system.service.config.*;
import com.ruoyi.system.service.sys.ISysUserService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -43,7 +43,11 @@
    @Resource
    private ISysUserService sysUserService;
    @Resource
    private DelayTaskService delayTaskService;
    @Resource
    private CustomConfigService customConfigService;
    /**
     * 获取系统标签
@@ -144,5 +148,39 @@
        return R.ok(activeness);
    }
    @PostMapping("/getDelayTask")
    public R<DelayTask> getDelayTask(@RequestBody String key)
    {
        DelayTask delayTask = delayTaskService.getDelayTask(key);
        return R.ok(delayTask);
    }
    @PostMapping("/addDelayTask")
    public R addDelayTask(@RequestBody DelayTask delayTask)
    {
        delayTaskService.addDelayTask(delayTask);
        return R.ok();
    }
    @PostMapping("/deleteDelayTask")
    public R deleteDelayTask(@RequestBody String key)
    {
        delayTaskService.deleteDelayTask(key);
        return R.ok();
    }
    /**
     * @description  获取其他设置
     * @author  jqs
     * @date    2023/7/12 15:27
     * @param
     * @return  R<AppOtherConfigGetVo>
     */
    @PostMapping("/getAppOtherConfigGetVo")
    public R<AppOtherConfigGetVo> getAppOtherConfigGetVo()
    {
        AppOtherConfigGetVo appOtherConfigGetVo = customConfigService.getAppOtherConfigGetVo();
        return R.ok(appOtherConfigGetVo);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java
@@ -26,7 +26,7 @@
    @ApiModelProperty(value = "部门名称")
    private String deptName;
    @Excel(name = "手机号", width = 30)
    @ApiModelProperty("手机号")
    @ApiModelProperty(value="手机号")
    private String mobile;
    @Excel(name = "建议内容", width = 30)
    @ApiModelProperty(value = "建议内容")
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
@@ -3,6 +3,9 @@
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteCouponService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.core.RedisTemplate;
@@ -26,6 +29,9 @@
    private RedisTemplate<String, Object> redisTemplate;
    private RemoteConfigService remoteConfigService;
    private RemoteCouponService remoteCouponService;
    public RedisListener(RedisMessageListenerContainer listenerContainer,
                         RedisTemplate redisTemplate) {
@@ -44,7 +50,10 @@
                if(expiredKey.contains("-")){
                    String[] split = expiredKey.split("-");
                    String operation=split[0];
                    if(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode().equals(operation)){
                        //自动关闭订单
                        autoTimeSendCoupon(split[1]);
                    }
                    //删除失效的key
                    redisTemplate.delete(expiredKey);
                }
@@ -66,8 +75,13 @@
    }
    //延时任务表
    //自动定时发送优惠券
    private void autoTimeSendCoupon(String couponId){
        log.info("autoTimeSendCoupon scheduler task is running :" + couponId);
        remoteCouponService.autoTimeSendCoupon(couponId);
        //删除定时任务
        remoteConfigService.deleteDelayTask(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode()+"-"+couponId);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/DelayTaskMapper.java
@@ -1,6 +1,6 @@
package com.ruoyi.system.mapper.config;
import com.ruoyi.system.domain.pojo.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.domain.dto.*;
import com.ruoyi.system.domain.pojo.config.CustomConfig;
@@ -103,4 +104,14 @@
    */
    MgtBulletinBoardVo getBulletinBoard();
    /**
     * @description  获取其他设置
     * @author  jqs
     * @date    2023/7/12 15:28
     * @param
     * @return  AppOtherConfigGetVo
     */
    AppOtherConfigGetVo getAppOtherConfigGetVo();
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/DelayTaskService.java
@@ -1,6 +1,6 @@
package com.ruoyi.system.service.config;
import com.ruoyi.system.domain.pojo.config.DelayTask;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.baomidou.mybatisplus.extension.service.IService;
;
@@ -14,4 +14,30 @@
 */
public interface DelayTaskService extends IService<DelayTask> {
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:39
     * @param key
     * @return  DelayTask
     */
    DelayTask getDelayTask(String key);
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:37
     * @param delayTask
     * @return  void
     */
    void addDelayTask(DelayTask delayTask);
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:39
     * @param key
     * @return  DelayTask
     */
    void deleteDelayTask(String key);
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.system.api.constant.ConfigEnum;
import com.ruoyi.system.api.domain.poji.config.Activeness;
import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.service.RemoteActivityService;
import com.ruoyi.system.api.service.RemoteMemberService;
@@ -591,4 +592,49 @@
        return mgtBulletinBoardVo;
    }
    /**
     * @description  获取其他设置
     * @author  jqs
     * @date    2023/7/12 15:28
     * @param
     * @return  AppOtherConfigGetVo
     */
    @Override
    public AppOtherConfigGetVo getAppOtherConfigGetVo(){
        AppOtherConfigGetVo appOtherConfigGetVo = new AppOtherConfigGetVo();
        //获取自定义配置
        List<CustomConfig> customConfigList = customConfigMapper.selectList(new LambdaQueryWrapper<CustomConfig>().eq(CustomConfig::getDelFlag, 0));
        Optional.ofNullable(customConfigList).ifPresent(list -> {
            Map<String, CustomConfig> configMap = list.stream().collect(Collectors.toMap(CustomConfig::getConfigKey, Function.identity()));
            // 遍历配置映射,设置相应的属性值
            configMap.forEach((key, value) -> {
                switch (key) {
                    case "SHARE_INTEGRAL":
                        appOtherConfigGetVo.setShareIntegral(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "SUGGEST_PLATFORM_INTEGRAL":
                        appOtherConfigGetVo.setSuggestPlatformIntegral(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "SIGN_IN_INTEGRAL":
                        appOtherConfigGetVo.setSignInIntegral(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "SUGGEST_SHOP_INTEGRAL":
                        appOtherConfigGetVo.setSuggestShopIntegral(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "PAY_MONEY_INTEGRAL":
                        appOtherConfigGetVo.setPayMoneyIntegral(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "ORDER_AUTO_CANCEL_TIME":
                        appOtherConfigGetVo.setOrderAutoCancelTime(Integer.valueOf(value.getConfigValue()));
                        break;
                    case "HOME_STYLE":
                        appOtherConfigGetVo.setHomeStyle(Integer.valueOf(value.getConfigValue()));
                        break;
                    default:
                        break;
                }
            });
        });
        return appOtherConfigGetVo;
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/DelayTaskServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.service.impl.config;
import com.ruoyi.system.domain.pojo.config.DelayTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.mapper.config.DelayTaskMapper;
import com.ruoyi.system.service.config.DelayTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -17,4 +19,48 @@
@Service
public class DelayTaskServiceImpl extends ServiceImpl<DelayTaskMapper, DelayTask> implements DelayTaskService {
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:38
     * @param key
     * @return  DelayTask
     */
    @Override
    public DelayTask getDelayTask(String key){
        LambdaQueryWrapper<DelayTask> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DelayTask::getDelFlag,0);
        queryWrapper.eq(DelayTask::getRedisKey,key);
        DelayTask delayTask = this.getOne(queryWrapper,false);
        return delayTask;
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:37
     * @param delayTask
     * @return  void
     */
    @Override
    public void addDelayTask(DelayTask delayTask){
        this.saveOrUpdate(delayTask);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/12 11:39
     * @param key
     * @return  DelayTask
     */
    @Override
    public void deleteDelayTask(String key){
        LambdaUpdateWrapper<DelayTask> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(DelayTask::getDelFlag,0);
        updateWrapper.eq(DelayTask::getRedisKey,key);
        updateWrapper.set(DelayTask::getDelFlag,1);
        this.update(updateWrapper);
    }
}