订单统计时,店铺参数传递后台,统计结果不变问题处理
This commit is contained in:
parent
47c42db720
commit
b6062f4fb9
@ -13,35 +13,35 @@ import lombok.Data;
|
||||
public class OrderOverviewVO {
|
||||
|
||||
@ApiModelProperty(value = "UV人次")
|
||||
private Integer uvNum;
|
||||
private Integer uvNum = 0;
|
||||
|
||||
//下单统计
|
||||
@ApiModelProperty(value = "下单数量")
|
||||
private Long orderNum;
|
||||
private Long orderNum = 0L;
|
||||
|
||||
@ApiModelProperty(value = "下单人数")
|
||||
private Long orderMemberNum;
|
||||
private Long orderMemberNum = 0L;
|
||||
|
||||
@ApiModelProperty(value = "下单金额")
|
||||
private Double orderAmount;
|
||||
private Double orderAmount = 0D;
|
||||
|
||||
//付款统计
|
||||
@ApiModelProperty(value = "付款订单数量")
|
||||
private Long paymentOrderNum;
|
||||
private Long paymentOrderNum = 0L;
|
||||
|
||||
@ApiModelProperty(value = "付款人数")
|
||||
private Long paymentsNum;
|
||||
private Long paymentsNum = 0L;
|
||||
|
||||
@ApiModelProperty(value = "付款金额")
|
||||
private Double paymentAmount;
|
||||
private Double paymentAmount = 0D;
|
||||
|
||||
|
||||
//退单统计
|
||||
@ApiModelProperty(value = "退单笔数")
|
||||
private Long refundOrderNum;
|
||||
private Long refundOrderNum = 0L;
|
||||
|
||||
@ApiModelProperty(value = "退单金额")
|
||||
private Double refundOrderPrice;
|
||||
private Double refundOrderPrice = 0D;
|
||||
|
||||
//转换率
|
||||
@ApiModelProperty(value = "下单转换率")
|
||||
|
@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -50,18 +49,15 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
OrderOverviewVO orderOverviewVO = new OrderOverviewVO();
|
||||
//访客数
|
||||
orderOverviewVO.setUvNum(platformViewDataService.countUv(statisticsQueryParam));
|
||||
if (orderOverviewVO.getUvNum() == null) {
|
||||
orderOverviewVO.setUvNum(0);
|
||||
}
|
||||
|
||||
//下单统计
|
||||
initOrder(dates, orderOverviewVO);
|
||||
initOrder(dates, orderOverviewVO, statisticsQueryParam);
|
||||
|
||||
//付款统计
|
||||
initPayment(dates, orderOverviewVO);
|
||||
initPayment(dates, orderOverviewVO, statisticsQueryParam);
|
||||
|
||||
//退单统计
|
||||
initAfterSale(dates, orderOverviewVO);
|
||||
initAfterSale(dates, orderOverviewVO, statisticsQueryParam);
|
||||
|
||||
//数据运算(转换率,比例相关)
|
||||
conversionRateOperation(orderOverviewVO);
|
||||
@ -97,24 +93,37 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
* @param dates
|
||||
* @param orderOverviewVO
|
||||
*/
|
||||
private void initOrder(Date[] dates, OrderOverviewVO orderOverviewVO) {
|
||||
private void initOrder(Date[] dates, OrderOverviewVO orderOverviewVO, StatisticsQueryParam statisticsQueryParam) {
|
||||
//构建查询条件
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
//时间区间
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
//如果有店铺id传入,则查询店铺
|
||||
if (StringUtils.isNotEmpty(statisticsQueryParam.getStoreId())) {
|
||||
queryWrapper.eq("store_id", statisticsQueryParam.getStoreId());
|
||||
}
|
||||
//查询流水金额和订单数量
|
||||
queryWrapper.select("SUM(flow_price) AS price , COUNT(0) AS num");
|
||||
//获取查询结果
|
||||
Map order = orderService.getMap(queryWrapper);
|
||||
//赋予订单数和流水金额
|
||||
orderOverviewVO.setOrderNum(order != null && order.containsKey("num") ? (Long) order.get("num") : 0L);
|
||||
orderOverviewVO.setOrderAmount(order != null && order.containsKey("price") ? (double) order.get("price") : 0L);
|
||||
|
||||
//查询下单人数
|
||||
queryWrapper = Wrappers.query();
|
||||
//时间区间
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
queryWrapper.select("count(DISTINCT member_id) AS num");
|
||||
Map memberNum = orderService.getMap(queryWrapper);
|
||||
|
||||
orderOverviewVO.setOrderMemberNum(memberNum != null && memberNum.containsKey("num") ? (Long) memberNum.get("num") : 0L);
|
||||
|
||||
if (orderOverviewVO.getOrderAmount() == null) {
|
||||
orderOverviewVO.setOrderAmount(0D);
|
||||
//如果有店铺id传入,则查询店铺
|
||||
if (StringUtils.isNotEmpty(statisticsQueryParam.getStoreId())) {
|
||||
queryWrapper.eq("store_id", statisticsQueryParam.getStoreId());
|
||||
}
|
||||
//查询下单人数的sql
|
||||
queryWrapper.select("count(DISTINCT member_id) AS num");
|
||||
//获取查询结果
|
||||
Map memberNum = orderService.getMap(queryWrapper);
|
||||
//写入下单人数
|
||||
orderOverviewVO.setOrderMemberNum(memberNum != null && memberNum.containsKey("num") ? (Long) memberNum.get("num") : 0L);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,10 +132,14 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
* @param dates
|
||||
* @param orderOverviewVO
|
||||
*/
|
||||
private void initPayment(Date[] dates, OrderOverviewVO orderOverviewVO) {
|
||||
private void initPayment(Date[] dates, OrderOverviewVO orderOverviewVO, StatisticsQueryParam statisticsQueryParam) {
|
||||
//付款订单数,付款金额
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
//如果有店铺id传入,则查询店铺
|
||||
if (StringUtils.isNotEmpty(statisticsQueryParam.getStoreId())) {
|
||||
queryWrapper.eq("store_id", statisticsQueryParam.getStoreId());
|
||||
}
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
Map payment = this.getMap(queryWrapper);
|
||||
@ -137,6 +150,10 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
//付款人数
|
||||
queryWrapper = Wrappers.query();
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
//如果有店铺id传入,则查询店铺
|
||||
if (StringUtils.isNotEmpty(statisticsQueryParam.getStoreId())) {
|
||||
queryWrapper.eq("store_id", statisticsQueryParam.getStoreId());
|
||||
}
|
||||
queryWrapper.select("COUNT(0) AS num");
|
||||
queryWrapper.groupBy("member_id");
|
||||
Map paymentMemberNum = this.getMap(queryWrapper);
|
||||
@ -150,11 +167,15 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
* @param dates
|
||||
* @param orderOverviewVO
|
||||
*/
|
||||
private void initAfterSale(Date[] dates, OrderOverviewVO orderOverviewVO) {
|
||||
private void initAfterSale(Date[] dates, OrderOverviewVO orderOverviewVO, StatisticsQueryParam statisticsQueryParam) {
|
||||
//付款订单数,付款金额
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
//如果有店铺id传入,则查询店铺
|
||||
if (StringUtils.isNotEmpty(statisticsQueryParam.getStoreId())) {
|
||||
queryWrapper.eq("store_id", statisticsQueryParam.getStoreId());
|
||||
}
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.REFUND.name());
|
||||
Map payment = this.getMap(queryWrapper);
|
||||
orderOverviewVO.setRefundOrderNum(payment != null && payment.containsKey("num") ? (Long) payment.get("num") : 0L);
|
||||
@ -193,7 +214,7 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
public Integer orderNum(String orderStatus) {
|
||||
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper();
|
||||
//queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(orderStatus),Order::getOrderStatus,orderStatus);
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(orderStatus), Order::getOrderStatus, orderStatus);
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
Order::getStoreId, UserContext.getCurrentUser().getStoreId());
|
||||
return orderService.count(queryWrapper);
|
||||
|
Loading…
x
Reference in New Issue
Block a user