xuhy
2023-02-17 00e122b6b32c07839b944ea47d1775f5793020ba
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java
@@ -3,20 +3,26 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.modular.system.dao.TCouponMapper;
import com.stylefeng.guns.modular.system.dao.TOrderMapper;
import com.stylefeng.guns.modular.system.enums.CouponStatusEnum;
import com.stylefeng.guns.modular.system.enums.OrderStateEnum;
import com.stylefeng.guns.modular.system.model.TAppUser;
import com.stylefeng.guns.modular.system.dao.TAppUserMapper;
import com.stylefeng.guns.modular.system.model.TCoupon;
import com.stylefeng.guns.modular.system.model.TOrder;
import com.stylefeng.guns.modular.system.service.ITAppUserService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -34,6 +40,8 @@
    private TAppUserMapper tAppUserMapper;
    @Autowired
    private TCouponMapper tCouponMapper;
    @Autowired
    private TOrderMapper tOrderMapper;
    @Override
    public void detail(Integer tAppUserId, Model model) {
@@ -44,7 +52,10 @@
        model.addAttribute("id",tAppUser.getId());
        model.addAttribute("nickname",tAppUser.getNickname());
        model.addAttribute("remark",tAppUser.getRemark());
        model.addAttribute("createTime",tAppUser.getCreateTime());
        model.addAttribute("createTime",DateUtil.formatDate(tAppUser.getCreateTime()));
        // 客户渠道
        model.addAttribute("customerChannel","");
        // 消费信息:优惠券数据
        List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUserId));
        List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList());
@@ -53,6 +64,51 @@
        model.addAttribute("notUsedCount",notUsedList.size());
        model.addAttribute("usedCount",usedList.size());
        model.addAttribute("expiredCount",expiredList.size());
        // 查询订单数据
        List<TOrder> orders = tOrderMapper.selectList(new EntityWrapper<TOrder>().eq("userId", tAppUserId).orderBy(true,"createTime",false));
        if(!CollectionUtils.isEmpty(orders)){
            // 下单次数
            model.addAttribute("numberOfOrder",orders.size());
            // 取消次数
            List<TOrder> collect = orders.stream().filter(order->Objects.nonNull(order.getState()))
                    .filter(order -> OrderStateEnum.CANCELED.getCode() == order.getState()).collect(Collectors.toList());
            model.addAttribute("canceledNumber",collect.size());
            TOrder tOrder = orders.get(0);
            // 最近消费时间
            model.addAttribute("latelyTime",DateUtil.formatDate(tOrder.getCreateTime()));
            // 最近消费金额
            model.addAttribute("latelyPrice",tOrder.getPayMoney());
            // 总消费次数
            List<TOrder> collect1 = orders.stream().filter(order->Objects.nonNull(order.getState()))
                    .filter(order -> OrderStateEnum.WAIT_EVALUATED.getCode() == order.getState() ||
                    OrderStateEnum.FINISH.getCode() == order.getState()).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(collect1)){
                model.addAttribute("consumeSum",collect1.size());
                // 总消费金额
                collect1.stream().map(TOrder::getPayMoney).reduce(BigDecimal::add)
                        .ifPresent(consumePrice -> model.addAttribute("consumePrice", consumePrice));
            }else {
                // 总消费次数
                model.addAttribute("consumeSum",0);
                // 总消费金额
                model.addAttribute("consumePrice", 0);
            }
        }else {
            // 下单次数
            model.addAttribute("numberOfOrder",0);
            // 取消次数
            model.addAttribute("canceledNumber",0);
            // 最近消费时间
            model.addAttribute("latelyTime","");
            // 最近消费金额
            model.addAttribute("latelyPrice",0);
            // 总消费次数
            model.addAttribute("consumeSum",0);
            // 总消费金额
            model.addAttribute("consumePrice", 0);
        }
    }
    @Override