From 7b7209a7b9b5a991481bc933996ac67c9ca5f8b0 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 08 Jul 2025 15:01:14 +0800 Subject: [PATCH] feat(mall): 更新管理员数据信息中的总会员数和总活动会员数 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 102 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index f2e24b9..c90e08c 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -18,6 +18,7 @@ import cc.mrbird.febs.pay.model.MemberWithdrawalDto; import cc.mrbird.febs.pay.service.IXcxPayService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -27,6 +28,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; @@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -78,6 +81,8 @@ private final MallGoodsCouponMapper mallGoodsCouponMapper; private final HappySaleLevelMapper happySaleLevelMapper; private final HappyMemberLevelMapper happyMemberLevelMapper; + private final MallOrderInfoMapper mallOrderInfoMapper; + private final HappyActivityOrderMapper happyActivityOrderMapper; @Override @@ -975,9 +980,104 @@ public FebsResponse checkOrder(Long id) { MallMember mallMember = this.baseMapper.selectById(id); - mallMember.setCheckOrder(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckOrder() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); - this.baseMapper.updateById(mallMember); + + if(ObjectUtil.isNotEmpty(mallMember)){ + mallMember.setCheckOrder(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckOrder() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); + this.baseMapper.updateById(mallMember); + } return new FebsResponse().success().message("操作成功"); } + + @Override + public FebsResponse checkLeader(Long id) { + + MallMember mallMember = this.baseMapper.selectById(id); + if(ObjectUtil.isNotEmpty(mallMember)){ + mallMember.setCheckLeader(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckLeader() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); + this.baseMapper.updateById(mallMember); + } + + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse dataInfo() { + AdminDataInfoVo adminDataInfoVo = new AdminDataInfoVo(); + + List<MallMember> mallMembers = this.baseMapper.selectList(null); + if(CollUtil.isNotEmpty(mallMembers)){ + adminDataInfoVo.setTotalMember(mallMembers.size() + 64997); + + adminDataInfoVo.setTotalDayMember( + Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfDay(new Date())) >= 0).count())); + adminDataInfoVo.setTotalWeekMember( + Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfWeek(new Date())) >= 0).count())); + adminDataInfoVo.setTotalMonthMember( + Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfMonth(new Date())) >= 0).count())); + } + + + BigDecimal totalAmount = BigDecimal.ZERO;//总数 + BigDecimal totalDayAmount = BigDecimal.ZERO;//新增 + BigDecimal totalWeekAmount = BigDecimal.ZERO;//本周新增 + BigDecimal totalMonthAmount = BigDecimal.ZERO;//本月新增 + + List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectList( + Wrappers.lambdaQuery(MallOrderInfo.class) + .eq(MallOrderInfo::getPayResult, "1") + ); + if(CollUtil.isNotEmpty(mallOrderInfos)){ + totalAmount = totalAmount.add(mallOrderInfos.stream().map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalDayAmount = totalDayAmount.add( + mallOrderInfos.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfDay(new Date())) >= 0) + .map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalWeekAmount = totalWeekAmount.add( + mallOrderInfos.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfWeek(new Date())) >= 0) + .map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalMonthAmount = totalMonthAmount.add( + mallOrderInfos.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfMonth(new Date())) >= 0) + .map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + } + + List<HappyActivityOrder> happyActivityOrders = happyActivityOrderMapper.selectList( + Wrappers.lambdaQuery(HappyActivityOrder.class) + .eq(HappyActivityOrder::getPayState, StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode()) + ); + if(CollUtil.isNotEmpty(happyActivityOrders)){ + totalAmount = totalAmount.add(happyActivityOrders.stream().map(HappyActivityOrder::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalDayAmount = totalDayAmount.add( + happyActivityOrders.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfDay(new Date())) >= 0) + .map(HappyActivityOrder::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalWeekAmount = totalWeekAmount.add( + happyActivityOrders.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfWeek(new Date())) >= 0) + .map(HappyActivityOrder::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + totalMonthAmount = totalMonthAmount.add( + happyActivityOrders.stream().filter(entity -> DateUtil.compare(entity.getPayTime(), DateUtil.beginOfMonth(new Date())) >= 0) + .map(HappyActivityOrder::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)); + } + adminDataInfoVo.setTotalAmount(totalAmount); + adminDataInfoVo.setTotalDayAmount(totalDayAmount); + adminDataInfoVo.setTotalWeekAmount(totalWeekAmount); + adminDataInfoVo.setTotalMonthAmount(totalMonthAmount); + + List<HappyActivityOrder> happyActivityDoneOrders = happyActivityOrderMapper.selectList( + Wrappers.lambdaQuery(HappyActivityOrder.class) + .eq(HappyActivityOrder::getPayState, StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode()) + .eq(HappyActivityOrder::getState, StateUpDownEnum.ORDER_STATE_USED.getCode()) + ); + + if(CollUtil.isNotEmpty(happyActivityDoneOrders)){ + adminDataInfoVo.setTotalActivityMember(happyActivityDoneOrders.size() + 64997); + + adminDataInfoVo.setTotalActivityDayMember( + Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfDay(new Date())) >= 0).count())); + adminDataInfoVo.setTotalActivityWeekMember( + Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfWeek(new Date())) >= 0).count())); + adminDataInfoVo.setTotalActivityMonthMember( + Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfMonth(new Date())) >= 0).count())); + } + + return new FebsResponse().success().data(adminDataInfoVo); + } } -- Gitblit v1.9.1