From 957a8e8f5a01de49baa837e30492de511bf407e3 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 27 三月 2023 18:10:06 +0800 Subject: [PATCH] 权限配置,基础信息管理 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 115 insertions(+), 11 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java index 63c5f13..632cd90 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java @@ -2,21 +2,29 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.DateUtil; +import com.stylefeng.guns.modular.system.controller.resp.TAppUserResp; import com.stylefeng.guns.modular.system.dao.TCouponMapper; +import com.stylefeng.guns.modular.system.dao.TOrderMapper; +import com.stylefeng.guns.modular.system.dao.TUserToCouponMapper; import com.stylefeng.guns.modular.system.enums.CouponStatusEnum; +import com.stylefeng.guns.modular.system.enums.OrderStateEnum; +import com.stylefeng.guns.modular.system.enums.StatusEnum; 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.model.TUserToCoupon; import com.stylefeng.guns.modular.system.service.ITAppUserService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.beans.BeanUtils; 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.util.Date; -import java.util.List; -import java.util.Objects; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; /** @@ -34,6 +42,10 @@ private TAppUserMapper tAppUserMapper; @Autowired private TCouponMapper tCouponMapper; + @Autowired + private TOrderMapper tOrderMapper; + @Autowired + private TUserToCouponMapper tUserToCouponMapper; @Override public void detail(Integer tAppUserId, Model model) { @@ -44,15 +56,70 @@ 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())); + // todo 客户渠道 + 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()); - List<TCoupon> usedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.USED.getCode())).collect(Collectors.toList()); - List<TCoupon> expiredList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.EXPIRED.getCode())).collect(Collectors.toList()); - model.addAttribute("notUsedCount",notUsedList.size()); - model.addAttribute("usedCount",usedList.size()); - model.addAttribute("expiredCount",expiredList.size()); +// 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()); +// List<TCoupon> usedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.USED.getCode())).collect(Collectors.toList()); +// List<TCoupon> expiredList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.EXPIRED.getCode())).collect(Collectors.toList()); + // 查询当前用户优惠券数量 + List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("userId", tAppUser.getId())); + + int couponTotal = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); + int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); + int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum(); + model.addAttribute("couponSum",couponTotal); + model.addAttribute("notUsedCount",validCount); + model.addAttribute("usedCount",couponTotal-validCount-expireCount); + model.addAttribute("expiredCount",expireCount); + // 查询订单数据 + 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 @@ -84,6 +151,43 @@ if(Objects.nonNull(status)){ wrapper.eq("status",status); } + wrapper.ne("status", StatusEnum.DELETE.getCode()); return wrapper; } + + @Override + public List<TAppUserResp> getTAppUserResp(List<TAppUser> tAppUsers) { + List<TAppUserResp> tAppUserRespList = new ArrayList<>(tAppUsers.size()); + for (TAppUser tAppUser : tAppUsers) { + TAppUserResp tAppUserResp = new TAppUserResp(); + BeanUtils.copyProperties(tAppUser,tAppUserResp); + + // 查询当前用户优惠券数量 + List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("userId", tAppUser.getId())); + + int couponTotal = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); + int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); + +// List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUser.getId())); +// List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList()); + tAppUserResp.setCouponSum(couponTotal); + tAppUserResp.setNotUsedCount(validCount); + List<TOrder> orders = tOrderMapper.selectList(new EntityWrapper<TOrder>().eq("userId", tAppUser.getId()).orderBy(true,"createTime",false)); + if(!CollectionUtils.isEmpty(orders)){ + // 最后一次消费时间 + tAppUserResp.setLastConsumptionTime(orders.get(0).getCreateTime()); + 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)) { + tAppUserResp.setConsumeSum(collect1.size()); + // 总消费金额 + collect1.stream().map(TOrder::getPayMoney).reduce(BigDecimal::add) + .ifPresent(tAppUserResp::setConsumePrice); + } + } + tAppUserRespList.add(tAppUserResp); + } + return tAppUserRespList; + } } -- Gitblit v1.7.1