| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.domain.model.LoginUserApplet; |
| | | import com.ruoyi.system.mapper.TAppUserMapper; |
| | | import com.ruoyi.system.model.TAppUser; |
| | | import com.ruoyi.system.model.*; |
| | | import com.ruoyi.system.query.AppUserListQuery; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.TAppUserService; |
| | | import com.ruoyi.system.query.PromotionPageListQuery; |
| | | import com.ruoyi.system.service.*; |
| | | import com.ruoyi.system.vo.PromotionPageListVo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @RequiredArgsConstructor(onConstructor_ = {@Lazy}) |
| | | public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { |
| | | private final ISysUserService sysUserService; |
| | | |
| | | @Autowired |
| | | private TBigGiftPackageOrderService tBigGiftPackageOrderService; |
| | | |
| | | @Autowired |
| | | private TPhysicalGoodsOrderService tPhysicalGoodsOrderService; |
| | | |
| | | @Autowired |
| | | private TCommissionTransactionFlowService tCommissionTransactionFlowService; |
| | | |
| | | @Autowired |
| | | private TIntegralSettlementService tIntegralSettlementService; |
| | | |
| | | @Override |
| | | public PageInfo<TAppUser> pageList(AppUserListQuery query) { |
| | |
| | | this.updateById(appUser); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<PromotionPageListVo> promotionPageList(Page<PromotionPageListVo> page, PromotionPageListQuery query) { |
| | | List<PromotionPageListVo> list = this.baseMapper.promotionPageList(page,query); |
| | | |
| | | if (!list.isEmpty()) { |
| | | List<Integer> userIds = list.stream().map(PromotionPageListVo::getUserId).collect(Collectors.toList()); |
| | | // List<TPhysicalGoodsOrder> physicalGoodsOrders = tPhysicalGoodsOrderService.list(new LambdaQueryWrapper<TPhysicalGoodsOrder>().in(TPhysicalGoodsOrder::getAppUserId, userIds).notIn(TPhysicalGoodsOrder::getStatus,Arrays.asList(1,4))); |
| | | List<TBigGiftPackageOrder> giftPackageOrders = tBigGiftPackageOrderService.list(new LambdaQueryWrapper<TBigGiftPackageOrder>().in(TBigGiftPackageOrder::getAppUserId, userIds).notIn(TBigGiftPackageOrder::getStatus,Arrays.asList(1,5))); |
| | | |
| | | |
| | | List<TCommissionTransactionFlow> flows = tCommissionTransactionFlowService.list(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getAppUserId, userIds)); |
| | | |
| | | List<TIntegralSettlement> settlements = tIntegralSettlementService.list(new LambdaQueryWrapper<TIntegralSettlement>().in(TIntegralSettlement::getAppUserId, userIds)); |
| | | for (PromotionPageListVo promotionPageListVo : list) { |
| | | // BigDecimal total = physicalGoodsOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TPhysicalGoodsOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | promotionPageListVo.setTotalConsume(totalOne); |
| | | |
| | | Integer totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TCommissionTransactionFlow::getCommissionAmount).sum(); |
| | | promotionPageListVo.setTotalIncome(totalIncome); |
| | | |
| | | BigDecimal totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TIntegralSettlement::getTotalSettlementIntegral).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | promotionPageListVo.setTotalSettledIncome(totalSettledIncome); |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<PromotionPageListVo> promotionPageListExport(PromotionPageListQuery query) { |
| | | List<PromotionPageListVo> list = this.baseMapper.promotionPageListExport(query); |
| | | |
| | | if (!list.isEmpty()) { |
| | | List<Integer> userIds = list.stream().map(PromotionPageListVo::getUserId).collect(Collectors.toList()); |
| | | // List<TPhysicalGoodsOrder> physicalGoodsOrders = tPhysicalGoodsOrderService.list(new LambdaQueryWrapper<TPhysicalGoodsOrder>().in(TPhysicalGoodsOrder::getAppUserId, userIds).notIn(TPhysicalGoodsOrder::getStatus,Arrays.asList(1,4))); |
| | | List<TBigGiftPackageOrder> giftPackageOrders = tBigGiftPackageOrderService.list(new LambdaQueryWrapper<TBigGiftPackageOrder>().in(TBigGiftPackageOrder::getAppUserId, userIds).notIn(TBigGiftPackageOrder::getStatus,Arrays.asList(1,5))); |
| | | |
| | | |
| | | List<TCommissionTransactionFlow> flows = tCommissionTransactionFlowService.list(new LambdaQueryWrapper<TCommissionTransactionFlow>().in(TCommissionTransactionFlow::getAppUserId, userIds)); |
| | | |
| | | List<TIntegralSettlement> settlements = tIntegralSettlementService.list(new LambdaQueryWrapper<TIntegralSettlement>().in(TIntegralSettlement::getAppUserId, userIds)); |
| | | for (PromotionPageListVo promotionPageListVo : list) { |
| | | // BigDecimal total = physicalGoodsOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TPhysicalGoodsOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal totalOne = giftPackageOrders.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TBigGiftPackageOrder::getPaymentPrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | promotionPageListVo.setTotalConsume(totalOne); |
| | | |
| | | Integer totalIncome = flows.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).mapToInt(TCommissionTransactionFlow::getCommissionAmount).sum(); |
| | | promotionPageListVo.setTotalIncome(totalIncome); |
| | | |
| | | BigDecimal totalSettledIncome = settlements.stream().filter(e -> e.getAppUserId().equals(promotionPageListVo.getUserId())).map(TIntegralSettlement::getTotalSettlementIntegral).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | promotionPageListVo.setTotalSettledIncome(totalSettledIncome); |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<TAppUser> exportAppUser(AppUserListQuery query) { |
| | | List<TAppUser> list = this.baseMapper.exportAppUser(query); |
| | | return list; |
| | | } |
| | | } |