订单统计时,店铺参数传递后台,统计结果不变问题处理
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
	 Chopper
						Chopper