From cbc564a7088503ad8cc7af4e1d2ba417d061e615 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 30 六月 2023 11:35:05 +0800 Subject: [PATCH] 联调bug和统计完善 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 12 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 23 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java | 14 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml | 9 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java | 7 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java | 13 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveFieldsService.java | 15 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ConsumerGoodsMapper.java | 13 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java | 12 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopTotal.java | 4 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java | 91 ++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBasicFileVo.java | 4 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java | 28 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java | 27 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveFieldsServiceImpl.java | 19 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java | 12 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java | 13 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java | 7 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java | 4 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java | 4 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java | 14 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 26 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 525 ++++++++----- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java | 13 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java | 7 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java | 12 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java | 13 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java | 24 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java | 9 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java | 4 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java | 37 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java | 12 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtArchiveFieldsListVo.java | 38 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java | 13 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java | 31 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java | 16 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java | 11 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/business/MerConfigController.java | 3 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml | 43 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java | 18 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapStrTotalVo.java | 9 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveFieldsMapper.java | 11 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java | 11 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java | 55 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java | 10 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java | 25 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 14 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml | 12 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveFieldsMapper.xml | 13 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponTotalService.java | 5 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java | 19 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java | 7 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java | 22 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml | 9 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java | 14 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 212 ++++- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 417 ++++++---- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java | 14 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java | 7 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml | 5 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyCouponDto.java | 4 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java | 22 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberConsumerGoodsTotalVo.java | 28 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java | 22 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java | 10 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java | 2 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java | 11 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java | 63 - 73 files changed, 1,621 insertions(+), 656 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java index 53de4eb..e7d96c4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberTotalChangeDto.java @@ -17,8 +17,8 @@ public class MemberTotalChangeDto { - @ApiModelProperty(value = "会员id") - private String memberId; + @ApiModelProperty(value = "用户id") + private Long userId; @ApiModelProperty(value = "积分变化") private Integer changeIntegral; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java new file mode 100644 index 0000000..442b929 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MemberTaskSimpleVo.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.api.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName MemberTaskSimpleVo + * @Description TODO + * @Author jqs + * @Date 2023/6/29 18:22 + * @Version 1.0 + */ +@Data +public class MemberTaskSimpleVo { + + @ApiModelProperty(value = "任务时间") + private Date taskDate; + + @ApiModelProperty("任务内容") + private String taskContent; + + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java similarity index 91% rename from ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java index 02698a8..42409db 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapIntTotalVo.java @@ -11,7 +11,7 @@ * @Version 1.0 */ @Data -public class MgtMapTotalVo { +public class MgtMapIntTotalVo { @ApiModelProperty(value = "mapKey") private String mapKey; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapStrTotalVo.java similarity index 71% copy from ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java copy to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapStrTotalVo.java index 02698a8..b6f09a6 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapTotalVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtMapStrTotalVo.java @@ -4,19 +4,18 @@ import lombok.Data; /** - * @ClassName MgtNurseTotalVo + * @ClassName MgtMapStrTotalVo * @Description TODO * @Author jqs - * @Date 2023/6/19 18:06 + * @Date 2023/6/30 11:10 * @Version 1.0 */ @Data -public class MgtMapTotalVo { +public class MgtMapStrTotalVo { @ApiModelProperty(value = "mapKey") private String mapKey; @ApiModelProperty(value = "mapValue") - private Integer mapValue; - + private String mapValue; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java index 3d09306..c8df9fc 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtPlTotalMemberTotalVo.java @@ -37,25 +37,25 @@ private Integer[] ageValue; @ApiModelProperty(value = "会员调理") - private List<MgtMapTotalVo> nurseTotalVos; + private List<MgtMapIntTotalVo> nurseTotalVos; @ApiModelProperty(value = "商品类型") - private List<MgtMapTotalVo> goodsTypeTotalVos; + private List<MgtMapIntTotalVo> goodsTypeTotalVos; @ApiModelProperty(value = "活跃度") - private List<MgtMapTotalVo> activenessList; + private List<MgtMapIntTotalVo> activenessList; @ApiModelProperty(value = "来源渠道") - private List<MgtMapTotalVo> customerSourceList; + private List<MgtMapIntTotalVo> customerSourceList; @ApiModelProperty(value = "消费排行") - private List<MgtMapTotalVo> memberPayList; + private List<MgtMapIntTotalVo> memberPayList; @ApiModelProperty(value = "商品排行") - private List<MgtMapTotalVo> memberGoodsRankList; + private List<MgtMapIntTotalVo> memberGoodsRankList; @ApiModelProperty(value = "店铺会员") - private List<MgtMapTotalVo> shopMemberRankList; + private List<MgtMapIntTotalVo> shopMemberRankList; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java index 9936a80..0212e71 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java @@ -48,13 +48,18 @@ } @Override + public R<Activeness> getActivenessByName(String name) { + return R.fail("获取活跃度失败:" + throwable.getMessage()); + } + + @Override public R<List<SysTag>> listSysTag(Integer tagType) { return R.fail("获取标签失败:" + throwable.getMessage()); } @Override public R<List<Activeness>> listActiveness() { - return R.fail("获取活跃度失败:" + throwable.getMessage()); + return R.fail("获取活跃度列表失败:" + throwable.getMessage()); } @Override diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java index 8d338c7..592921f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java @@ -106,6 +106,13 @@ public R<MgtShopTotalMemberVo> getUserTotalByShopId(List<Long> shopIdlist) { return R.fail("通过shopId获取user统计失败:" + throwable.getMessage()); } + + @Override + public R changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto) { + return R.fail("更新会员统计失败:" + throwable.getMessage()); + } + + }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java index 1d223db..aab7869 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java @@ -1,9 +1,10 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import com.ruoyi.system.api.service.RemoteOrderService; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; @@ -12,6 +13,7 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.util.List; /** @@ -47,9 +49,14 @@ } @Override - public R<List<MgtMapTotalVo>> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { + public R<List<MgtMapIntTotalVo>> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { return R.fail("获取商户端统计失败:" + throwable.getMessage()); } + + @Override + public R<BigDecimal> getMemberUnpaidOrder(MerBaseDto merBaseDto) { + return R.fail("获取用户未结清金额失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java index 678479c..1139eed 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java @@ -4,14 +4,12 @@ import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; -import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; -import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; +import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; +import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.QwH5LoginVo; import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.api.service.RemoteShopService; import com.ruoyi.system.api.domain.poji.shop.Shop; -import com.ruoyi.system.api.domain.vo.ShopRelUserVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -80,7 +78,15 @@ return R.fail("获取商户列表失败:" + throwable.getMessage()); } + @Override + public R changeShopTotal(ShopTotalChangeDto shopTotalChangeDto) { + return R.fail("更新商户统计失败:" + throwable.getMessage()); + } + @Override + public R<MemberTaskSimpleVo> getLastMemberTask(Long userId) { + return R.fail("获取最近会员任务失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java index ca53c50..822302a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java @@ -79,4 +79,14 @@ */ @PostMapping("/config/listSimpleUserVo") public R<List<MgtSysSimpleUserVo>> listSimpleUserVo(@RequestBody MgtBaseBathDto mgtBaseBathDto); + + /** + * @description 通过名称获取活跃度 + * @author jqs + * @date 2023/6/29 17:20 + * @param name + * @return R<Activeness> + */ + @PostMapping("/getActivenessByName") + public R<Activeness> getActivenessByName(@RequestBody String name); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java index d255a81..1792555 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java @@ -150,4 +150,17 @@ */ @PostMapping("/member/getUserTotalByShopId") public R<MgtShopTotalMemberVo> getUserTotalByShopId(@RequestBody List<Long> shopIdlist); + + /** + * @description 更新会员统计 + * @author jqs + * @date 2023/6/28 17:52 + * @param memberTotalChangeDto + * @return R + */ + @PostMapping("/member/changeMemberTotal") + public R changeMemberTotal(@RequestBody MemberTotalChangeDto memberTotalChangeDto); + + + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java index 8fca6f3..f46ebec 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java @@ -2,16 +2,18 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import com.ruoyi.system.api.factory.RemoteOrderFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.math.BigDecimal; import java.util.List; @FeignClient(contextId = "remoteOrderService", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteOrderFallbackFactory.class) @@ -38,8 +40,19 @@ * @author jqs * @date 2023/6/21 15:27 * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ @PostMapping("/order/listMemberGoodsRank") - public R<List<MgtMapTotalVo>> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto); + public R<List<MgtMapIntTotalVo>> listMemberGoodsRank(@RequestBody MgtBasePlatformDto mgtBasePlatformDto); + + + /** + * @description 获取用户未支付金额 + * @author jqs + * @date 2023/6/29 18:00 + * @param merBaseDto + * @return R<BigDecimal> + */ + @PostMapping("/order/getMemberUnpaidOrder") + public R<BigDecimal> getMemberUnpaidOrder(@RequestBody MerBaseDto merBaseDto); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java index c132b46..eba5c59 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java @@ -5,11 +5,9 @@ import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; +import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; import com.ruoyi.system.api.domain.poji.shop.Shop; -import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; -import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; -import com.ruoyi.system.api.domain.vo.ShopRelUserVo; +import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.factory.RemoteShopFallbackFactory; import com.ruoyi.system.api.model.QwH5LoginVo; import com.ruoyi.system.api.model.QwUserDetailDto; @@ -90,4 +88,25 @@ */ @PostMapping("/shop/listShopIdByPlTotal") public R<List<Long>> listShopIdByPlTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto); + + + /** + * @description 更新商户统计 + * @author jqs + * @date 2023/6/28 17:52 + * @param shopTotalChangeDto + * @return R + */ + @PostMapping("/changeShopTotal") + public R changeShopTotal(@RequestBody ShopTotalChangeDto shopTotalChangeDto); + + /** + * @description 获取最近任务 + * @author jqs + * @date 2023/6/29 18:25 + * @param userId + * @return R<MemberTaskSimpleVo> + */ + @PostMapping("/member/getLastMemberTask") + public R<MemberTaskSimpleVo> getLastMemberTask(@RequestBody Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java index 748c236..396bcf7 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java @@ -5,6 +5,7 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.*; import com.ruoyi.member.domain.vo.*; +import com.ruoyi.member.service.member.MemberArchiveFieldsService; import com.ruoyi.member.service.member.MemberService; import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import io.swagger.annotations.Api; @@ -32,7 +33,8 @@ @Resource private MemberService memberService; - + @Resource + private MemberArchiveFieldsService memberArchiveFieldsService; @RequestMapping(value = "/pageMerCashMember", method = RequestMethod.POST) @ApiOperation(value = "分页获取收银搜索会员列表") @@ -59,14 +61,17 @@ /** - * 未完成 - * @return + * @description 获取会员信息 + * @author jqs + * @date 2023/6/29 18:10 + * @param merBaseGetDto + * @return R<MerMemberInfoVo> */ @RequestMapping(value = "/getMerMemberInfo", method = RequestMethod.POST) @ApiOperation(value = "获取会员信息") public R<MerMemberInfoVo> getMerMemberInfo(@RequestBody MerBaseGetDto merBaseGetDto) { Long userId = SecurityUtils.getUserId(); - MerMemberInfoVo merMemberInfo = memberService.getMerMemberInfo(Long.valueOf(merBaseGetDto.getId())); + MerMemberInfoVo merMemberInfo = memberService.getMerMemberInfo(merBaseGetDto); return R.ok(merMemberInfo); } @@ -77,6 +82,13 @@ Long userId = SecurityUtils.getUserId(); MerMemberBasicFileVo merMemberBasicFileVo = memberService.getMerMemberBasicFile(Long.valueOf(merBaseGetDto.getId())); return R.ok(merMemberBasicFileVo); + } + + @RequestMapping(value = "/listMerArchiveFields", method = RequestMethod.POST) + @ApiOperation(value = "商户获取档案字段") + public R<List<MgtArchiveFieldsListVo>> listMerArchiveFields() { + List<MgtArchiveFieldsListVo> archiveFieldsListVoList = memberArchiveFieldsService.listMgtArchiveFields(); + return R.ok(archiveFieldsListVoList); } @RequestMapping(value = "/getMerMemberTags", method = RequestMethod.POST) @@ -112,4 +124,6 @@ memberService.editMerMember(merMemberAddDto); return R.ok(); } + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java index 7f1a051..57653aa 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java @@ -247,7 +247,7 @@ @PostMapping("/changeMemberTotal") public R changeMemberTotal(@RequestBody MemberTotalChangeDto memberTotalChangeDto) { - memberTotalService.changeMemberTotal(memberTotalChangeDto); + memberService.changeMemberTotal(memberTotalChangeDto); return R.ok(); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java index e10259b..1e222f7 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java @@ -110,7 +110,12 @@ return R.ok(mgtMemberGetVo); } - + @RequestMapping(value = "/listMgtArchiveFields", method = RequestMethod.POST) + @ApiOperation(value = "平台获取档案字段") + public R<List<MgtArchiveFieldsListVo>> listMgtArchiveFields() { + List<MgtArchiveFieldsListVo> archiveFieldsListVoList = memberArchiveFieldsService.listMgtArchiveFields(); + return R.ok(archiveFieldsListVoList); + } @RequestMapping(value = "/pageMgtMemberIntegral", method = RequestMethod.POST) @ApiOperation(value = "平台获取用户积分列表") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java index d2c9559..f5abee2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java @@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; - /** * @author jqs34 * @ClassName MerMemberPageDto @@ -52,7 +50,13 @@ @ApiModelProperty(value = "会员性别0男1女") private Integer memberGender; - @ApiModelProperty(value = "会员活跃度1.活跃2.中度活跃3.轻度活跃") - private Integer memberActivity; + @ApiModelProperty(value = "会员活跃度") + private String memberActiveness; + + @ApiModelProperty(value = "活跃度开始时间",hidden = true) + private String actStartDate; + + @ApiModelProperty(value = "活跃度结束时间",hidden = true) + private String actEndDate; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java index 170cf09..b836692 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberShopTotal.java @@ -121,8 +121,8 @@ /** * 总体验订单数 */ - @TableField("tolta_experience_order") - private Integer toltaExperienceOrder; + @TableField("total_experience_order") + private Integer totalExperienceOrder; /** * 总服务订单数 */ diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBasicFileVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBasicFileVo.java index 056e380..3816368 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBasicFileVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBasicFileVo.java @@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -48,4 +47,7 @@ @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + + @ApiModelProperty(value = "用户档案") + private List<MemberArchiveVo> achiveList; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java index 4eefe03..d86fa6f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberInfoVo.java @@ -32,6 +32,9 @@ @ApiModelProperty("用户生日") private String birthday; + @ApiModelProperty(value = "用户类型") + private String memberType; + @ApiModelProperty(value = "用户标签") private String userTags; @@ -57,4 +60,8 @@ @ApiModelProperty(value = "下次跟进任务时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date nextTaskTime; + + @ApiModelProperty(value = "最近消费时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date lastPayTime; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtArchiveFieldsListVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtArchiveFieldsListVo.java new file mode 100644 index 0000000..12e129a --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtArchiveFieldsListVo.java @@ -0,0 +1,38 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MgtArchiveFieldsListVo + * @Description TODO + * @Author jqs + * @Date 2023/6/30 9:37 + * @Version 1.0 + */ +@Data +public class MgtArchiveFieldsListVo { + + @ApiModelProperty(value = "档案id") + private Long afId; + + @ApiModelProperty(value = "字段名称") + private String fieldName; + + @ApiModelProperty(value = "是否必填0否1是") + private Integer requiredFlag; + + @ApiModelProperty(value = "字段排序") + private Integer fieldSort; + + @ApiModelProperty(value = "字段类型1文字输入2数字输入3字母输入4无限制输入6年月日选择7选项") + private Integer fieldType; + + @ApiModelProperty(value = "字段输入提示") + private String inputTip; + + @ApiModelProperty(value = "选项值 多个,隔开") + private String optionValues; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java index 8507f0c..59f105f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java @@ -1,6 +1,6 @@ package com.ruoyi.member.domain.vo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -50,17 +50,17 @@ private Integer[] ageValue; @ApiModelProperty(value = "会员调理") - private List<MgtMapTotalVo> nurseTotalVos; + private List<MgtMapIntTotalVo> nurseTotalVos; @ApiModelProperty(value = "商品类型") - private List<MgtMapTotalVo> goodsTypeTotalVos; + private List<MgtMapIntTotalVo> goodsTypeTotalVos; @ApiModelProperty(value = "活跃度") - private List<MgtMapTotalVo> activenessList; + private List<MgtMapIntTotalVo> activenessList; @ApiModelProperty(value = "来源渠道") - private List<MgtMapTotalVo> customerSourceList; + private List<MgtMapIntTotalVo> customerSourceList; @ApiModelProperty(value = "消费排行") - private List<MgtMapTotalVo> memberPayList; + private List<MgtMapIntTotalVo> memberPayList; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java index 5e1afe9..751831b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java @@ -51,4 +51,15 @@ * @return List<MgtCouponAuditPageVo> */ List<MgtCouponAuditPageVo> pageMgtAuditCoupon(Page page, @Param("param")MgtCouponAuditPageDto mgtCouponAuditPageDto); + + /** + * @description 更新优惠券统计 + * @author jqs + * @date 2023/6/29 11:56 + * @param couponId + * @param sendTotal + * @param sendPerson + * @return void + */ + void updateCouponTotal( @Param("couponId")String couponId, @Param("sendTotal")Integer sendTotal, @Param("sendPerson")Integer sendPerson); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveFieldsMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveFieldsMapper.java index d52cefc..bc9b6f8 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveFieldsMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveFieldsMapper.java @@ -2,6 +2,9 @@ import com.ruoyi.member.domain.pojo.member.MemberArchiveFields; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.member.domain.vo.MgtArchiveFieldsListVo; + +import java.util.List; /** * <p> @@ -13,4 +16,12 @@ */ public interface MemberArchiveFieldsMapper extends BaseMapper<MemberArchiveFields> { + /** + * @description 平台获取档案字段 + * @author jqs + * @date 2023/6/30 9:39 + * @param + * @return List<MgtArchiveFieldsListVo> + */ + List<MgtArchiveFieldsListVo> listMgtArchiveFields(); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java index 0a5aca7..58ef355 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java @@ -18,9 +18,18 @@ public interface MemberArchiveMapper extends BaseMapper<MemberArchive> { /** - * 获取用户档案 + * 获取用户档案去除空信息 * @param userId * @return */ - List<MemberArchiveVo> listVoByUserId(@Param("userId") Long userId); + List<MemberArchiveVo> listMgtVoByUserId(@Param("userId") Long userId); + + /** + * @description + * @author jqs + * @date 2023/6/30 11:18 + * @param userId + * @return List<MemberArchiveVo> + */ + List<MemberArchiveVo> listMerVoByUserId(@Param("userId")Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java index f109c1c..56b649e 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java @@ -11,7 +11,7 @@ import com.ruoyi.system.api.domain.dto.MgtBaseShopDto; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.poji.member.Member; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import com.ruoyi.system.api.domain.vo.MgtPlTotalMemberTotalVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import org.apache.ibatis.annotations.Param; @@ -160,7 +160,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getTotalMemberTotalNurse(@Param("param") MgtBaseShopDto mgtBaseShopDto); + List<MgtMapIntTotalVo> getTotalMemberTotalNurse(@Param("param") MgtBaseShopDto mgtBaseShopDto); /** @@ -170,7 +170,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getTotalMemberTotalGoodsType(@Param("param") MgtBaseShopDto mgtBaseShopDto); + List<MgtMapIntTotalVo> getTotalMemberTotalGoodsType(@Param("param") MgtBaseShopDto mgtBaseShopDto); /** * @description getTotalMemberTotalActiveness @@ -190,7 +190,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getTotalMemberRankPay(@Param("param") MgtBaseShopDto mgtBaseShopDto); + List<MgtMapIntTotalVo> getTotalMemberRankPay(@Param("param") MgtBaseShopDto mgtBaseShopDto); /** @@ -200,7 +200,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getTotalMemberRankCustomerSource(@Param("param") MgtBaseShopDto mgtBaseShopDto); + List<MgtMapIntTotalVo> getTotalMemberRankCustomerSource(@Param("param") MgtBaseShopDto mgtBaseShopDto); /** * @description @@ -237,7 +237,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getPlTotalMemberTotalNurse(@Param("param") MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> getPlTotalMemberTotalNurse(@Param("param") MgtBasePlatformDto mgtBasePlatformDto); /** * @description 会员人数统计 @@ -246,7 +246,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getPlTotalMemberTotalGoodsType(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> getPlTotalMemberTotalGoodsType(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description getTotalMemberTotalActiveness @@ -266,7 +266,7 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getPlTotalMemberRankPay(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> getPlTotalMemberRankPay(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 会员人数统计 @@ -275,16 +275,16 @@ * @param * @return MgtTotalMemberTotalVo */ - List<MgtMapTotalVo> getPlTotalMemberRankCustomerSource(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> getPlTotalMemberRankCustomerSource(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description * @author jqs * @date 2023/6/21 14:35 * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> getPlTotalMemberRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> getPlTotalMemberRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 通过shopId获取userId diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponTotalService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponTotalService.java index 5710c43..5b82012 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponTotalService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponTotalService.java @@ -1,7 +1,7 @@ package com.ruoyi.member.service.coupon; -import com.ruoyi.member.domain.pojo.coupon.CouponTotal; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.pojo.coupon.CouponTotal; /** * <p> @@ -13,4 +13,7 @@ */ public interface CouponTotalService extends IService<CouponTotal> { + + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java index 2415ea1..4f8b57c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java @@ -320,7 +320,9 @@ 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(); @@ -353,14 +355,18 @@ } 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; + } + } } memberCouponService.saveBatch(memberCouponList); //处理优惠券统计 if(sendTotal>0){ - CouponTotal couponTotal = couponTotalService.getById(coupon.getCouponId()); - couponTotal.setSendCount(couponTotal.getSendCount()+sendTotal); - couponTotal.setSendUserCount(couponTotal.getSendUserCount()+sendTotal); - couponTotalService.saveOrUpdate(couponTotal); + couponMapper.updateCouponTotal(coupon.getCouponId(),sendTotal,sendPerson); } } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveFieldsServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveFieldsServiceImpl.java index eed0c1f..ad60289 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveFieldsServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveFieldsServiceImpl.java @@ -2,10 +2,14 @@ import com.ruoyi.member.domain.dto.MgtArchiveFieldsEditDto; import com.ruoyi.member.domain.pojo.member.MemberArchiveFields; +import com.ruoyi.member.domain.vo.MgtArchiveFieldsListVo; import com.ruoyi.member.mapper.member.MemberArchiveFieldsMapper; import com.ruoyi.member.service.member.MemberArchiveFieldsService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -18,6 +22,9 @@ @Service public class MemberArchiveFieldsServiceImpl extends ServiceImpl<MemberArchiveFieldsMapper, MemberArchiveFields> implements MemberArchiveFieldsService { + + @Resource + private MemberArchiveFieldsMapper memberArchiveFieldsMapper; /** * @description 编辑会员档案字段 @@ -47,4 +54,16 @@ // 保存或更新会员档案字段信息 this.saveOrUpdate(memberArchiveFields); } + + /** + * @description 平台获取档案字段 + * @author jqs + * @date 2023/6/30 9:39 + * @param + * @return List<MgtArchiveFieldsListVo> + */ + @Override + public List<MgtArchiveFieldsListVo> listMgtArchiveFields(){ + return memberArchiveFieldsMapper.listMgtArchiveFields(); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java index 3fa2495..6ed1ef9 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java @@ -25,12 +25,22 @@ private MemberArchiveMapper memberArchiveMapper; /** + * 获取用户档案去除空信息 + * @param userId + * @return + */ + @Override + public List<MemberArchiveVo> listMgtVoByUserId(Long userId){ + return memberArchiveMapper.listMgtVoByUserId(userId); + } + + /** * 获取用户档案 * @param userId * @return */ @Override - public List<MemberArchiveVo> listVoByUserId(Long userId){ - return memberArchiveMapper.listVoByUserId(userId); + public List<MemberArchiveVo> listMerVoByUserId(Long userId){ + return memberArchiveMapper.listMerVoByUserId(userId); } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java index 212b96f..df39976 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java @@ -1,10 +1,9 @@ package com.ruoyi.member.service.impl.member; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.ruoyi.member.mapper.member.MemberCouponMapper; -import com.ruoyi.member.service.coupon.CouponService; import com.ruoyi.member.service.member.MemberCouponService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.poji.goods.Goods; @@ -35,8 +34,6 @@ @Resource private RemoteGoodsService remoteGoodsService; - @Resource - private CouponService couponService; /** * @description: TODO @@ -86,12 +83,10 @@ merVerifyCouponGetVo.setGoodsList(goodsList); } merVerifyCouponGetVo.setMemberCouponId(memberCoupon.getId()); - Coupon coupon = couponService.getById(memberCoupon.getCouponId()); - // 设置优惠券来源 - if (coupon.getCouponFrom() == 1) { - merVerifyCouponGetVo.setCouponFrom("平台"); - } else { + if (memberCoupon.getShopId()!=null&&memberCoupon.getShopId()>0) { merVerifyCouponGetVo.setCouponFrom("商户"); + } else { + merVerifyCouponGetVo.setCouponFrom("平台"); } return merVerifyCouponGetVo; } @@ -127,11 +122,10 @@ merVerifyCouponGetVo.setGoodsList(goodsList); } merVerifyCouponGetVo.setMemberCouponId(memberCoupon.getId()); - Coupon coupon = couponService.getById(memberCoupon.getCouponId()); - if (coupon.getCouponFrom()==1) { - merVerifyCouponGetVo.setCouponFrom("平台"); - } else { + if (memberCoupon.getShopId()!=null&&memberCoupon.getShopId()>0) { merVerifyCouponGetVo.setCouponFrom("商户"); + } else { + merVerifyCouponGetVo.setCouponFrom("平台"); } memberCoupon.setCouponStatus(2); memberCoupon.setUseTime(new Date()); @@ -139,4 +133,21 @@ merVerifyCouponGetVo.setMemberCoupon(memberCoupon); return merVerifyCouponGetVo; } + + /** + * @description + * @author jqs + * @date 2023/6/29 11:42 + * @param userId + * @param couponId + * @return Integer + */ + @Override + public Integer totalMemberCouponByUserAndCoupon(Long userId,String couponId){ + LambdaQueryWrapper<MemberCoupon> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MemberCoupon::getUserId,userId); + queryWrapper.eq(MemberCoupon::getCouponId,couponId); + Integer total = this.count(queryWrapper); + return total; + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 0c96aef..5324204 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -17,7 +17,6 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.*; import com.ruoyi.member.domain.pojo.member.IntegralRecord; -import com.ruoyi.member.domain.pojo.member.MemberNurse; import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; @@ -115,18 +114,17 @@ * @version 1.0 */ @Override - public Member getByUserId(Long userId){ + public Member getByUserId(Long userId) { Member member = memberMapper.selectMemberByUserId(userId); return member; } /** - * * @param appMiniLoginDto * @return */ @Override - public AppMiniLoginVo getMemberByCode(AppMiniLoginDto appMiniLoginDto){ + public AppMiniLoginVo getMemberByCode(AppMiniLoginDto appMiniLoginDto) { AppMiniLoginVo appMiniLoginVo = new AppMiniLoginVo(); WxMaJscode2SessionResult session = null; @@ -140,38 +138,39 @@ e.printStackTrace(); return null; } - if(session!=null&& StringUtils.isNotBlank(session.getOpenid())){ + if (session != null && StringUtils.isNotBlank(session.getOpenid())) { unionid = session.getUnionid(); openid = session.getOpenid(); sessionKey = session.getSessionKey(); //获取用户 Member member = memberMapper.getOneByMiniOpenid(openid); SysUser sysUser = null; - if(member!=null){ + if (member != null) { sysUser = sysUserService.getSysUser(member.getUserId()).getData(); } appMiniLoginVo.setMiniOpenid(openid); appMiniLoginVo.setWxUnionid(unionid); appMiniLoginVo.setSysUser(sysUser); appMiniLoginVo.setSessionKey(sessionKey); - redisService.setCacheObject(SecurityConstant.SESSION_KEY+openid,sessionKey,1L,TimeUnit.DAYS); + redisService.setCacheObject(SecurityConstant.SESSION_KEY + openid, sessionKey, 1L, TimeUnit.DAYS); } - log.info("appMiniLoginVo"+appMiniLoginVo.toString()); + log.info("appMiniLoginVo" + appMiniLoginVo.toString()); return appMiniLoginVo; } /** * 小程序注册 + * * @param appUserRegisterDto * @return */ @Override - public AppMiniRegisterVo miniRegister(AppMiniRegisterDto appUserRegisterDto){ + public AppMiniRegisterVo miniRegister(AppMiniRegisterDto appUserRegisterDto) { AppMiniRegisterVo appUserRegisterVo = new AppMiniRegisterVo(); String mobile = null; //获取code接口在redis里存放的sessionkey用于解密 - String sessionkey = redisService.getCacheObject(SecurityConstant.SESSION_KEY+ appUserRegisterDto.getMiniOpenid()); - if(StringUtils.isBlank(sessionkey)){ + String sessionkey = redisService.getCacheObject(SecurityConstant.SESSION_KEY + appUserRegisterDto.getMiniOpenid()); + if (StringUtils.isBlank(sessionkey)) { throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN); } try { @@ -204,18 +203,18 @@ } catch (Exception e) { e.printStackTrace(); } - if(StringUtils.isBlank(mobile)){ + if (StringUtils.isBlank(mobile)) { return null; } //判断openid是否被其他手机号占用 Member checkMember = memberMapper.getOneByMiniOpenid(appUserRegisterDto.getMiniOpenid()); - if(checkMember!=null&&!checkMember.getMobile().equals(mobile)){ + if (checkMember != null && !checkMember.getMobile().equals(mobile)) { throw new ServiceException("微信号换绑手机需联系客服"); } Member member = memberMapper.selectMemberByMobile(mobile); SysUser sysUser; //获取用户为空则新建 - if(member == null){ + if (member == null) { //创建新用户 String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); @@ -240,12 +239,12 @@ member.setCreateTime(new Date()); member.setMobile(mobile); initMemberTotal(memberId); - }else{ + } else { sysUser = sysUserService.getSysUser(member.getUserId()).getData(); } member.setWxUnionid(appUserRegisterDto.getWxUnionid()); member.setMiniOpenid(appUserRegisterDto.getMiniOpenid()); - log.info("member-----------------"+member.toString()); + log.info("member-----------------" + member.toString()); this.saveOrUpdate(member); appUserRegisterVo.setMobile(mobile); appUserRegisterVo.setNickName(member.getNickName()); @@ -257,19 +256,19 @@ public static String getAccessTokenByWX() throws Exception { String host = ACCESS_TOKEN_HOST + "?appid=" + WX_APPID + "&secret=" + WX_SECRET + "&grant_type=client_credential"; - Map<String, String> headers = new HashMap<>(8); + Map<String, String> headers = new HashMap<>(8); HttpResponse response = HttpUtils.doGet(host, "", "GET", headers, null); return EntityUtils.toString(response.getEntity()); } - public static String getMobileByWX(String accessToken, String code) throws Exception { + public static String getMobileByWX(String accessToken, String code) throws Exception { String method = "POST"; Map<String, String> headers = new HashMap<>(16); headers.put("Content-Type", "application/json"); headers.put("Accept", "application/json"); Map<String, String> querys = new HashMap<>(16); Map<String, String> bodys = new HashMap<>(16); - querys.put("access_token", accessToken ); + querys.put("access_token", accessToken); bodys.put("code", code); String body = JSONObject.toJSONString(bodys); String host = "https://api.weixin.qq.com/wxa/business/getuserphonenumber"; @@ -279,11 +278,12 @@ /** * 获取用户信息 + * * @param userId * @return */ @Override - public AppUserInfoVo getAppUserInfo(Long userId){ + public AppUserInfoVo getAppUserInfo(Long userId) { AppUserInfoVo appUserInfoVo = new AppUserInfoVo(); Member member = this.getByUserId(userId); appUserInfoVo.setUserId(userId); @@ -291,11 +291,11 @@ appUserInfoVo.setNickName(member.getNickName()); appUserInfoVo.setRealName(member.getRealName()); appUserInfoVo.setPhonenumber(member.getMobile()); - if(member.getRelationShopId()!=null&&member.getBindingFlag()==1){ + if (member.getRelationShopId() != null && member.getBindingFlag() == 1) { appUserInfoVo.setRelationShopId(member.getRelationShopId()); Shop shop = shopService.getShop(member.getRelationShopId()).getData(); appUserInfoVo.setShopName(shop.getShopName()); - appUserInfoVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress()); + appUserInfoVo.setShopAddress(shop.getShopAreaName() + shop.getShopAddress()); } appUserInfoVo.setBirthday(member.getBirthday()); appUserInfoVo.setGender(member.getGender()); @@ -308,15 +308,16 @@ /** * 修改用户信息 + * * @param appEditUserDto */ @Override - public void editAppUserInfo(AppEditUserDto appEditUserDto){ + public void editAppUserInfo(AppEditUserDto appEditUserDto) { //修改类型1.昵称2.头像3.性别4.生日 Integer editType = appEditUserDto.getEditType(); String editValue = appEditUserDto.getEditValue(); Member member = this.getByUserId(appEditUserDto.getUserId()); - switch (editType){ + switch (editType) { case 1: member.setNickName(editValue); member.setUpdateTime(new Date()); @@ -345,12 +346,23 @@ /** * 分页获取会员信息 + * * @param merMemberPageDto * @return */ @Override - public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto){ - List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page,merMemberPageDto); + public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) { + if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) { + Activeness activeness = remoteConfigService.getActivenessByName(merMemberPageDto.getMemberActiveness()).getData(); + if (activeness != null) { + Date nowDay = DateUtils.getNowDate(); + String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); + String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); + merMemberPageDto.setActStartDate(actStartDate); + merMemberPageDto.setActEndDate(actEndDate); + } + } + List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page, merMemberPageDto); return merMemberPageVoList; } @@ -362,41 +374,71 @@ * @version 1.0 */ @Override - public MerMemberInfoVo getMerMemberInfo(Long userId){ + public MerMemberInfoVo getMerMemberInfo(MerBaseGetDto merBaseGetDto) { + // 将id转换为Long类型 + Long userId = Long.valueOf(merBaseGetDto.getId()); + // 创建MerMemberInfoVo对象 MerMemberInfoVo merMemberInfoVo = new MerMemberInfoVo(); + // 根据userId获取Member对象 Member member = this.getByUserId(userId); + // 设置MerMemberInfoVo对象的属性值 merMemberInfoVo.setUserId(userId); merMemberInfoVo.setNickName(member.getNickName()); merMemberInfoVo.setPhonenumber(member.getMobile()); merMemberInfoVo.setAvatar(member.getAvatar()); merMemberInfoVo.setBirthday(member.getBirthday()); merMemberInfoVo.setUserTags(member.getUserTags()); - //未完成 - + merMemberInfoVo.setMemberType(member.getGoodsType()); + // 根据memberId获取MemberTotal对象 + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + // 设置MerMemberInfoVo对象的属性值 + merMemberInfoVo.setSurpNumber(memberTotal.getUseableServiceCount()); + merMemberInfoVo.setUserNumber(memberTotal.getUsedServiceCount()); + merMemberInfoVo.setPayMoney(memberTotal.getTotalPayMoney()); + // 创建MerBaseDto对象 + MerBaseDto merBaseDto = new MerBaseDto(); + // 设置MerBaseDto对象的属性值 + merBaseDto.setShopId(merBaseGetDto.getShopId()); + merBaseDto.setUserId(userId); + // 获取未支付订单金额 + BigDecimal unpaidMoney = remoteOrderService.getMemberUnpaidOrder(merBaseDto).getData(); + merMemberInfoVo.setUnpaidMoney(unpaidMoney); + // 获取最近的会员任务 + MemberTaskSimpleVo memberTaskSimpleVo = remoteShopService.getLastMemberTask(userId).getData(); + if (memberTaskSimpleVo != null) { + merMemberInfoVo.setLastTaskContent(memberTaskSimpleVo.getTaskContent()); + merMemberInfoVo.setLastTaskTime(memberTaskSimpleVo.getTaskDate()); + } + // 设置MerMemberInfoVo对象的属性值 + merMemberInfoVo.setNextTaskTime(memberTotal.getNextTaskTime()); + merMemberInfoVo.setLastPayTime(memberTotal.getLastPayTime()); + // 返回MerMemberInfoVo对象 return merMemberInfoVo; } /** * 分页获取收银用户列表 + * * @param page * @param merCashMemberPageDto * @return */ @Override - public List<MerCashMemberPageVo> pageMerCashMember(Page page, MerCashMemberPageDto merCashMemberPageDto){ + public List<MerCashMemberPageVo> pageMerCashMember(Page page, MerCashMemberPageDto merCashMemberPageDto) { - List<MerCashMemberPageVo> merCashMemberPageVos = memberMapper.pageMerCashMember(page,merCashMemberPageDto); + List<MerCashMemberPageVo> merCashMemberPageVos = memberMapper.pageMerCashMember(page, merCashMemberPageDto); return merCashMemberPageVos; } /** * 更新会员绑定商户 + * * @param appMemberBindingDto */ @Override - public void updateMemberBinding(AppMemberBindingDto appMemberBindingDto){ + public void updateMemberBinding(AppMemberBindingDto appMemberBindingDto) { Member member = this.getByUserId(appMemberBindingDto.getUserId()); - if(member.getBindingFlag()==0){ + if (member.getBindingFlag() == 0) { member.setBindingTime(new Date()); } member.setBindingFlag(appMemberBindingDto.getBindingFlag()); @@ -407,48 +449,56 @@ /** * 获取会员基础档案 + * * @param userId * @return */ @Override - public MerMemberBasicFileVo getMerMemberBasicFile(Long userId){ + public MerMemberBasicFileVo getMerMemberBasicFile(Long userId) { MerMemberBasicFileVo merMemberBasicFileVo = new MerMemberBasicFileVo(); Member member = this.getByUserId(userId); BeanUtils.copyProperties(member, merMemberBasicFileVo); merMemberBasicFileVo.setNickName(member.getNickName()); merMemberBasicFileVo.setPhonenumber(member.getMobile()); merMemberBasicFileVo.setCreateTime(member.getCreateTime()); - List<MemberNurse> memberNurseList = memberNurseService.listByUserId(userId); - List<String> valueList = memberNurseList.stream().map(k->k.getNurse()).collect(Collectors.toList()); - merMemberBasicFileVo.setMemberNurse(valueList); + /*List<MemberNurse> memberNurseList = memberNurseService.listByUserId(userId); + List<String> valueList = memberNurseList.stream().map(k -> k.getNurse()).collect(Collectors.toList());*/ + String memberNurse = member.getMemberNurse(); + if(StringUtils.isNotBlank(memberNurse)){ + List<String> valueList = Arrays.asList(memberNurse.split(",")); + merMemberBasicFileVo.setMemberNurse(valueList); + } + List<MemberArchiveVo> achiveList = memberArchiveService.listMerVoByUserId(userId); + merMemberBasicFileVo.setAchiveList(achiveList); return merMemberBasicFileVo; } /** * 获取会员标签 + * * @param userId * @return */ @Override - public List<MerMemberTagVo> getMerMemberTags(Long userId){ + public List<MerMemberTagVo> getMerMemberTags(Long userId) { Member member = this.getByUserId(userId); String userTags = member.getUserTags(); String[] userTagsArr = null; - if(StringUtils.isNotBlank(userTags)){ + if (StringUtils.isNotBlank(userTags)) { userTagsArr = userTags.split(","); } List<SysTag> sysTagsList = remoteConfigService.listSysTag(1).getData(); List<MerMemberTagVo> merMemberTagVoList = new ArrayList<>(); MerMemberTagVo merMemberTagVo; String tagName; - if(sysTagsList!=null&&!sysTagsList.isEmpty()){ - for(SysTag sysTag : sysTagsList){ + if (sysTagsList != null && !sysTagsList.isEmpty()) { + for (SysTag sysTag : sysTagsList) { merMemberTagVo = new MerMemberTagVo(); tagName = sysTag.getTagName(); merMemberTagVo.setTagName(tagName); - if(userTagsArr!=null && ArrayUtils.contains(userTagsArr, tagName)){ + if (userTagsArr != null && ArrayUtils.contains(userTagsArr, tagName)) { merMemberTagVo.setSelectFlag(1); - }else{ + } else { merMemberTagVo.setSelectFlag(0); } merMemberTagVoList.add(merMemberTagVo); @@ -459,15 +509,16 @@ /** * 编辑会员标签 + * * @param merMemberTagEditDto */ @Override - public void editMerMemberTags(MerMemberTagEditDto merMemberTagEditDto){ + public void editMerMemberTags(MerMemberTagEditDto merMemberTagEditDto) { Member member = this.getByUserId(merMemberTagEditDto.getMemberUserId()); List<String> userTags = merMemberTagEditDto.getUserTags(); StringJoiner sj = new StringJoiner(","); - if(userTags!=null&&!userTags.isEmpty()){ - for(String str : userTags){ + if (userTags != null && !userTags.isEmpty()) { + for (String str : userTags) { sj.add(str); } } @@ -478,17 +529,21 @@ /** * 添加会员 + * * @param merMemberAddDto */ @Override - public void addMerMember(MerMemberAddDto merMemberAddDto){ - String phonenumber = merMemberAddDto.getPhonenumber(); - Member oldMember = this.getByMobile(phonenumber); - if(oldMember!=null){ + public void addMerMember(MerMemberAddDto merMemberAddDto) { + String phoneNumber = merMemberAddDto.getPhonenumber(); + Member oldMember = this.getByMobile(phoneNumber); + // Check if the member already exists + if (oldMember != null) { throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE); } - SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData(); - if(sysUser==null){ + // Get the sysUser by mobile number + SysUser sysUser = sysUserService.getSysUserByMobile(phoneNumber).getData(); + // If sysUser does not exist, create a new one + if (sysUser == null) { String memberId = IdUtils.simpleUUID(); sysUser = new SysUser(); sysUser.setUserName(memberId); @@ -497,8 +552,9 @@ sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); String password = "hongruitang"; sysUser.setPassword(SecurityUtils.encryptPassword(password)); - log.debug("sysUser"+sysUser.toString()); + log.debug("sysUser" + sysUser.toString()); sysUser = sysUserService.registerUser(sysUser).getData(); + // Create a new member Member member = new Member(); String memberNo = createMemberNo(); member.setMemberNo(memberNo); @@ -508,7 +564,7 @@ member.setNickName(merMemberAddDto.getNickName()); member.setRealName(merMemberAddDto.getNickName()); member.setGender(merMemberAddDto.getGender()); - member.setMobile(phonenumber); + member.setMobile(phoneNumber); member.setReferrer(merMemberAddDto.getReferrer()); member.setBirthday(merMemberAddDto.getBirthday()); member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); @@ -517,29 +573,29 @@ member.setMiniOpenid(null); member.setBindingFlag(1); member.setBindingTime(new Date()); + // Get shop information and set it to the member Shop shop = remoteShopService.getShop(merMemberAddDto.getShopId()).getData(); member.setRelationShopName(shop.getShopName()); member.setCustomerSource("商户添加"); member.setCreateTime(new Date()); - log.info("member-----------------"+member.toString()); + // Save the member and initialize member total this.saveOrUpdate(member); initMemberTotal(memberId); } - - } /** * 编辑会员 + * * @param merMemberEditDto */ @Override - public void editMerMember(MerMemberEditDto merMemberEditDto){ + public void editMerMember(MerMemberEditDto merMemberEditDto) { Member member = this.getByUserId(merMemberEditDto.getEditUserId()); - if(!member.getMobile().equals(merMemberEditDto.getPhonenumber())){ + if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) { Member memberOld = getByMobile(merMemberEditDto.getPhonenumber()); - if(memberOld!=null){ + if (memberOld != null) { throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE); } } @@ -552,7 +608,7 @@ member.setBirthday(merMemberEditDto.getBirthday()); member.setUpdateUserId(merMemberEditDto.getUserId()); member.setUpdateTime(new Date()); - log.info("member-----------------"+member.toString()); + log.info("member-----------------" + member.toString()); this.saveOrUpdate(member); SysUser sysUser = new SysUser(); sysUser.setUserId(merMemberEditDto.getEditUserId()); @@ -561,12 +617,11 @@ } /** - * * @param mobile * @return */ @Override - public Member getByMobile(String mobile){ + public Member getByMobile(String mobile) { LambdaQueryWrapper<Member> queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(Member::getDelFlag, 0).eq(Member::getMobile, mobile); Member member = this.getOne(queryWrapper); @@ -575,27 +630,28 @@ /** * 更新用户商品类型 + * * @param appMemberGoodsTypeDto */ @Override - public void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto){ + public void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto) { Member member = this.getByUserId(appMemberGoodsTypeDto.getUserId()); HashSet<String> goodsTypeSet = appMemberGoodsTypeDto.getGoodsTypeSet(); - if(member!=null){ + if (member != null) { String goodsType = member.getGoodsType(); Boolean change = false; - for(String str : goodsTypeSet){ - if(goodsType != null){ - if(!goodsType.contains(str)){ + for (String str : goodsTypeSet) { + if (goodsType != null) { + if (!goodsType.contains(str)) { goodsType = goodsType + "," + str; change = true; } - }else{ + } else { goodsType = str; change = true; } } - if(change){ + if (change) { member.setGoodsType(goodsType); this.saveOrUpdate(member); } @@ -605,10 +661,11 @@ /** * 订单创建新用户 + * * @param member */ @Override - public void createNewMember(Member member){ + public void createNewMember(Member member) { String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setDelFlag(0); @@ -622,10 +679,11 @@ /** * 生成会员统计 + * * @param memberId * @return */ - private void initMemberTotal(String memberId){ + private void initMemberTotal(String memberId) { MemberTotal memberTotal = new MemberTotal(); memberTotal.setMemberId(memberId); memberTotal.setDelFlag(0); @@ -648,65 +706,67 @@ /** * 生成会员编号 + * * @return */ - private String createMemberNo(){ + private String createMemberNo() { int memberTotal = memberMapper.selectCount(new LambdaQueryWrapper<Member>()); - String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal+1)); + String memberNo = CodeFactoryUtil.getMemberNo(Long.valueOf(memberTotal + 1)); return memberNo; } /** * 平台分页获取会员列表 + * * @param page * @param merMemberPageDto * @return */ @Override - public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ + public List<MgtMemberPageVo> pageMgtMember(Page page, MgtMemberPageDto merMemberPageDto) { List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); Date nowDay = new Date(); - if(merMemberPageDto.getActivenessId()!=null){ + if (merMemberPageDto.getActivenessId() != null) { //处理活跃度筛选 activenessList.stream() .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())) .findFirst() .ifPresent(activeness -> { - merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getEndDay()))); - merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getStartDay()))); + merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()))); + merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()))); }); } //处理标签为正则表达 - if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){ - merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|")); + if (StringUtils.isNotBlank(merMemberPageDto.getMemberTags())) { + merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",", "|")); } //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); //处理活跃度返回 - if(memberPageVoList!=null&&!memberPageVoList.isEmpty()){ - if(activenessList!=null&&!activenessList.isEmpty()){ + if (memberPageVoList != null && !memberPageVoList.isEmpty()) { + if (activenessList != null && !activenessList.isEmpty()) { //生成活跃度时间段列表 List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>(); MgtActivenessJudgeVo mgtActivenessJudgeVo; - for(Activeness activeness : activenessList){ + for (Activeness activeness : activenessList) { mgtActivenessJudgeVo = new MgtActivenessJudgeVo(); - mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(),activeness.getEndDay())); - mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(),activeness.getStartDay()-1)); + mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay())); + mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1)); mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName()); } //活跃度赋值 Date lastPayTime; - for(MgtMemberPageVo mgtMemberPageVo : memberPageVoList){ + for (MgtMemberPageVo mgtMemberPageVo : memberPageVoList) { lastPayTime = mgtMemberPageVo.getLastPayTime(); StringJoiner sj = new StringJoiner(","); - if(lastPayTime!=null){ - for(MgtActivenessJudgeVo entity: mgtActivenessJudgeVoList){ - if(lastPayTime.compareTo(entity.getStartDay())>=0&&lastPayTime.compareTo(entity.getEndDay())<=0){ + if (lastPayTime != null) { + for (MgtActivenessJudgeVo entity : mgtActivenessJudgeVoList) { + if (lastPayTime.compareTo(entity.getStartDay()) >= 0 && lastPayTime.compareTo(entity.getEndDay()) <= 0) { sj.add(entity.getActivenessName()); } } - if(sj.length()>0){ + if (sj.length() > 0) { mgtMemberPageVo.setActiveness(sj.toString()); } } @@ -719,15 +779,16 @@ /** * 修改会员关联商户 + * * @param mgtMemberRelEditDto */ @Override - public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto){ - if(StringUtils.isNotBlank(mgtMemberRelEditDto.getMemberUserIds())){ + public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto) { + if (StringUtils.isNotBlank(mgtMemberRelEditDto.getMemberUserIds())) { Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData(); String memberUserIds = mgtMemberRelEditDto.getMemberUserIds(); String[] memberUserIdArr = memberUserIds.split(","); - for(String str : memberUserIdArr){ + for (String str : memberUserIdArr) { Member member = this.getByUserId(Long.valueOf(str)); member.setRelationShopId(shop.getShopId()); member.setRelationShopName(shop.getShopName()); @@ -743,14 +804,15 @@ /** * 删除会员关联商户 + * * @param mgtMemberRelDelDto */ @Override - public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto){ - if(StringUtils.isNotBlank(mgtMemberRelDelDto.getMemberUserIds())) { + public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto) { + if (StringUtils.isNotBlank(mgtMemberRelDelDto.getMemberUserIds())) { String memberUserIds = mgtMemberRelDelDto.getMemberUserIds(); String[] memberUserIdArr = memberUserIds.split(","); - for(String str : memberUserIdArr) { + for (String str : memberUserIdArr) { Member member = this.getByUserId(Long.valueOf(str)); member.setBindingFlag(0); member.setUpdateTime(new Date()); @@ -762,15 +824,16 @@ /** * 修改会员积分 + * * @param mgtMemberIntEditDto */ @Override - public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto){ - if(StringUtils.isNotBlank(mgtMemberIntEditDto.getMemberUserIds())) { + public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto) { + if (StringUtils.isNotBlank(mgtMemberIntEditDto.getMemberUserIds())) { String memberUserIds = mgtMemberIntEditDto.getMemberUserIds(); String[] memberUserIdArr = memberUserIds.split(","); MemberIntegralChangeDto memberIntegralChangeDto; - for(String str : memberUserIdArr) { + for (String str : memberUserIdArr) { memberIntegralChangeDto = new MemberIntegralChangeDto(); Member member = this.getByUserId(Long.valueOf(str)); memberIntegralChangeDto.setUserId(Long.valueOf(str)); @@ -785,13 +848,13 @@ } - /** * 会员积分变动 + * * @param memberIntegralChangeDto */ @Override - public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto){ + public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto) { MemberTotal memberTotal = memberTotalService.getById(memberIntegralChangeDto.getMemberId()); Integer recordType = memberIntegralChangeDto.getRecordType(); Integer changeType = memberIntegralChangeDto.getChangeType(); @@ -800,15 +863,15 @@ Integer usedIntegral = memberTotal.getUsedIntegral(); Integer useableIntegral = memberTotal.getUseableIntegral(); //变动统计 - if(changeType==1){ + if (changeType == 1) { totalIntegral = totalIntegral + integer; useableIntegral = useableIntegral + integer; memberTotal.setTotalIntegral(totalIntegral); memberTotal.setUseableIntegral(useableIntegral); - }else if(changeType==2){ + } else if (changeType == 2) { usedIntegral = usedIntegral + integer; useableIntegral = useableIntegral - integer; - if(useableIntegral<0){ + if (useableIntegral < 0) { throw new ServiceException(AppErrorConstant.INTEGRAL_USE_FAILED); } memberTotal.setTotalIntegral(totalIntegral); @@ -821,16 +884,16 @@ integralRecord.setDelFlag(0); integralRecord.setUserId(memberIntegralChangeDto.getUserId()); integralRecord.setChangeType(recordType); - if(changeType==1){ + if (changeType == 1) { integralRecord.setChangeIntegral(integer); - }else if(changeType==2){ - integralRecord.setChangeIntegral( 0-integer); + } else if (changeType == 2) { + integralRecord.setChangeIntegral(0 - integer); } integralRecord.setSurpIntegral(useableIntegral); integralRecord.setCreateTime(new Date()); integralRecord.setOrderId(memberIntegralChangeDto.getOrderId()); integralRecord.setOrderNo(memberIntegralChangeDto.getOrderNo()); - switch (recordType){ + switch (recordType) { case 1: integralRecord.setChangeReason("购物赠送"); break; @@ -848,16 +911,17 @@ /** * 平台获取会员信息 + * * @param userId * @return */ @Override - public MgtMemberGetVo getMgtMemberInfo(Long userId){ + public MgtMemberGetVo getMgtMemberInfo(Long userId) { MgtMemberGetVo mgtMemberGetVo = new MgtMemberGetVo(); Member member = this.getByUserId(userId); MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); - List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listVoByUserId(member.getUserId()); - if(memberArchiveVoList!=null&&!memberArchiveVoList.isEmpty()){ + List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listMgtVoByUserId(member.getUserId()); + if (memberArchiveVoList != null && !memberArchiveVoList.isEmpty()) { //去掉未完善信息 memberArchiveVoList.removeIf(o -> Objects.isNull(o.getFieldValue())); } @@ -867,7 +931,7 @@ mgtMemberGetVo.setRealName(member.getRealName()); mgtMemberGetVo.setNickName(member.getNickName()); mgtMemberGetVo.setMobile(member.getMobile()); - mgtMemberGetVo.setGender(member.getGender()==0 ? "男" : member.getGender()==1 ? "女" : null); + mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); mgtMemberGetVo.setBirthday(member.getBirthday()); mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); mgtMemberGetVo.setCreateTime(member.getCreateTime()); @@ -885,54 +949,54 @@ } /** - * @description 删除标签 - * @author jqs - * @date 2023/6/8 15:18 * @param memberTag - * @return void + * @return void + * @description 删除标签 + * @author jqs + * @date 2023/6/8 15:18 */ @Override - public void deleteMemberTag(String memberTag){ + public void deleteMemberTag(String memberTag) { memberMapper.deleteMemberTag(memberTag); } /** - * @description 通过发送类型获取userId - * @author jqs - * @date 2023/6/13 17:53 * @param sendType - * @return List<Long> + * @return List<Long> + * @description 通过发送类型获取userId + * @author jqs + * @date 2023/6/13 17:53 */ @Override - public List<Long> listIdBySendType(Integer sendType){ + public List<Long> listIdBySendType(Integer sendType) { //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 return memberMapper.listIdBySendType(sendType); } /** - * @description 通过ids获取用户简易返回 - * @author jqs - * @date 2023/6/16 11:06 * @param userIds - * @return List<MgtSimpleMemberVo> + * @return List<MgtSimpleMemberVo> + * @description 通过ids获取用户简易返回 + * @author jqs + * @date 2023/6/16 11:06 */ @Override - public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds){ + public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds) { return memberMapper.listSimpleVoByIds(userIds); } /** - * @description - * @author jqs - * @date 2023/6/16 12:41 * @param mgtUserIdByKeywordDto - * @return MgtUserIdByKeywordVo + * @return MgtUserIdByKeywordVo + * @description + * @author jqs + * @date 2023/6/16 12:41 */ @Override - public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto){ + public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto) { MgtUserIdByKeywordVo mgtUserIdByKeywordVo = new MgtUserIdByKeywordVo(); List<Long> userIdList = memberMapper.getUserIdByKeyword(mgtUserIdByKeywordDto); - if(userIdList!=null&&!userIdList.isEmpty()){ + if (userIdList != null && !userIdList.isEmpty()) { String userIdStr = userIdList.stream() .map(Object::toString) .collect(Collectors.joining(",")); @@ -942,14 +1006,14 @@ } /** - * @description boardMemberTotal * @param * @return MgtBulletinBoardVo + * @description boardMemberTotal * @author jqs34 * @date 2023/6/18 16:45 */ @Override - public MgtBulletinBoardVo boardMemberTotal(){ + public MgtBulletinBoardVo boardMemberTotal() { MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal()); mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday()); @@ -957,14 +1021,14 @@ } /** - * @description 会员人数统计 - * @author jqs - * @date 2023/6/19 15:26 * @param - * @return MgtTotalMemberTotalVo + * @return MgtTotalMemberTotalVo + * @description 会员人数统计 + * @author jqs + * @date 2023/6/19 15:26 */ @Override - public MgtTotalMemberTotalVo getTotalMemberTotal(MgtBaseShopDto mgtBaseShopDto){ + public MgtTotalMemberTotalVo getTotalMemberTotal(MgtBaseShopDto mgtBaseShopDto) { Date nowDay = DateUtils.getNowDate(); // 获取店铺ID Long shopId = mgtBaseShopDto.getShopId(); @@ -979,13 +1043,13 @@ mgtTotalMemberTotalVo.setAgeKey(ageKey); mgtTotalMemberTotalVo.setAgeValue(ageValue); // 获取不同护理类型的会员数 - List<MgtMapTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto); + List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto); if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } // 获取不同商品类型的会员数 - List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); + List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); mgtTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); @@ -997,29 +1061,29 @@ String actStartDate; String actEndDate; Integer count; - List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>(); - MgtMapTotalVo mgtMapTotalVo; + List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>(); + MgtMapIntTotalVo MgtMapIntTotalVo; // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 for (int i = 0; i < activenessList.size(); i++) { activeness = activenessList.get(i); actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate); - mgtMapTotalVo = new MgtMapTotalVo(); - mgtMapTotalVo.setMapKey(activeness.getActivenessName()); - mgtMapTotalVo.setMapValue(count); - mgtMapTotalVoList.add(mgtMapTotalVo); + MgtMapIntTotalVo = new MgtMapIntTotalVo(); + MgtMapIntTotalVo.setMapKey(activeness.getActivenessName()); + MgtMapIntTotalVo.setMapValue(count); + MgtMapIntTotalVoList.add(MgtMapIntTotalVo); } - mgtTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); + mgtTotalMemberTotalVo.setActivenessList(MgtMapIntTotalVoList); } //获取会员消费排名 - List<MgtMapTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto); + List<MgtMapIntTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto); if (memberPayList != null && memberPayList.size() > 0) { memberPayList = listRemoveNull(memberPayList); mgtTotalMemberTotalVo.setMemberPayList(memberPayList); } //获取来源渠道排名 - List<MgtMapTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto); + List<MgtMapIntTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto); if (customerSourceList != null && customerSourceList.size() > 0) { customerSourceList = listRemoveNull(customerSourceList); mgtTotalMemberTotalVo.setCustomerSourceList(customerSourceList); @@ -1030,36 +1094,36 @@ /** - * @description - * @author jqs - * @date 2023/6/20 11:42 * @param mgtActivityAgeDto - * @return List<Long> + * @return List<Long> + * @description + * @author jqs + * @date 2023/6/20 11:42 */ @Override - public List<Long> listUserIdByAge(MgtActivityAgeDto mgtActivityAgeDto){ + public List<Long> listUserIdByAge(MgtActivityAgeDto mgtActivityAgeDto) { List<Long> userIdList = memberMapper.listUserIdByAge(mgtActivityAgeDto); return userIdList; } /** - * @description 会员人数统计 - * @author jqs - * @date 2023/6/21 10:59 * @param mgtBasePlatformDto - * @return MgtPlTotalMemberTotalVo + * @return MgtPlTotalMemberTotalVo + * @description 会员人数统计 + * @author jqs + * @date 2023/6/21 10:59 */ @Override - public MgtPlTotalMemberTotalVo getPlTotalMemberTotal(MgtBasePlatformDto mgtBasePlatformDto){ + public MgtPlTotalMemberTotalVo getPlTotalMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) { Date nowDay = DateUtils.getNowDate(); //如果区域代码不为null获取对应的商户id - if(StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode())||StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())){ + if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) { MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtBasePlatformDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); - if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ + if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { List<Long> list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(",")) .map(Long::valueOf) .collect(Collectors.toList()); @@ -1069,10 +1133,10 @@ //获取基础统计 MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto); MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto); - if(mgtAgeTotalVo!=null){ + if (mgtAgeTotalVo != null) { plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal()); plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal()); - }else{ + } else { plTotalMemberTotalVo.setManTotal(0); plTotalMemberTotalVo.setWomenTotal(0); } @@ -1085,13 +1149,13 @@ plTotalMemberTotalVo.setAgeKey(ageKey); plTotalMemberTotalVo.setAgeValue(ageValue); // 获取不同调理类型的会员数 - List<MgtMapTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto); + List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto); if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } // 获取不同商品类型的会员数 - List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); + List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); plTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); @@ -1104,42 +1168,42 @@ String actStartDate; String actEndDate; Integer count; - List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>(); - MgtMapTotalVo mgtMapTotalVo; + List<MgtMapIntTotalVo> MgtMapIntTotalVoList = new ArrayList<>(); + MgtMapIntTotalVo MgtMapIntTotalVo; // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 for (int i = 0; i < activenessList.size(); i++) { activeness = activenessList.get(i); actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); count = memberMapper.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate); - if(StringUtils.isNotBlank(activeness.getActivenessName())){ - mgtMapTotalVo = new MgtMapTotalVo(); - mgtMapTotalVo.setMapKey(activeness.getActivenessName()); - mgtMapTotalVo.setMapValue(count); - mgtMapTotalVoList.add(mgtMapTotalVo); + if (StringUtils.isNotBlank(activeness.getActivenessName())) { + MgtMapIntTotalVo = new MgtMapIntTotalVo(); + MgtMapIntTotalVo.setMapKey(activeness.getActivenessName()); + MgtMapIntTotalVo.setMapValue(count); + MgtMapIntTotalVoList.add(MgtMapIntTotalVo); } } - plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); + plTotalMemberTotalVo.setActivenessList(MgtMapIntTotalVoList); } //获取会员消费排名 - List<MgtMapTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto); + List<MgtMapIntTotalVo> memberPayList = memberMapper.getPlTotalMemberRankPay(mgtBasePlatformDto); if (memberPayList != null && memberPayList.size() > 0) { memberPayList = listRemoveNull(memberPayList); plTotalMemberTotalVo.setMemberPayList(memberPayList); } //获取来源渠道排名 - List<MgtMapTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto); + List<MgtMapIntTotalVo> customerSourceList = memberMapper.getPlTotalMemberRankCustomerSource(mgtBasePlatformDto); if (customerSourceList != null && customerSourceList.size() > 0) { customerSourceList = listRemoveNull(customerSourceList); plTotalMemberTotalVo.setCustomerSourceList(customerSourceList); } //获取商铺会员排名 - List<MgtMapTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopMemberRankList = memberMapper.getPlTotalMemberRank(mgtBasePlatformDto); if (shopMemberRankList != null && shopMemberRankList.size() > 0) { shopMemberRankList = listRemoveNull(shopMemberRankList); plTotalMemberTotalVo.setShopMemberRankList(shopMemberRankList); } - List<MgtMapTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData(); + List<MgtMapIntTotalVo> memberGoodsRankList = remoteOrderService.listMemberGoodsRank(mgtBasePlatformDto).getData(); if (memberGoodsRankList != null && memberGoodsRankList.size() > 0) { memberGoodsRankList = listRemoveNull(memberGoodsRankList); plTotalMemberTotalVo.setMemberGoodsRankList(memberGoodsRankList); @@ -1148,42 +1212,42 @@ } /** - * @description 去除空字符串 - * @author jqs - * @date 2023/6/27 17:35 - * @param mgtMapTotalVos - * @return List<MgtMapTotalVo> + * @param MgtMapIntTotalVos + * @return List<MgtMapIntTotalVo> + * @description 去除空字符串 + * @author jqs + * @date 2023/6/27 17:35 */ - private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){ - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){ - mgtMapTotalVos.remove(i); + private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos) { + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) { + MgtMapIntTotalVos.remove(i); } } - return mgtMapTotalVos; + return MgtMapIntTotalVos; } /** - * @description 通过shopId获取userId - * @author jqs - * @date 2023/6/21 17:11 * @param shopIdList - * @return List<Long> + * @return List<Long> + * @description 通过shopId获取userId + * @author jqs + * @date 2023/6/21 17:11 */ @Override - public List<Long> listUserIdByShopId(List<Long> shopIdList){ + public List<Long> listUserIdByShopId(List<Long> shopIdList) { return memberMapper.listUserIdByShopId(shopIdList); } /** - * @description 通过shopId获取user统计 - * @author jqs - * @date 2023/6/21 17:19 * @param shopIdList - * @return MgtShopTotalMemberVo + * @return MgtShopTotalMemberVo + * @description 通过shopId获取user统计 + * @author jqs + * @date 2023/6/21 17:19 */ @Override - public MgtShopTotalMemberVo getUserTotalByShopId(List<Long> shopIdList){ + public MgtShopTotalMemberVo getUserTotalByShopId(List<Long> shopIdList) { MgtShopTotalMemberVo mgtShopTotalMemberVo = new MgtShopTotalMemberVo(); MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto(); mgtBasePlatformDto.setShopIdList(shopIdList); @@ -1199,4 +1263,67 @@ mgtShopTotalMemberVo.setAgeValue(ageValue); return mgtShopTotalMemberVo; } + + /** + * @param memberTotalChangeDto + * @return void + * @description 会员统计变动 + * @author jqs + * @date 2023/6/28 14:34 + */ + @Override + public void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto) { + Member member = this.getByUserId(memberTotalChangeDto.getUserId()); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + //积分变动 + if (memberTotalChangeDto.getChangeIntegral() != null) { + if (memberTotalChangeDto.getTypeIntegral() == 2) { + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() - memberTotalChangeDto.getChangeIntegral()); + memberTotal.setUsedIntegral(memberTotal.getUsedIntegral() + memberTotalChangeDto.getChangeIntegral()); + } else { + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getChangeIntegral()); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral() + memberTotalChangeDto.getChangeIntegral()); + } + } + //消费变动 + if (memberTotalChangeDto.getPayMoney() != null) { + memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); + memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() + 1); + memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); + memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); + } + //服务次数变动 + if (memberTotalChangeDto.getServiceCount() != null) { + if (memberTotalChangeDto.getTypeService() == 2) { + memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount()); + memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount()); + } else { + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount()); + memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount()); + } + } + //跟进时间 + if (memberTotalChangeDto.getNextTaskTime() != null) { + memberTotal.setNextTaskTime(memberTotalChangeDto.getNextTaskTime()); + } + //活动次数变动 + if (memberTotalChangeDto.getActivityTime() != null) { + memberTotal.setTotalActivityCount(memberTotal.getTotalActivityCount() + 1); + memberTotal.setLastActivityTime(memberTotalChangeDto.getActivityTime()); + } + //订单数量变动 + if (memberTotalChangeDto.getCycleOrderChange() != null) { + memberTotal.setTotalCycleOrder(memberTotal.getTotalCycleOrder() + memberTotalChangeDto.getCycleOrderChange()); + } + if (memberTotalChangeDto.getExperienceOrderChange() != null) { + memberTotal.setTotalExperienceOrder(memberTotal.getTotalExperienceOrder() + memberTotalChangeDto.getExperienceOrderChange()); + } + if (memberTotalChangeDto.getServiceOrderChange() != null) { + memberTotal.setTotalServiceOrder(memberTotal.getTotalServiceOrder() + memberTotalChangeDto.getServiceOrderChange()); + } + if (memberTotalChangeDto.getGoodsOrderChange() != null) { + memberTotal.setTotalGoodsOrder(memberTotal.getTotalGoodsOrder() + memberTotalChangeDto.getGoodsOrderChange()); + } + memberTotalService.saveOrUpdate(memberTotal); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java index 3d9fb1f..f12dce4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberTotalServiceImpl.java @@ -5,6 +5,7 @@ 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; /** @@ -19,65 +20,5 @@ public class MemberTotalServiceImpl extends ServiceImpl<MemberTotalMapper, MemberTotal> implements MemberTotalService { - /** - * @description 会员统计变动 - * @author jqs - * @date 2023/6/28 14:34 - * @param memberTotalChangeDto - * @return void - */ - @Override - public void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto){ - MemberTotal memberTotal = this.getById(memberTotalChangeDto.getMemberId()); - //积分变动 - if(memberTotalChangeDto.getChangeIntegral()!=null){ - if(memberTotalChangeDto.getTypeIntegral()==2){ - memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()-memberTotalChangeDto.getChangeIntegral()); - memberTotal.setUsedIntegral(memberTotal.getUsedIntegral()+memberTotalChangeDto.getChangeIntegral()); - }else{ - memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+memberTotalChangeDto.getChangeIntegral()); - memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+memberTotalChangeDto.getChangeIntegral()); - } - } - //消费变动 - if(memberTotalChangeDto.getPayMoney()!=null){ - memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); - memberTotal.setTotalPayCount(memberTotal.getTotalPayCount()+1); - memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); - memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); - } - //服务次数变动 - if(memberTotalChangeDto.getServiceCount()!=null){ - if(memberTotalChangeDto.getTypeService()==2){ - memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount()-memberTotalChangeDto.getServiceCount()); - memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount()+memberTotalChangeDto.getServiceCount()); - }else{ - memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+memberTotalChangeDto.getServiceCount()); - memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount()+memberTotalChangeDto.getServiceCount()); - } - } - //跟进时间 - if(memberTotalChangeDto.getNextTaskTime()!=null){ - memberTotal.setNextTaskTime(memberTotalChangeDto.getNextTaskTime()); - } - //活动次数变动 - if(memberTotalChangeDto.getActivityTime()!=null){ - memberTotal.setTotalActivityCount(memberTotal.getTotalActivityCount()+1); - memberTotal.setLastActivityTime(memberTotalChangeDto.getActivityTime()); - } - //订单数量变动 - if(memberTotalChangeDto.getCycleOrderChange()!=null){ - memberTotal.setTotalCycleOrder(memberTotal.getTotalCycleOrder()+memberTotalChangeDto.getCycleOrderChange()); - } - if(memberTotalChangeDto.getExperienceOrderChange()!=null){ - memberTotal.setTotalExperienceOrder(memberTotal.getTotalExperienceOrder()+memberTotalChangeDto.getExperienceOrderChange()); - } - if(memberTotalChangeDto.getServiceOrderChange()!=null){ - memberTotal.setTotalServiceOrder(memberTotal.getTotalServiceOrder()+memberTotalChangeDto.getServiceOrderChange()); - } - if(memberTotalChangeDto.getGoodsOrderChange()!=null){ - memberTotal.setTotalGoodsOrder(memberTotal.getTotalGoodsOrder()+memberTotalChangeDto.getGoodsOrderChange()); - } - this.saveOrUpdate(memberTotal); - } + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveFieldsService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveFieldsService.java index 4831c3e..e2ad335 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveFieldsService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveFieldsService.java @@ -3,6 +3,9 @@ import com.ruoyi.member.domain.dto.MgtArchiveFieldsEditDto; import com.ruoyi.member.domain.pojo.member.MemberArchiveFields; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.vo.MgtArchiveFieldsListVo; + +import java.util.List; /** * <p> @@ -14,6 +17,9 @@ */ public interface MemberArchiveFieldsService extends IService<MemberArchiveFields> { + + + /** * @description 编辑会员档案字段 * @author jqs @@ -22,4 +28,13 @@ * @return void */ void editMemberArchiveFields(MgtArchiveFieldsEditDto mgtArchiveFieldsEditDto); + + /** + * @description 平台获取档案字段 + * @author jqs + * @date 2023/6/30 9:39 + * @param + * @return List<MgtArchiveFieldsListVo> + */ + List<MgtArchiveFieldsListVo> listMgtArchiveFields(); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java index 08fb83b..a3ae8ab 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java @@ -17,9 +17,18 @@ public interface MemberArchiveService extends IService<MemberArchive> { /** - * 获取用户档案 + * 获取用户档案去除空信息 * @param userId * @return */ - List<MemberArchiveVo> listVoByUserId(Long userId); + List<MemberArchiveVo> listMgtVoByUserId(Long userId); + + /** + * @description + * @author jqs + * @date 2023/6/30 11:20 + * @param userId + * @return List<MemberArchiveVo> + */ + List<MemberArchiveVo> listMerVoByUserId(Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java index 78e4425..2c7f6b4 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java @@ -42,4 +42,14 @@ * @return MerVerifyCouponGetVo */ MerVerifyCouponGetVo sureVerifyCoupon(String memberCouponId); + + /** + * @description + * @author jqs + * @date 2023/6/29 11:43 + * @param userId + * @param couponId + * @return Integer + */ + Integer totalMemberCouponByUserAndCoupon(Long userId,String couponId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java index 5b89662..8f87bea 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java @@ -71,7 +71,7 @@ * @date 2023/5/4 23:55 * @version 1.0 */ - MerMemberInfoVo getMerMemberInfo(Long userId); + MerMemberInfoVo getMerMemberInfo( MerBaseGetDto merBaseGetDto); /** * 分页获取收银会员列表 @@ -266,4 +266,14 @@ * @return MgtShopTotalMemberVo */ MgtShopTotalMemberVo getUserTotalByShopId(List<Long> shopIdList); + + + /** + * @description 会员统计变动 + * @author jqs + * @date 2023/6/28 14:34 + * @param memberTotalChangeDto + * @return void + */ + void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java index 27f7ffe..5e6ee0a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberTotalService.java @@ -14,13 +14,6 @@ */ public interface MemberTotalService extends IService<MemberTotal> { - /** - * @description 会员统计变动 - * @author jqs - * @date 2023/6/28 14:34 - * @param memberTotalChangeDto - * @return void - */ - void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto); + } diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml index fbb33f3..9c12deb 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml @@ -253,4 +253,9 @@ AND tc.create_time <= #{param.createEndTime} </if> </select> + + <update id="updateCouponTotal"> + UPDATE t_coupon_total set send_count = send_count + #{sendTotal}, send_user_count = send_user_count + sendPerson WHERE coupon_id = #{couponId} + </update> + </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveFieldsMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveFieldsMapper.xml index 03e2108..580389f 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveFieldsMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveFieldsMapper.xml @@ -81,4 +81,17 @@ </foreach> </delete> + <select id="listMgtArchiveFields" resultType="com.ruoyi.member.domain.vo.MgtArchiveFieldsListVo"> + SELECT + id afId, + field_name fieldName, + required_flag requiredFlag, + field_sort fieldSort, + field_type fieldType, + input_tip inputTip, + option_values optionValues + FROM t_member_archive_fields + WHERE del_flag = 0 + ORDER BY field_sort DESC + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml index 1e489eb..0206624 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml @@ -66,7 +66,7 @@ </foreach> </delete> - <select id="listVoByUserId" resultType="com.ruoyi.member.domain.vo.MemberArchiveVo"> + <select id="listMgtVoByUserId" resultType="com.ruoyi.member.domain.vo.MemberArchiveVo"> SELECT tmaf.id fieldId, tmaf.field_name fieldName, @@ -77,4 +77,14 @@ ORDER BY tmaf.field_sort DESC </select> + <select id="listMerVoByUserId" resultType="com.ruoyi.member.domain.vo.MemberArchiveVo"> + SELECT + tmaf.id fieldId, + tmaf.field_name fieldName, + tma.field_value fieldValue + FROM t_member_archive_fields tmaf + LEFT JOIN t_member_archive tma ON tma.field_id = tmaf.id AND tma.user_id = #{userId} AND tma.del_flag = 0 + WHERE tmaf.del_flag = 0 + ORDER BY tmaf.field_sort DESC + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml index 7c853c7..2c579eb 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml @@ -161,9 +161,13 @@ tm.user_tags userTags, tm.goods_type goodsType FROM t_member tm + INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id WHERE tm.relation_shop_id = #{param.shopId} <if test="param.memberGender != null and param.memberGender != ''"> AND tm.gender = #{param.memberGender} + </if> + <if test="param.memberType != null and param.memberType != ''"> + AND FIND_IN_SET(#{param.memberType},tm.goods_type) > 0 </if> <if test="param.memberTag != null and param.memberTag != ''"> AND FIND_IN_SET(#{param.memberTag},tm.user_tags) > 0 @@ -173,6 +177,27 @@ </if> <if test="param.endMemberDate!=null and param.endMemberDate!=''"> AND tm.create_time <= #{param.endMemberDate} + </if> + <if test="param.memberFrom != null and param.memberFrom != ''"> + AND tm.customer_source = #{param.memberFrom} + </if> + <if test="param.taskStartDate!=null and param.taskStartDate!=''"> + AND tmt.next_task_time >= #{param.taskStartDate} + </if> + <if test="param.taskEndDate!=null and param.taskEndDate!=''"> + AND tmt.next_task_time <= #{param.taskEndDate} + </if> + <if test="param.surpNum != null and param.surpNum != ''"> + AND tmt.useable_service_count = #{param.surpNum} + </if> + <if test="param.memberNurse != null and param.memberNurse != ''"> + AND FIND_IN_SET(#{param.memberNurse},tm.member_nurse) > 0 + </if> + <if test="param.actStartDate!=null and param.actStartDate!=''"> + AND tmt.last_pay_time >= #{param.actStartDate} + </if> + <if test="param.actEndDate!=null and param.actEndDate!=''"> + AND tmt.last_pay_time <= #{param.actEndDate} </if> <if test="param.keyword != null and param.keyword != ''"> AND (tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.referrer LIKE CONCAT('%',#{param.keyword},'%')) @@ -381,7 +406,7 @@ </if> </select> - <select id="getTotalMemberTotalNurse" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getTotalMemberTotalNurse" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT member_nurse mapKey, COUNT(*) mapValue FROM ( SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse @@ -401,7 +426,7 @@ GROUP BY member_nurse </select> - <select id="getTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT goods_type mapKey, COUNT(*) mapValue FROM ( SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type @@ -438,7 +463,7 @@ </if> </select> - <select id="getTotalMemberRankPay" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getTotalMemberRankPay" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tm.nick_name mapKey, tmt.total_pay_count mapValue @@ -457,7 +482,7 @@ ORDER BY tmt.total_pay_count DESC LIMIT 15 </select> - <select id="getTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tm.customer_source mapKey, COUNT(tm.user_id) mapValue @@ -534,7 +559,7 @@ </if> </select> - <select id="getPlTotalMemberTotalNurse" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalMemberTotalNurse" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT member_nurse mapKey, COUNT(*) mapValue FROM ( SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(member_nurse, ',', numbers.n), ',', -1) member_nurse @@ -557,7 +582,7 @@ GROUP BY member_nurse </select> - <select id="getPlTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalMemberTotalGoodsType" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT goods_type mapKey, COUNT(*) mapValue FROM ( SELECT member_id, SUBSTRING_INDEX(SUBSTRING_INDEX(goods_type, ',', numbers.n), ',', -1) goods_type @@ -600,7 +625,7 @@ </if> </select> - <select id="getPlTotalMemberRankPay" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalMemberRankPay" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tm.nick_name mapKey, tmt.total_pay_count mapValue @@ -622,7 +647,7 @@ ORDER BY tmt.total_pay_count DESC LIMIT 15 </select> - <select id="getPlTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalMemberRankCustomerSource" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tm.customer_source mapKey, COUNT(tm.user_id) mapValue @@ -643,7 +668,7 @@ ORDER BY COUNT(tm.user_id) DESC LIMIT 15 </select> - <select id="getPlTotalMemberRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalMemberRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tm.relation_shop_name mapKey, COUNT(tm.user_id) mapValue diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java index f15ac5b..2c80808 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java @@ -2,17 +2,19 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.order.service.order.OrderService; +import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; /** @@ -66,11 +68,25 @@ * @author jqs * @date 2023/6/21 15:27 * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ @PostMapping("/listMemberGoodsRank") - public R<List<MgtMapTotalVo>> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto){ - List<MgtMapTotalVo> memberGoodsRankList = orderService.listMemberGoodsRank(mgtBasePlatformDto); + public R<List<MgtMapIntTotalVo>> listMemberGoodsRank(@RequestBody MgtBasePlatformDto mgtBasePlatformDto){ + List<MgtMapIntTotalVo> memberGoodsRankList = orderService.listMemberGoodsRank(mgtBasePlatformDto); return R.ok(memberGoodsRankList); } + + /** + * @description 获取用户未支付金额 + * @author jqs + * @date 2023/6/29 18:00 + * @param merBaseDto + * @return R<BigDecimal> + */ + @PostMapping("/getMemberUnpaidOrder") + public R<BigDecimal> getMemberUnpaidOrder(@RequestBody MerBaseDto merBaseDto){ + BigDecimal unpaidMoney = orderService.getMemberUnpaidOrder(merBaseDto); + return R.ok(unpaidMoney); + } + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyCouponDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyCouponDto.java index f8a5aed..3d821be 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyCouponDto.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyCouponDto.java @@ -1,6 +1,6 @@ package com.ruoyi.order.domain.dto; -import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import com.ruoyi.system.api.domain.dto.MerBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +12,7 @@ * @Version 1.0 */ @Data -public class MerVerifyCouponDto extends MgtBaseDto { +public class MerVerifyCouponDto extends MerBaseDto { @ApiModelProperty(value = "优惠券id") private String memberCouponId; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberConsumerGoodsTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberConsumerGoodsTotalVo.java new file mode 100644 index 0000000..d65ba76 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberConsumerGoodsTotalVo.java @@ -0,0 +1,28 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @ClassName MerMemberConsumerGoodsTotalVo + * @Description TODO + * @Author jqs + * @Date 2023/6/29 15:10 + * @Version 1.0 + */ +@Data +public class MerMemberConsumerGoodsTotalVo { + + @ApiModelProperty(value = "周期订单") + private Integer cycleOrder; + + @ApiModelProperty(value = "体验订单") + private Integer experienceOrder; + + @ApiModelProperty(value = "服务订单") + private Integer serviceOrder; + + @ApiModelProperty(value = "单品订单") + private Integer goodsOrder; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java index dfb8fce..23498a3 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java @@ -1,7 +1,7 @@ package com.ruoyi.order.domain.vo; import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -64,13 +64,13 @@ private BigDecimal[] orderMoneyValue; @ApiModelProperty(value = "商品类型数量") - private List<MgtMapTotalVo> goodsTypeTotalList; + private List<MgtMapIntTotalVo> goodsTypeTotalList; @ApiModelProperty(value = "商品类型金额") private List<MgtMapBigTotalVo> goodsTypeMoneyList; @ApiModelProperty(value = "活动次数排行") - private List<MgtMapTotalVo> activityRankList; + private List<MgtMapIntTotalVo> activityRankList; @ApiModelProperty(value = "活动次数排行") private List<MgtMapBigTotalVo> shopSalesRankList; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java index 7d29ede..e19d04a 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java @@ -1,7 +1,7 @@ package com.ruoyi.order.domain.vo; import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -64,7 +64,7 @@ private BigDecimal[] orderMoneyValue; @ApiModelProperty(value = "商品类型数量") - private List<MgtMapTotalVo> goodsTypeTotalList; + private List<MgtMapIntTotalVo> goodsTypeTotalList; @ApiModelProperty(value = "商品类型金额") private List<MgtMapBigTotalVo> goodsTypeMoneyList; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java index d7977f4..9e4e072 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalOrderTotalVo.java @@ -1,7 +1,7 @@ package com.ruoyi.order.domain.vo; import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -70,7 +70,7 @@ private BigDecimal[] orderMoneyValue; @ApiModelProperty(value = "商品类型数量") - private List<MgtMapTotalVo> goodsTypeTotalList; + private List<MgtMapIntTotalVo> goodsTypeTotalList; @ApiModelProperty(value = "商品类型金额") private List<MgtMapBigTotalVo> goodsTypeMoneyList; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ConsumerGoodsMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ConsumerGoodsMapper.java index 4a4799a..9fd8b51 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ConsumerGoodsMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ConsumerGoodsMapper.java @@ -1,13 +1,14 @@ package com.ruoyi.order.mapper.order; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.order.domain.dto.AppConsumerPageDto; import com.ruoyi.order.domain.dto.MerConsumerGoodsDto; import com.ruoyi.order.domain.dto.MerConsumerGoodsPageDto; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; +import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -51,4 +52,14 @@ * @return */ List<MerConsumerGoodsListVo> pageMerConsumerGoodsNum(Page page,@Param("param") MerConsumerGoodsPageDto merConsumerGoodsPageDto); + + /** + * @description 获取用户在商户 + * @author jqs + * @date 2023/6/29 15:13 + * @param userId + * @param shopId + * @return MerMemberConsumerGoodsTotalVo + */ + MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(@Param("userId") Long userId,@Param("shopId") Long shopId); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java index c1f0464..fcad0f5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java @@ -5,14 +5,11 @@ import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.vo.*; -import com.ruoyi.system.api.domain.dto.MgtActivityAgeDto; -import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; -import com.ruoyi.system.api.domain.dto.MgtBaseShopDto; -import com.ruoyi.system.api.domain.dto.MgtPlActivityAgeDto; +import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; @@ -166,7 +163,7 @@ /** * @description listTotalOrderTotal * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -175,7 +172,7 @@ /** * @description listTotalOrderTotalGoodsType * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -185,7 +182,7 @@ /** * @description listTotalOrderTotalGoodsRank * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -194,7 +191,7 @@ /** * @description listTotalOrderTotalOrderFrom * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -214,7 +211,7 @@ /** * @description listTotalActivityTotalGoodsType * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -224,7 +221,7 @@ /** * @description listTotalActivityTotal * @param mgtBaseShopDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -246,7 +243,7 @@ * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo */ - List<MgtMapTotalVo> getTotalActivityAgeRank(@Param("param")MgtActivityAgeDto mgtActivityAgeDto); + List<MgtMapIntTotalVo> getTotalActivityAgeRank(@Param("param")MgtActivityAgeDto mgtActivityAgeDto); /** * @description @@ -280,9 +277,9 @@ * @author jqs * @date 2023/6/21 15:27 * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listMemberGoodsRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listMemberGoodsRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** @@ -306,7 +303,7 @@ /** * @description listTotalOrderTotal * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -315,7 +312,7 @@ /** * @description listTotalOrderTotalGoodsType * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -325,7 +322,7 @@ /** * @description listTotalOrderTotalGoodsRank * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -334,7 +331,7 @@ /** * @description listTotalOrderTotalOrderFrom * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -353,7 +350,7 @@ /** * @description listTotalActivityTotalGoodsType * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -363,7 +360,7 @@ /** * @description listTotalActivityTotal * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -385,12 +382,12 @@ * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo */ - List<MgtMapTotalVo> getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto); + List<MgtMapIntTotalVo> getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto); /** * @description listPlTotalShopActivityRank * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -399,7 +396,7 @@ /** * @description listTotalActivityTotal * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -408,7 +405,7 @@ /** * @description listTotalActivityTotal * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @author jqs34 * @date 2023/6/19 22:48 */ @@ -431,4 +428,14 @@ * @return BigDecimal */ BigDecimal shopSalesTotal(@Param("param")MgtBaseShopDto mgtBaseShopDto); + + + /** + * @description 获取用户未支付金额 + * @author jqs + * @date 2023/6/29 18:00 + * @param merBaseDto + * @return BigDecimal + */ + BigDecimal getMemberUnpaidOrder(@Param("param")MerBaseDto merBaseDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java index 003aa9c..84e8d05 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java @@ -11,10 +11,15 @@ import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; +import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo; import com.ruoyi.order.mapper.order.ConsumerGoodsMapper; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.UserServiceRecordService; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto; +import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; +import com.ruoyi.system.api.service.RemoteMemberService; +import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -37,6 +42,13 @@ @Resource private UserServiceRecordService userServiceRecordService; + + @Resource + private RemoteMemberService remoteMemberService; + + @Resource + private RemoteShopService remoteShopService; + /** * 获取用户服务 * @param page @@ -74,12 +86,63 @@ List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ ConsumerGoods consumerGoods; + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); consumerGoods.setCycleNumFlag(1); consumerGoods.setServiceNum(merSureConsumerGoodsListDto.getServiceNum()); this.saveOrUpdate(consumerGoods); + //处理商品服务次数 + switch (consumerGoods.getGoodsType()) { + case 1: + cycleService = cycleService + consumerGoods.getServiceNum(); + break; + case 2: + serviceService = serviceService + consumerGoods.getServiceNum(); + break; + case 3: + experienceService = experienceService + consumerGoods.getServiceNum(); + break; + default: + break; + } } + //判断是否加人 + if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { + cyclePerson = 1; + } + if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { + servicePerson = 1; + } + if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { + experiencePerson = 1; + } + serviceCount = cycleService + serviceService + experienceService; + //更新商户和会员服务统计 + MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(merSureConsumerGoodsDto.getUserId()); + memberTotalChangeDto.setTypeService(1); + memberTotalChangeDto.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + shopTotalChangeDto.setShopId(merSureConsumerGoodsDto.getShopId()); + shopTotalChangeDto.setTypeCycleService(1); + shopTotalChangeDto.setCycleService(cycleService); + shopTotalChangeDto.setCyclePerson(cyclePerson); + shopTotalChangeDto.setTypeServiceService(1); + shopTotalChangeDto.setServiceService(serviceService); + shopTotalChangeDto.setServicePerson(servicePerson); + shopTotalChangeDto.setTypeExperienceService(1); + shopTotalChangeDto.setExperienceService(experienceService); + shopTotalChangeDto.setExperiencePerson(experiencePerson); + remoteShopService.changeShopTotal(shopTotalChangeDto); } } @@ -89,62 +152,118 @@ */ @Override public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ - List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); - if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ - ConsumerGoods consumerGoods; + List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); + if (goodsList != null && !goodsList.isEmpty()) { + ConsumerGoods goods; Integer serviceNum; Integer usedNum; Integer useNum; - Integer surpNum; + Integer surplusNum; Long shopId = null; Long userId = null; - String consumerGoodsNames = ""; - String consumerGoodsIds = ""; + String goodsNames = ""; + String goodsIds = ""; Integer serviceType = 1; - for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ - consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); - serviceNum = consumerGoods.getServiceNum(); - usedNum = consumerGoods.getUsedNum(); - surpNum = serviceNum - usedNum; - useNum = merSureConsumerGoodsListDto.getServiceNum(); - if(useNum>surpNum){ + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + //获取会员商品总数 + MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); + for (MerSureConsumerGoodsListDto goodsDto : goodsList) { + goods = this.getById(goodsDto.getConsumerGoodsId()); + serviceNum = goods.getServiceNum(); + usedNum = goods.getUsedNum(); + surplusNum = serviceNum - usedNum; + useNum = goodsDto.getServiceNum(); + //判断使用数量是否超过剩余数量 + if (useNum > surplusNum) { throw new ServiceException(AppErrorConstant.BEYOND_SURP_NUM); } - consumerGoods.setUsedNum(usedNum+useNum); - consumerGoods.setUseTime(new Date()); - if(consumerGoods.getUsedNum().equals(serviceNum)){ - consumerGoods.setServiceStatus(2); - consumerGoods.setCompleteTime(new Date()); + goods.setUsedNum(usedNum + useNum); + goods.setUseTime(new Date()); + //判断商品是否已使用完 + if (goods.getUsedNum().equals(serviceNum)) { + goods.setServiceStatus(2); + goods.setCompleteTime(new Date()); } - this.saveOrUpdate(consumerGoods); - shopId = consumerGoods.getShopId(); - userId= consumerGoods.getUserId(); - serviceType = consumerGoods.getGoodsType(); - if(StringUtils.isBlank(consumerGoodsIds)){ - consumerGoodsIds = consumerGoods.getConsumerGoodsId(); - }else{ - consumerGoodsIds = consumerGoodsIds + "," + consumerGoods.getConsumerGoodsId(); + this.saveOrUpdate(goods); + shopId = goods.getShopId(); + userId = goods.getUserId(); + serviceType = goods.getGoodsType(); + //拼接商品ID + if (StringUtils.isBlank(goodsIds)) { + goodsIds = goods.getConsumerGoodsId(); + } else { + goodsIds = goodsIds + "," + goods.getConsumerGoodsId(); } - if(StringUtils.isBlank(consumerGoodsNames)){ - consumerGoodsNames = consumerGoods.getGoodsName(); - }else{ - consumerGoodsNames = consumerGoodsNames + "、" + consumerGoods.getGoodsName(); + //拼接商品名称 + if (StringUtils.isBlank(goodsNames)) { + goodsNames = goods.getGoodsName(); + } else { + goodsNames = goodsNames + "、" + goods.getGoodsName(); + } + //处理商品服务次数 + switch (goods.getGoodsType()) { + case 1: + cycleService = cycleService + useNum; + break; + case 2: + serviceService = serviceService + useNum; + break; + case 3: + experienceService = experienceService + useNum; + break; + default: + break; } } - UserServiceRecord userServiceRecord = new UserServiceRecord(); - userServiceRecord.setCreateTime(new Date()); - userServiceRecord.setServiceType(serviceType); - userServiceRecord.setDelFlag(0); - userServiceRecord.setShopId(shopId); - userServiceRecord.setUserId(userId); - userServiceRecord.setConsumerGoodsIds(consumerGoodsIds); - userServiceRecord.setConsumerGoodsNames(consumerGoodsNames); - userServiceRecordService.saveOrUpdate(userServiceRecord); + //判断是否减人 + if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) { + cyclePerson = 1; + } + if (serviceService > 0 && memberGoodsTotal.getServiceOrder() - serviceService < 1) { + servicePerson = 1; + } + if (experienceService > 0 && memberGoodsTotal.getExperienceOrder() - experienceService < 1) { + experiencePerson = 1; + } + serviceCount = cycleService + serviceService + experienceService; + UserServiceRecord serviceRecord = new UserServiceRecord(); + serviceRecord.setCreateTime(new Date()); + serviceRecord.setServiceType(serviceType); + serviceRecord.setDelFlag(0); + serviceRecord.setShopId(shopId); + serviceRecord.setUserId(userId); + serviceRecord.setConsumerGoodsIds(goodsIds); + serviceRecord.setConsumerGoodsNames(goodsNames); + userServiceRecordService.saveOrUpdate(serviceRecord); + //更新商户和会员服务统计 + MemberTotalChangeDto memberTotalChange = new MemberTotalChangeDto(); + memberTotalChange.setUserId(merSureConsumerGoodsDto.getUserId()); + memberTotalChange.setTypeService(2); + memberTotalChange.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChange); + ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto(); + shopTotalChange.setShopId(merSureConsumerGoodsDto.getShopId()); + shopTotalChange.setTypeCycleService(2); + shopTotalChange.setCycleService(cycleService); + shopTotalChange.setCyclePerson(cyclePerson); + shopTotalChange.setTypeServiceService(2); + shopTotalChange.setServiceService(serviceService); + shopTotalChange.setServicePerson(servicePerson); + shopTotalChange.setTypeExperienceService(2); + shopTotalChange.setExperienceService(experienceService); + shopTotalChange.setExperiencePerson(experiencePerson); + remoteShopService.changeShopTotal(shopTotalChange); } } /** - * + * 分页获取用户服务次数列表 * @param page * @param merConsumerGoodsPageDto * @return @@ -154,4 +273,17 @@ List<MerConsumerGoodsListVo> merConsumerGoodsListVos = consumerGoodsMapper.pageMerConsumerGoodsNum(page, merConsumerGoodsPageDto); return merConsumerGoodsListVos; } + + /** + * @description 获取用户在商户 + * @author jqs + * @date 2023/6/29 15:13 + * @param userId + * @param shopId + * @return MerMemberConsumerGoodsTotalVo + */ + @Override + public MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId){ + return consumerGoodsMapper.getMemberConsumerGoodsTotalVo(userId, shopId); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index c9a3204..a6a1a73 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -529,9 +529,13 @@ */ @Override public MerVerifyOrderVo verifyOrder(String orderId) { + // 创建返回对象 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); + // 根据订单ID获取订单信息 Order order = this.getById(orderId); + // 根据订单ID获取订单商品列表 List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); + // 设置返回对象的属性值 merVerifyOrderVo.setOrderId(orderId); merVerifyOrderVo.setOrderNo(order.getOrderNo()); merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); @@ -546,10 +550,12 @@ merVerifyOrderVo.setPayTime(order.getPayTime()); merVerifyOrderVo.setUseTime(order.getUseTime()); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + // 根据订单用户ID获取用户信息 SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); merVerifyOrderVo.setCloseFlag(order.getCloseFlag()); + // 返回结果 return merVerifyOrderVo; } @@ -583,11 +589,19 @@ } String goodsIds = goodsIdSj.toString(); List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIds).getData(); - Map<String,Goods> goodsMap = goodsList.stream() + Map<String, Goods> goodsMap = goodsList.stream() .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); ConsumerGoods consumerGoods; String consumerGoodsId; Goods goods; + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = consumerGoodsService.getMemberConsumerGoodsTotalVo(order.getUserId(), order.getShopId()); for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { consumerGoods = new ConsumerGoods(); goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); @@ -611,7 +625,34 @@ consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoods.setSourceFrom(1); consumerGoodsService.save(consumerGoods); + //处理商品服务次数 + if (consumerGoods.getCycleNumFlag() == 1) { + switch (goods.getGoodsType()) { + case 1: + cycleService = cycleService + appUserOrderGoodsPageVo.getServiceNum(); + break; + case 2: + serviceService = serviceService + appUserOrderGoodsPageVo.getServiceNum(); + break; + case 3: + experienceService = experienceService + appUserOrderGoodsPageVo.getServiceNum(); + break; + default: + break; + } + } } + //判断是否加人 + if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { + cyclePerson = 1; + } + if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { + servicePerson = 1; + } + if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { + experiencePerson = 1; + } + serviceCount = cycleService + serviceService + experienceService; //生成返回 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); merVerifyOrderVo.setOrderId(orderId); @@ -631,18 +672,36 @@ SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); + //更新商户和会员服务统计 + MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(order.getUserId()); + memberTotalChangeDto.setTypeService(1); + memberTotalChangeDto.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + shopTotalChangeDto.setShopId(order.getShopId()); + shopTotalChangeDto.setTypeCycleService(1); + shopTotalChangeDto.setCycleService(cycleService); + shopTotalChangeDto.setCyclePerson(cyclePerson); + shopTotalChangeDto.setTypeServiceService(1); + shopTotalChangeDto.setServiceService(serviceService); + shopTotalChangeDto.setServicePerson(servicePerson); + shopTotalChangeDto.setTypeExperienceService(1); + shopTotalChangeDto.setExperienceService(experienceService); + shopTotalChangeDto.setExperiencePerson(experiencePerson); + remoteShopService.changeShopTotal(shopTotalChangeDto); return merVerifyOrderVo; } /** - * @description 确认核销优惠券 - * @author jqs - * @date 2023/6/28 11:26 * @param merVerifyCouponDto - * @return MerVerifyCouponVo + * @return MerVerifyCouponVo + * @description 确认核销优惠券 + * @author jqs + * @date 2023/6/28 11:26 */ @Override - public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto){ + public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); @@ -809,6 +868,10 @@ String orderNo = CodeFactoryUtil.getShopOrderNo(); OrderGoods orderGoods; String orderGoodsId; + BigDecimal cycleMoney = new BigDecimal("0.00"); + BigDecimal experienceMoney = new BigDecimal("0.00"); + BigDecimal serviceMoney = new BigDecimal("0.00"); + BigDecimal goodsMoney = new BigDecimal("0.00"); for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { goodsId = appBuyGoodsDto.getGoodsId(); memberCouponId = appBuyGoodsDto.getMemberCouponId(); @@ -877,6 +940,22 @@ orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); orderGoodsService.save(orderGoods); + switch(orderGoods.getGoodsType()){ + case 1: + cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney()); + break; + case 2: + serviceMoney = serviceMoney.add(orderGoods.getGoodsReceivableMoney()); + break; + case 3: + experienceMoney = experienceMoney.add(orderGoods.getGoodsReceivableMoney()); + break; + case 4: + goodsMoney = goodsMoney.add(orderGoods.getGoodsReceivableMoney()); + break; + default: + break; + } } //创建订单 Order order = new Order(); @@ -951,6 +1030,13 @@ appMemberBindingDto.setBindingFlag(1); remoteMemberService.updateMemberBinding(appMemberBindingDto); } + ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + shopTotalChangeDto.setShopId(order.getShopId()); + shopTotalChangeDto.setCycleMoney(cycleMoney); + shopTotalChangeDto.setServiceMoney(serviceMoney); + shopTotalChangeDto.setExperienceMoney(experienceMoney); + shopTotalChangeDto.setGoodsMoney(goodsMoney); + remoteShopService.changeShopTotal(shopTotalChangeDto); } @@ -1374,53 +1460,53 @@ public MgtTotalOrderTotalVo getTotalOrderTotal(MgtBaseShopDto mgtBaseShopDto) { MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getTotalOrderTotalOrderFrom(mgtBaseShopDto); //MgtTotalOrderTotalVo mgtTotalOrderTotalVoGoodsType = orderMapper.getTotalOrderTotalGoodsType(mgtBaseShopDto); - List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto); - if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { - String[] orderTotalKey = new String[mgtMapTotalVos.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); - orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); - orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto); + if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { + String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; + Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); + orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); } mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); } //获取商品分类销售数据 - List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto); - List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalOrderTotalGoodsType(mgtBaseShopDto); + List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); - if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { - MgtMapTotalVo mgtMapTotalVo; + if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { + MgtMapIntTotalVo MgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { - mgtMapTotalVo = new MgtMapTotalVo(); + for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { + MgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); - if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { - mgtMapTotalVo.setMapKey("周期"); + MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { + MgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); - mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { - mgtMapTotalVo.setMapKey("服务"); + mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { + MgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); - mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { - mgtMapTotalVo.setMapKey("体验"); + mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { + MgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); - mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { - mgtMapTotalVo.setMapKey("单品"); + mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { + MgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } - goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeTotalList.add(MgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -1442,35 +1528,35 @@ } /** - * @param mgtMapTotalVos - * @return List<MgtMapTotalVo> + * @param MgtMapIntTotalVos + * @return List<MgtMapIntTotalVo> * @description 去除空字符串 * @author jqs * @date 2023/6/27 17:35 */ - private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos) { - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - if (StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())) { - mgtMapTotalVos.remove(i); + private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos) { + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) { + MgtMapIntTotalVos.remove(i); } } - return mgtMapTotalVos; + return MgtMapIntTotalVos; } /** - * @param mgtMapTotalVos - * @return List<MgtMapTotalVo> + * @param MgtMapIntTotalVos + * @return List<MgtMapIntTotalVo> * @description 去除空字符串 * @author jqs * @date 2023/6/27 17:35 */ - private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> mgtMapTotalVos) { - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - if (StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())) { - mgtMapTotalVos.remove(i); + private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> MgtMapIntTotalVos) { + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + if (StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())) { + MgtMapIntTotalVos.remove(i); } } - return mgtMapTotalVos; + return MgtMapIntTotalVos; } /** @@ -1485,9 +1571,9 @@ //获取基础统计 MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto); //获取商品分类销售数据 - List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); - if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { - List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); + if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { + List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); totalActivityTotalVo.setCycleTotal(0); totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); @@ -1496,49 +1582,49 @@ totalActivityTotalVo.setExperienceTotal(0); totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - MgtMapTotalVo mgtMapTotalVo; + MgtMapIntTotalVo MgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { - mgtMapTotalVo = new MgtMapTotalVo(); + for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { + MgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); - if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { - mgtMapTotalVo.setMapKey("周期"); + MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { + MgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); - totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { - mgtMapTotalVo.setMapKey("服务"); + totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { + MgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); - totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { - mgtMapTotalVo.setMapKey("体验"); + totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { + MgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); - totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { - mgtMapTotalVo.setMapKey("单品"); + totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { + MgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } - goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeTotalList.add(MgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); } //获取订单分布 - List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); - if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { - String[] orderTotalKey = new String[mgtMapTotalVos.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); - orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); - orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); + if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { + String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; + Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); + orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); } totalActivityTotalVo.setOrderTotalKey(orderTotalKey); totalActivityTotalVo.setOrderTotalValue(orderTotalValue); @@ -1560,17 +1646,17 @@ mgtActivityAgeDto.setUserIds(userIds); userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); mgtActivityAgeDto.setUserIds(userIds); - List<MgtMapTotalVo> ageRankList = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); + List<MgtMapIntTotalVo> ageRankList = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); ageRankList = listRemoveNull(ageRankList); MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo(); String[] activityAgeKey = new String[ageRankList.size()]; Integer[] activityAgeValue = new Integer[ageRankList.size()]; if (!ageRankList.isEmpty()) { - MgtMapTotalVo mgtMapTotalVo; + MgtMapIntTotalVo MgtMapIntTotalVo; for (int i = 0; i < ageRankList.size(); i++) { - mgtMapTotalVo = ageRankList.get(i); - activityAgeKey[i] = mgtMapTotalVo.getMapKey(); - activityAgeValue[i] = mgtMapTotalVo.getMapValue(); + MgtMapIntTotalVo = ageRankList.get(i); + activityAgeKey[i] = MgtMapIntTotalVo.getMapKey(); + activityAgeValue[i] = MgtMapIntTotalVo.getMapValue(); } } totalActivityTotalVo.setActivityAgeKey(activityAgeKey); @@ -1600,13 +1686,13 @@ /** * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> * @description * @author jqs * @date 2023/6/21 15:26 */ @Override - public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { + public List<MgtMapIntTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto) { return orderMapper.listMemberGoodsRank(mgtBasePlatformDto); } @@ -1681,23 +1767,23 @@ mgtBasePlatformDto.setShopIdList(shopIdList); //获取基础统计 MgtTotalOrderTotalVo mgtTotalOrderTotalVo = orderMapper.getPlTotalOrderTotalOrderFrom(mgtBasePlatformDto); - List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); - if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { - String[] orderTotalKey = new String[mgtMapTotalVos.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); - orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); - orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto); + if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { + String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; + Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); + orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); } mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey); mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue); mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue); } //获取商品分类销售数据 - List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); - List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalOrderTotalGoodsType(mgtBasePlatformDto); + List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); mgtTotalOrderTotalVo.setCycleTotal(0); mgtTotalOrderTotalVo.setCycleMoney(BigDecimal.ZERO); @@ -1705,35 +1791,35 @@ mgtTotalOrderTotalVo.setServiceMoney(BigDecimal.ZERO); mgtTotalOrderTotalVo.setExperienceTotal(0); mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO); - if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { - MgtMapTotalVo mgtMapTotalVo; + if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { + MgtMapIntTotalVo MgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { - mgtMapTotalVo = new MgtMapTotalVo(); + for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { + MgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); - if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { - mgtMapTotalVo.setMapKey("周期"); + MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { + MgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); - mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { - mgtMapTotalVo.setMapKey("服务"); + mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { + MgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); - mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { - mgtMapTotalVo.setMapKey("体验"); + mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { + MgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); - mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { - mgtMapTotalVo.setMapKey("单品"); + mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { + MgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } - goodsTypeTotalList.add(mgtMapTotalVo); + goodsTypeTotalList.add(MgtMapIntTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); @@ -1783,8 +1869,8 @@ //获取基础统计 MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto); //获取商品分类销售数据 - List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto); - List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto); + List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); totalActivityTotalVo.setCycleTotal(0); totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); @@ -1792,32 +1878,32 @@ totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); totalActivityTotalVo.setExperienceTotal(0); totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); - if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { - MgtMapTotalVo mgtMapTotalVo; + if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) { + MgtMapIntTotalVo MgtMapIntTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 - for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { - mgtMapTotalVo = new MgtMapTotalVo(); + for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) { + MgtMapIntTotalVo = new MgtMapIntTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); - mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); - if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")) { - mgtMapTotalVo.setMapKey("周期"); + MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()); + if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) { + MgtMapIntTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); - totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")) { - mgtMapTotalVo.setMapKey("服务"); + totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) { + MgtMapIntTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); - totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")) { - mgtMapTotalVo.setMapKey("体验"); + totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) { + MgtMapIntTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); - totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); - totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); - } else if (mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")) { - mgtMapTotalVo.setMapKey("单品"); + totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()); + totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond())); + } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) { + MgtMapIntTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } } @@ -1825,15 +1911,15 @@ totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); } //获取订单分布 - List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); - if (mgtMapTotalVos != null && mgtMapTotalVos.size() > 0) { - String[] orderTotalKey = new String[mgtMapTotalVos.size()]; - Integer[] orderTotalValue = new Integer[mgtMapTotalVos.size()]; - BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalVos.size()]; - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - orderTotalKey[i] = mgtMapTotalVos.get(i).getMapKey(); - orderTotalValue[i] = mgtMapTotalVos.get(i).getMapValueFirst(); - orderMoneyValue[i] = mgtMapTotalVos.get(i).getMapValueSecond(); + List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto); + if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) { + String[] orderTotalKey = new String[MgtMapIntTotalVos.size()]; + Integer[] orderTotalValue = new Integer[MgtMapIntTotalVos.size()]; + BigDecimal[] orderMoneyValue = new BigDecimal[MgtMapIntTotalVos.size()]; + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + orderTotalKey[i] = MgtMapIntTotalVos.get(i).getMapKey(); + orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst(); + orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond(); } totalActivityTotalVo.setOrderTotalKey(orderTotalKey); totalActivityTotalVo.setOrderTotalValue(orderTotalValue); @@ -1889,17 +1975,17 @@ mgtActivityAgeDto.setAgeType(mgtPlActivityAgeDto.getAgeType()); userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); mgtPlActivityAgeDto.setUserIds(userIds); - List<MgtMapTotalVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); + List<MgtMapIntTotalVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); ageRankList = listRemoveNull(ageRankList); MgtPlTotalActivityTotalVo plTotalActivityTotalVo = new MgtPlTotalActivityTotalVo(); String[] activityAgeKey = new String[ageRankList.size()]; Integer[] activityAgeValue = new Integer[ageRankList.size()]; if (!ageRankList.isEmpty()) { - MgtMapTotalVo mgtMapTotalVo; + MgtMapIntTotalVo MgtMapIntTotalVo; for (int i = 0; i < ageRankList.size(); i++) { - mgtMapTotalVo = ageRankList.get(i); - activityAgeKey[i] = mgtMapTotalVo.getMapKey(); - activityAgeValue[i] = mgtMapTotalVo.getMapValue(); + MgtMapIntTotalVo = ageRankList.get(i); + activityAgeKey[i] = MgtMapIntTotalVo.getMapKey(); + activityAgeValue[i] = MgtMapIntTotalVo.getMapValue(); } } plTotalActivityTotalVo.setActivityAgeKey(activityAgeKey); @@ -1941,4 +2027,17 @@ merVerifyCouponVo.setGoodsList(merCouponGoodsList); return merVerifyCouponVo; } + + /** + * @description 获取用户未支付金额 + * @author jqs + * @date 2023/6/29 18:00 + * @param merBaseDto + * @return BigDecimal + */ + @Override + public BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto){ + BigDecimal unpaidMoney = orderMapper.getMemberUnpaidOrder(merBaseDto); + return unpaidMoney; + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java index 012242b..731254b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java @@ -1,15 +1,16 @@ package com.ruoyi.order.service.order; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.domain.dto.AppConsumerPageDto; import com.ruoyi.order.domain.dto.MerConsumerGoodsDto; import com.ruoyi.order.domain.dto.MerConsumerGoodsPageDto; import com.ruoyi.order.domain.dto.MerSureConsumerGoodsDto; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; -import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; +import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo; import java.util.List; @@ -57,4 +58,14 @@ * @return */ List<MerConsumerGoodsListVo> pageMerConsumerGoodsNum(Page page, MerConsumerGoodsPageDto merConsumerGoodsPageDto); + + /** + * @description 获取用户在商户 + * @author jqs + * @date 2023/6/29 15:13 + * @param userId + * @param shopId + * @return MerMemberConsumerGoodsTotalVo + */ + MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java index dbb0fb8..46c747c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java @@ -9,8 +9,9 @@ import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; +import java.math.BigDecimal; import java.util.List; /** @@ -238,9 +239,9 @@ * @author jqs * @date 2023/6/21 15:27 * @param mgtBasePlatformDto - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto); /** * @description 获取平台商户数据统计 @@ -286,4 +287,13 @@ * @return MerVerifyCouponVo */ MerVerifyCouponVo verifyCoupon(String verifyCode); + + /** + * @description 获取用户未支付金额 + * @author jqs + * @date 2023/6/29 18:00 + * @param userId + * @return BigDecimal + */ + BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml index f7b6009..18f9b70 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml @@ -193,4 +193,13 @@ AND tcg.goods_type = #{param.goodsType} AND tcg.cycle_num_flag = 1 ORDER BY tcg.create_time DESC </select> + + <select id="getMemberConsumerGoodsTotalVo" resultType="com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo"> + SELECT + SUM(CASE WHEN goods_type = 1 THEN service_num - used_num ELSE 0 END) cycleOrder, + SUM(CASE WHEN goods_type = 3 THEN service_num - used_num ELSE 0 END) experienceOrder, + SUM(CASE WHEN goods_type = 2 THEN service_num - used_num ELSE 0 END) serviceOrder + FROM t_consumer_goods tcg + WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 93ebf10..6454663 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -774,8 +774,8 @@ <select id="listTotalActivityTotal" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, - COUNT(DISTINCT toc.order_id) AS mapValueFirst, - SUM(toc.order_money) AS mapValueSecond, + COUNT(DISTINCT order_id) AS mapValueFirst, + SUM(order_money) AS mapValueSecond, FROM t_order WHERE @@ -803,7 +803,7 @@ </if> </select> - <select id="getTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT user_id) AS mapValue @@ -908,10 +908,10 @@ HAVING DATEDIFF(t2.pay_time, t1.pay_time) > 30) AS temp </select> - <select id="listMemberGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listMemberGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT tog.goods_name mapKey, - COUNT(DISTINCT toc.userId) mapValue + COUNT(DISTINCT toc.user_id) mapValue FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 @@ -928,7 +928,7 @@ AND toc.create_time <= #{param.endDate} </if> GROUP BY tog.goods_name - ORDER BY COUNT(DISTINCT toc.userId) DESC LIMIT 15 + ORDER BY COUNT(DISTINCT toc.user_id) DESC LIMIT 15 </select> @@ -1143,7 +1143,7 @@ </if> </select> - <select id="getPlTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="getPlTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT user_id) AS mapValue @@ -1220,7 +1220,14 @@ SELECT SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END) unHandleOrder, SUM(pay_money) shopTurnover - FROM t.order + FROM t_order WHERE del_flag = 0 AND shopId = #{shopId} </select> + + <select id="getMemberUnpaidOrder" resultType="java.math.BigDecimal"> + SELECT IFNULL(SUM(receivable_money-pay_money),0) + FROM t_order + WHERE del_flag = 0 AND user_id = #{param.userId} AND shop_id = #{param.shopId} AND order_status IN (1,2) AND close_flag = 0 + </select> + </mapper> diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java index 7efb9b5..b875415 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java @@ -5,14 +5,15 @@ import com.ruoyi.shop.domain.pojo.shop.ShopRelUser; import com.ruoyi.shop.domain.pojo.shop.ShopStaff; import com.ruoyi.shop.service.shop.*; +import com.ruoyi.shop.service.task.MemberTaskService; import com.ruoyi.shop.service.task.ShopTaskService; -import com.ruoyi.system.api.domain.dto.*; +import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; +import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; +import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; +import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.poji.sys.SysUser; -import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; -import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; -import com.ruoyi.system.api.domain.vo.ShopRelUserVo; +import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.QwH5LoginVo; import com.ruoyi.system.api.model.QwUserDetailDto; import com.ruoyi.system.api.service.RemoteUserService; @@ -57,6 +58,8 @@ @Resource private ShopTotalService shopTotalService; + @Resource + private MemberTaskService memberTaskService; /** * 企业微信H5登录 @@ -202,4 +205,19 @@ shopTotalService.changeShopTotal(shopTotalChangeDto); return R.ok(); } + + /** + * @description 获取最近任务 + * @author jqs + * @date 2023/6/29 18:25 + * @param userId + * @return R<MemberTaskSimpleVo> + */ + @PostMapping("/getLastMemberTask") + public R<MemberTaskSimpleVo> getLastMemberTask(@RequestBody Long userId) + { + MemberTaskSimpleVo taskSimpleVo = memberTaskService.getLastMemberTask(userId); + return R.ok(taskSimpleVo); + } + } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopTotal.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopTotal.java index 346e910..0480c25 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopTotal.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopTotal.java @@ -60,8 +60,8 @@ /** * 总体验订单数 */ - @TableField("tolta_experience_order") - private Integer toltaExperienceOrder; + @TableField("total_experience_order") + private Integer totalExperienceOrder; /** * 总服务订单数 */ diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java index 3b89317..e55d288 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtPlTotalShopTotalVo.java @@ -1,6 +1,6 @@ package com.ruoyi.shop.domain.vo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -44,13 +44,13 @@ private Integer[] ageValue; @ApiModelProperty(value = "合作商类型") - private List<MgtMapTotalVo> shopTypeVos; + private List<MgtMapIntTotalVo> shopTypeVos; @ApiModelProperty(value = "区域商户排行") - private List<MgtMapTotalVo> areaRankVos; + private List<MgtMapIntTotalVo> areaRankVos; @ApiModelProperty(value = "合作商状态") - private List<MgtMapTotalVo> shopStatusVos; + private List<MgtMapIntTotalVo> shopStatusVos; @ApiModelProperty(value = "合作商营业额key") private String[] shopSalesRankKey; @@ -59,5 +59,5 @@ private Integer[] shopSalesRankValue; @ApiModelProperty(value = "合作商推荐") - private List<MgtMapTotalVo> shopRecommendVos; + private List<MgtMapIntTotalVo> shopRecommendVos; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java index 9e45473..8f3a7af 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java @@ -8,7 +8,7 @@ import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; -import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; +import com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo; import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; import org.apache.ibatis.annotations.Param; @@ -153,43 +153,43 @@ * @author jqs * @date 2023/6/21 17:40 * @param - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listShopTypeTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listShopTypeTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 商户类型统计 * @author jqs * @date 2023/6/21 17:40 * @param - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listShopStatusTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listShopStatusTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 商户类型统计 * @author jqs * @date 2023/6/21 17:40 * @param - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listShopAreaRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listShopAreaRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 商户类型统计 * @author jqs * @date 2023/6/21 17:40 * @param - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listShopSalesRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listShopSalesRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); /** * @description 商户类型统计 * @author jqs * @date 2023/6/21 17:40 * @param - * @return List<MgtMapTotalVo> + * @return List<MgtMapIntTotalVo> */ - List<MgtMapTotalVo> listShopRecommendRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); + List<MgtMapIntTotalVo> listShopRecommendRank(@Param("param")MgtBasePlatformDto mgtBasePlatformDto); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java index 69ea74b..dd7c1e4 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskMapper.java @@ -5,6 +5,7 @@ import com.ruoyi.shop.domain.dto.MerMemberTaskPageDto; import com.ruoyi.shop.domain.pojo.task.MemberTask; import com.ruoyi.shop.domain.vo.MerMemberTaskPageVo; +import com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -36,4 +37,14 @@ * @return Integer */ Integer getMemberIngTotal(@Param("shopId")Long shopId); + + + /** + * @description 获取最近任务 + * @author jqs + * @date 2023/6/29 18:25 + * @param + * @return MemberTaskSimpleVo + */ + MemberTaskSimpleVo getLastMemberTask(@Param("userId")Long userId); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 250a4e9..763c21e 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -301,7 +301,7 @@ shopTotal.setTotalActivityCount(0); shopTotal.setTotalOrder(0); shopTotal.setTotalCycleOrder(0); - shopTotal.setToltaExperienceOrder(0); + shopTotal.setTotalExperienceOrder(0); shopTotal.setTotalServiceOrder(0); shopTotal.setTotalGoodsOrder(0); shopTotal.setTotalServiceCount(0); @@ -850,25 +850,25 @@ plTotalShopTotalVo.setAgeValue(shopTotalMemberVo.getAgeValue()); } //获取商户类型 - List<MgtMapTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopTypeTotal = shopMapper.listShopTypeTotal(mgtBasePlatformDto); if (shopTypeTotal != null && shopTypeTotal.size() > 0) { shopTypeTotal = listRemoveNull(shopTypeTotal); plTotalShopTotalVo.setShopTypeVos(shopTypeTotal); } //获取商户状态 - List<MgtMapTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopStatusTotal = shopMapper.listShopStatusTotal(mgtBasePlatformDto); if (shopStatusTotal != null && shopStatusTotal.size() > 0) { shopStatusTotal = listRemoveNull(shopStatusTotal); plTotalShopTotalVo.setShopStatusVos(shopStatusTotal); } //获取区域排名 - List<MgtMapTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopAreaRank = shopMapper.listShopAreaRank(mgtBasePlatformDto); if (shopAreaRank != null && shopAreaRank.size() > 0) { shopAreaRank = listRemoveNull(shopAreaRank); plTotalShopTotalVo.setAreaRankVos(shopAreaRank); } //获取销售排名 - List<MgtMapTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto); if (shopSalesRank != null && shopSalesRank.size() > 0) { String[] shopSalesKey = new String[shopSalesRank.size()]; Integer[] shopSalesValue = new Integer[shopSalesRank.size()]; @@ -881,7 +881,7 @@ plTotalShopTotalVo.setShopSalesRankValue(shopSalesValue); } //获取推荐 - List<MgtMapTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); + List<MgtMapIntTotalVo> shopRecommendRank = shopMapper.listShopRecommendRank(mgtBasePlatformDto); if (shopRecommendRank != null && shopRecommendRank.size() > 0) { shopRecommendRank = listRemoveNull(shopRecommendRank); plTotalShopTotalVo.setShopRecommendVos(shopRecommendRank); @@ -893,16 +893,16 @@ * @description 去除空字符串 * @author jqs * @date 2023/6/27 17:35 - * @param mgtMapTotalVos - * @return List<MgtMapTotalVo> + * @param MgtMapIntTotalVos + * @return List<MgtMapIntTotalVo> */ - private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){ - for (int i = 0; i < mgtMapTotalVos.size(); i++) { - if(StringUtils.isBlank(mgtMapTotalVos.get(i).getMapKey())){ - mgtMapTotalVos.remove(i); + private List<MgtMapIntTotalVo> listRemoveNull(List<MgtMapIntTotalVo> MgtMapIntTotalVos){ + for (int i = 0; i < MgtMapIntTotalVos.size(); i++) { + if(StringUtils.isBlank(MgtMapIntTotalVos.get(i).getMapKey())){ + MgtMapIntTotalVos.remove(i); } } - return mgtMapTotalVos; + return MgtMapIntTotalVos; } /** diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java index 5900929..b2c2fa5 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopTotalServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Lock; @@ -43,8 +44,98 @@ }); } + //更新商户统计实现 private void handleShopTotal(ShopTotalChangeDto shopTotalChangeDto){ ShopTotal shopTotal = this.getById(shopTotalChangeDto.getShopId()); + //订单变化 + BigDecimal payMoney = BigDecimal.ZERO; + Boolean haveOrder = false; + if(shopTotalChangeDto.getCycleMoney()!=null){ + shopTotal.setTotalCycleMoney(shopTotal.getTotalCycleMoney().add(shopTotalChangeDto.getCycleMoney())); + payMoney = payMoney.add(shopTotalChangeDto.getCycleMoney()); + shopTotal.setTotalCycleOrder(shopTotal.getTotalCycleOrder()+1); + haveOrder = true; + } + if(shopTotalChangeDto.getExperienceMoney()!=null){ + shopTotal.setTotalExperienceMoney(shopTotal.getTotalExperienceMoney().add(shopTotalChangeDto.getExperienceMoney())); + payMoney = payMoney.add(shopTotalChangeDto.getExperienceMoney()); + shopTotal.setTotalExperienceOrder(shopTotal.getTotalExperienceOrder()+1); + haveOrder = true; + } + if(shopTotalChangeDto.getServiceMoney()!=null){ + shopTotal.setTotalServiceMoney(shopTotal.getTotalServiceMoney().add(shopTotalChangeDto.getServiceMoney())); + payMoney = payMoney.add(shopTotalChangeDto.getServiceMoney()); + shopTotal.setTotalServiceOrder(shopTotal.getTotalServiceOrder()+1); + haveOrder = true; + } + if(shopTotalChangeDto.getGoodsMoney()!=null){ + shopTotal.setTotalGoodsMoney(shopTotal.getTotalGoodsMoney().add(shopTotalChangeDto.getGoodsMoney())); + payMoney = payMoney.add(shopTotalChangeDto.getGoodsMoney()); + shopTotal.setTotalGoodsOrder(shopTotal.getTotalGoodsOrder()+1); + haveOrder = true; + } + if(haveOrder){ + shopTotal.setTotalOrderMoney(shopTotal.getTotalOrderMoney().add(payMoney)); + shopTotal.setTotalOrder(shopTotal.getTotalOrder()+1); + } + //活动变化 + if(shopTotalChangeDto.getActivityCount()!=null){ + shopTotal.setTotalActivityCount(shopTotal.getTotalActivityCount()+shopTotalChangeDto.getActivityCount()); + } + //服务变化 + Integer serviceCount = 0; + Boolean haveService = false; + if(shopTotalChangeDto.getTypeCycleService()!=null){ + if(shopTotalChangeDto.getTypeCycleService()==2){ + shopTotal.setUsedCycleService(shopTotal.getUsedCycleService()+shopTotalChangeDto.getCycleService()); + shopTotal.setUseableCycleService(shopTotal.getUseableCycleService()-shopTotalChangeDto.getCycleService()); + shopTotal.setUseableCyclePerson(shopTotal.getUseableCyclePerson()-shopTotalChangeDto.getCyclePerson()); + serviceCount = serviceCount - shopTotalChangeDto.getCycleService(); + }else{ + shopTotal.setTotalCycleService(shopTotal.getTotalCycleService()+shopTotalChangeDto.getCycleService()); + shopTotal.setUseableCycleService(shopTotal.getUseableCycleService()+shopTotalChangeDto.getCycleService()); + shopTotal.setTotalCyclePerson(shopTotal.getTotalCyclePerson()+shopTotalChangeDto.getCyclePerson()); + serviceCount = serviceCount + shopTotalChangeDto.getCycleService(); + } + haveService = true; + } + if(shopTotalChangeDto.getTypeServiceService()!=null){ + if(shopTotalChangeDto.getTypeServiceService()==2){ + shopTotal.setUsedServiceService(shopTotal.getUsedServiceService()+shopTotalChangeDto.getServiceService()); + shopTotal.setUseableServiceService(shopTotal.getUseableServiceService()-shopTotalChangeDto.getServiceService()); + shopTotal.setUseableServicePerson(shopTotal.getUseableServicePerson()-shopTotalChangeDto.getServicePerson()); + serviceCount = serviceCount - shopTotalChangeDto.getServiceService(); + }else{ + shopTotal.setTotalServiceService(shopTotal.getTotalServiceService()+shopTotalChangeDto.getServiceService()); + shopTotal.setUseableServiceService(shopTotal.getUseableServiceService()+shopTotalChangeDto.getServiceService()); + shopTotal.setTotalServicePerson(shopTotal.getTotalServicePerson()+shopTotalChangeDto.getServicePerson()); + serviceCount = serviceCount + shopTotalChangeDto.getServiceService(); + } + haveService = true; + } + if(shopTotalChangeDto.getTypeExperienceService()!=null){ + if(shopTotalChangeDto.getTypeExperienceService()==2){ + shopTotal.setUsedExperienceService(shopTotal.getUsedExperienceService()+shopTotalChangeDto.getExperienceService()); + shopTotal.setUseableExperienceService(shopTotal.getUseableExperienceService()-shopTotalChangeDto.getExperienceService()); + shopTotal.setUseableExperiencePerson(shopTotal.getUseableExperiencePerson()-shopTotalChangeDto.getExperiencePerson()); + serviceCount = serviceCount - shopTotalChangeDto.getExperienceService(); + }else{ + shopTotal.setTotalExperienceService(shopTotal.getTotalExperienceService()+shopTotalChangeDto.getExperienceService()); + shopTotal.setUseableExperienceService(shopTotal.getUseableExperienceService()+shopTotalChangeDto.getExperienceService()); + shopTotal.setTotalExperiencePerson(shopTotal.getTotalExperiencePerson()+shopTotalChangeDto.getExperiencePerson()); + serviceCount = serviceCount + shopTotalChangeDto.getExperienceService(); + } + haveService = true; + } + if(haveService){ + if(serviceCount<0){ + shopTotal.setUsedServiceCount(shopTotal.getUsedServiceCount()+serviceCount); + shopTotal.setUseableServiceCount(shopTotal.getUsedServiceCount()+serviceCount); + }else{ + shopTotal.setTotalServiceCount(shopTotal.getTotalServiceCount()+serviceCount); + shopTotal.setUseableServiceCount(shopTotal.getUsedServiceCount()+serviceCount); + } + } this.saveOrUpdate(shopTotal); } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java index fed1213..0b04907 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java @@ -16,6 +16,7 @@ import com.ruoyi.shop.service.task.MemberTaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.service.task.TaskFileService; +import com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo; import com.ruoyi.system.api.service.RemoteMemberService; import org.springframework.stereotype.Service; @@ -175,4 +176,15 @@ return memberTaskMapper.getMemberIngTotal(shopId); } + /** + * @description 获取最近任务 + * @author jqs + * @date 2023/6/29 18:25 + * @param + * @return MemberTaskSimpleVo + */ + @Override + public MemberTaskSimpleVo getLastMemberTask(Long userId){ + return memberTaskMapper.getLastMemberTask(userId); + } } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java index fc6e744..8548529 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java @@ -114,7 +114,7 @@ @Override public MgtBulletinBoardVo boardTaskTotal(){ MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); - LambdaQueryWrapper<ShopTask> queryWrapper = new LambdaQueryWrapper(); + LambdaQueryWrapper<ShopTask> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ShopTask::getDelFlag,0); queryWrapper.eq(ShopTask::getTaskStatus,1); queryWrapper.eq(ShopTask::getTaskDate,DateUtils.getDate()); diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java index b83e93d..65fdfc7 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskService.java @@ -1,12 +1,13 @@ package com.ruoyi.shop.service.task; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.dto.MerCreateMemberTaskDto; import com.ruoyi.shop.domain.dto.MerFollowMemberTaskDto; import com.ruoyi.shop.domain.dto.MerMemberTaskPageDto; import com.ruoyi.shop.domain.pojo.task.MemberTask; -import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.vo.MerMemberTaskPageVo; +import com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo; import java.util.List; @@ -48,4 +49,13 @@ * @return Integer */ Integer getMemberIngTotal(Long shopId); + + /** + * @description 获取最近任务 + * @author jqs + * @date 2023/6/29 18:25 + * @param + * @return MemberTaskSimpleVo + */ + MemberTaskSimpleVo getLastMemberTask(Long userId); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml index 89ed8d8..c145d84 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml @@ -355,7 +355,7 @@ AND ts.shop_status = 2 </if> <if test="param.shopTags!=null and param.shopTags!=''"> - AND tm.shop_tags REGEXP #{param.shopTags} + AND ts.shop_tags REGEXP #{param.shopTags} </if> <if test="param.supportingCapacityFlag!=null and param.supportingCapacityFlag!=''"> AND ts.supporting_capacity_flag = #{param.supportingCapacityFlag} @@ -380,7 +380,7 @@ </if> <if test="param.keyword!=null and param.keyword!=''"> AND (ts.shop_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_name LIKE CONCAT('%',#{param.keyword},'%') - OR ts.shopowner_phone LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopNumber LIKE CONCAT('%',#{param.keyword},'%')) + OR ts.shopowner_phone LIKE CONCAT('%',#{param.keyword},'%') OR ts.shop_number LIKE CONCAT('%',#{param.keyword},'%')) </if> ORDER BY ts.create_time DESC </select> @@ -607,7 +607,7 @@ </select> - <select id="listShopTypeTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listShopTypeTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT ts.shop_type mapKey, COUNT(ts.shop_id) mapValue @@ -637,7 +637,7 @@ GROUP BY ts.shop_type </select> - <select id="listShopStatusTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listShopStatusTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT ts.shop_custom_status mapKey, COUNT(ts.shop_id) mapValue @@ -667,7 +667,7 @@ GROUP BY ts.shop_custom_status </select> - <select id="listShopAreaRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listShopAreaRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT ts.shop_city_code mapKey, COUNT(ts.shop_id) mapValue @@ -698,7 +698,7 @@ ORDER BY COUNT(ts.shop_id) DESC LIMIT 15 </select> - <select id="listShopSalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listShopSalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT ts.shop_name mapKey, tst.total_order_money mapValue @@ -729,7 +729,7 @@ ORDER BY tst.total_order_money DESC LIMIT 15 </select> - <select id="listShopRecommendRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> + <select id="listShopRecommendRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo"> SELECT ts.recommend_person mapKey, COUNT(ts.shop_id) mapValue diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml index d40b1ea..88203d4 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml +++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml @@ -98,4 +98,13 @@ FROM t_member_task WHERE del_flag = 0 AND task_status = 1 AND shop_id = #{shopId} AND task_date = DATE(NOW()) </select> + + <select id="getLastMemberTask" resultType="com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo"> + SELECT + task_date taskDate, + task_content taskContent + FROM t_member_task + WHERE del_flag = 0 AND task_status = 2 AND user_id = #{userId} + ORDER BY task_date DESC LIMIT 1 + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/business/MerConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/business/MerConfigController.java index 564e7d0..84ba649 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/business/MerConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/business/MerConfigController.java @@ -52,4 +52,7 @@ recommendCooperationService.recommendCooperation(merRecommendCooperationDto); return R.ok(); } + + + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java index 91e2db7..08e3fa0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java @@ -130,4 +130,17 @@ return R.ok(sysSimpleUserVoList); } + /** + * @description 通过名称获取活跃度 + * @author jqs + * @date 2023/6/29 17:20 + * @param name + * @return R<Activeness> + */ + @PostMapping("/getActivenessByName") + public R<Activeness> getActivenessByName(@RequestBody String name) + { + Activeness activeness = activenessService.getActivenessByName(name); + return R.ok(activeness); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java index ef3fbf3..f7c4ff3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java @@ -87,6 +87,13 @@ return R.ok(mgtCustomConfigVo); } + @RequestMapping(value = "/getActivenessList", method = RequestMethod.POST) + @ApiOperation(value = "获取活跃度") + public R<List<String>> getActivenessList() { + List<String> activenessList = activenessService.getActivenessList(); + return R.ok(activenessList); + } + @RequestMapping(value = "/editCooperation", method = RequestMethod.POST) @Log(title = "申请合作管理", businessType = BusinessType.UPDATE,operContent = "修改申请合作") @ApiOperation(value = "修改申请合作") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java index f9426ea..8946bd0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java @@ -42,4 +42,22 @@ */ void deleteMgtActiveness(MgtBaseGetDto mgtBaseGetDto); + /** + * @description 获取活跃度list + * @author jqs + * @date 2023/6/29 17:12 + * @param + * @return List<String> + */ + List<String> getActivenessList(); + + /** + * @description 通过名称获取活跃度 + * @author jqs + * @date 2023/6/29 17:18 + * @param activenessName + * @return Activeness + */ + Activeness getActivenessByName(String activenessName); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java index 0a40e9d..b7ea447 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java @@ -12,6 +12,7 @@ import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -79,4 +80,34 @@ activeness.setUpdateUserId(mgtBaseGetDto.getUserId()); this.saveOrUpdate(activeness); } + + /** + * @description 获取活跃度list + * @author jqs + * @date 2023/6/29 17:12 + * @param + * @return List<String> + */ + @Override + public List<String> getActivenessList(){ + List<Activeness> activenessList = activenessMapper.selectList(new LambdaQueryWrapper<Activeness>().eq(Activeness::getDelFlag, 0)); + List<String> nameList = activenessList.stream().map(activeness ->{ + String name = activeness.getActivenessName(); + return name; + }).collect(Collectors.toList()); + return nameList; + } + + /** + * @description 通过名称获取活跃度 + * @author jqs + * @date 2023/6/29 17:18 + * @param activenessName + * @return Activeness + */ + @Override + public Activeness getActivenessByName(String activenessName){ + Activeness activeness = this.getOne(new LambdaQueryWrapper<Activeness>().eq(Activeness::getDelFlag, 0).eq(Activeness::getActivenessName, activenessName),false); + return activeness; + } } -- Gitblit v1.7.1