| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | private TAppUserMapper tAppUserMapper; |
| | | @Autowired |
| | | private TCouponMapper tCouponMapper; |
| | | @Autowired |
| | | private TOrderMapper tOrderMapper; |
| | | |
| | | @Override |
| | | public void detail(Integer tAppUserId, Model model) { |
| | |
| | | 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()); |
| | |
| | | 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 |