package com.ruoyi.order.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.order.api.model.TShoppingOrder;
|
import com.ruoyi.order.api.query.TActivityStatisticsQuery;
|
import com.ruoyi.order.api.vo.TActivityStatisticslVO;
|
import com.ruoyi.order.api.vo.TActivityVO;
|
import com.ruoyi.order.mapper.TShoppingOrderMapper;
|
import com.ruoyi.order.service.TShoppingOrderService;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-08-07
|
*/
|
@Service
|
public class TShoppingOrderServiceImpl extends ServiceImpl<TShoppingOrderMapper, TShoppingOrder> implements TShoppingOrderService {
|
|
@Override
|
public TActivityVO activityStatistics(TActivityStatisticsQuery dto) {
|
TActivityVO res = new TActivityVO();
|
|
|
|
PageInfo<TActivityStatisticslVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
|
List<TActivityStatisticslVO> list = this.baseMapper.activityStatistics(pageInfo,dto);
|
list.sort((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()));
|
// 优惠券金额
|
BigDecimal coupon = new BigDecimal("0");
|
// 会员抵扣金额
|
BigDecimal discount = new BigDecimal("0");
|
// 会员活动金额
|
BigDecimal vipActivity = new BigDecimal("0");
|
// 赠送会员
|
BigDecimal grantVip = new BigDecimal("0");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
for (TActivityStatisticslVO tActivityStatisticslVO : list) {
|
// 判断享有了哪些类型
|
switch (tActivityStatisticslVO.getOrderType()){
|
case 1:
|
StringBuilder stringBuilder = new StringBuilder();
|
|
// 充电订单 优惠券金额大于0
|
if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
|
&&
|
(tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
|
coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
|
stringBuilder.append("优惠券抵扣").append("+");
|
}
|
if (tActivityStatisticslVO.getVipDiscountAmount()!=null
|
&&
|
(tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
|
discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
|
stringBuilder.append("会员抵扣").append("+");
|
}
|
stringBuilder.deleteCharAt(stringBuilder.length()-1);
|
tActivityStatisticslVO.setType(stringBuilder.toString());
|
tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
|
break;
|
case 2:
|
StringBuilder stringBuilder1 = new StringBuilder();
|
|
// 购物订单 优惠券金额大于0
|
if (tActivityStatisticslVO.getCouponDiscountAmount()!=null
|
&&
|
(tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
|
coupon = coupon.add(tActivityStatisticslVO.getCouponDiscountAmount());
|
stringBuilder1.append("优惠券抵扣").append("+");
|
}
|
if (tActivityStatisticslVO.getVipDiscountAmount()!=null
|
&&
|
(tActivityStatisticslVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
|
discount = discount.add(tActivityStatisticslVO.getVipDiscountAmount());
|
stringBuilder1.append("会员抵扣").append("+");
|
}
|
stringBuilder1.deleteCharAt(stringBuilder1.length()-1);
|
tActivityStatisticslVO.setType(stringBuilder1.toString());
|
tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
|
break;
|
case 3:
|
// 会员订单 优惠金额大于0
|
if (tActivityStatisticslVO.getVipDiscountAmount()!=null
|
&&
|
(tActivityStatisticslVO.getCouponDiscountAmount().compareTo(BigDecimal.ZERO)>0)){
|
vipActivity = vipActivity.add(tActivityStatisticslVO.getVipDiscountAmount());
|
}
|
tActivityStatisticslVO.setType("会员活动");
|
tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
|
break;
|
case 4:
|
// 赠送会员订单 如果支付金额为0 那么就是后台赠送的会员
|
if (tActivityStatisticslVO.getPaymentAmount().compareTo(BigDecimal.ZERO)==0){
|
grantVip = grantVip.add(tActivityStatisticslVO.getOrderAmount());
|
tActivityStatisticslVO.setType("赠送会员");
|
tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
|
}else{
|
// 赠送
|
grantVip = grantVip.add(tActivityStatisticslVO.getVipDiscountAmount());
|
tActivityStatisticslVO.setType("赠送会员");
|
tActivityStatisticslVO.setTime(simpleDateFormat.format(tActivityStatisticslVO.getCreateTime()));
|
}
|
break;
|
}
|
}
|
pageInfo.setRecords(list);
|
res.setList(pageInfo);
|
res.setTotal(coupon.add(discount).add(vipActivity).add(grantVip));
|
res.setCoupon(coupon);
|
res.setDiscount(discount);
|
res.setVipActivity(vipActivity);
|
res.setGrantVip(grantVip);
|
return res;
|
}
|
}
|