Commit 038a7f48 authored by libin's avatar libin

会员统计

parent 231f9135
...@@ -65,7 +65,7 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -65,7 +65,7 @@ public enum OrderReceivedStatisticsSignEnum {
return resultMap; return resultMap;
} }
}, },
ORDER_TOTAL_REAL_AMOUNT("ad_otra","实际收入"){ /* ORDER_TOTAL_REAL_AMOUNT("ad_otra","实际收入"){
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
...@@ -80,8 +80,8 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -80,8 +80,8 @@ public enum OrderReceivedStatisticsSignEnum {
resultMap.put(getSign(),orderReceivedStatisticsVos); resultMap.put(getSign(),orderReceivedStatisticsVos);
return resultMap; return resultMap;
} }
}, },*/
ORDER_REAL_AVG_AMOUNT("ae_oravga","实际arpu"){ /* ORDER_REAL_AVG_AMOUNT("ae_oravga","实际arpu"){
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
...@@ -103,7 +103,7 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -103,7 +103,7 @@ public enum OrderReceivedStatisticsSignEnum {
resultMap.put(getSign(),orderReceivedStatisticsVos); resultMap.put(getSign(),orderReceivedStatisticsVos);
return resultMap; return resultMap;
} }
}; }*/;
private String sign; private String sign;
private String desc; private String desc;
private static Map<String,OrderReceivedStatisticsSignEnum> orderReceivedStatisticsSignEnumMap; private static Map<String,OrderReceivedStatisticsSignEnum> orderReceivedStatisticsSignEnumMap;
......
...@@ -5,7 +5,6 @@ import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics; ...@@ -5,7 +5,6 @@ import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics;
import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
...@@ -72,7 +71,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -72,7 +71,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_REAL_TOTAL_AMOUNT("bd_rvrta","实际租车金额") { /* RENT_VEHICLE_REAL_TOTAL_AMOUNT("bd_rvrta","实际租车金额") {
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
...@@ -87,8 +86,8 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -87,8 +86,8 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
resultMap.put(getSign(),orderReceivedStatisticsVos); resultMap.put(getSign(),orderReceivedStatisticsVos);
return resultMap; return resultMap;
} }
}, },*/
RENT_VEHICLE_REAL_AVG_AMOUNT("be_rvravga","实际租车arpu") { /* RENT_VEHICLE_REAL_AVG_AMOUNT("be_rvravga","实际租车arpu") {
@Override @Override
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) { Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object, List<OrderReceivedStatisticsBase>> orderMap) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(); Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>();
...@@ -110,7 +109,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -110,7 +109,7 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
resultMap.put(getSign(),orderReceivedStatisticsVos); resultMap.put(getSign(),orderReceivedStatisticsVos);
return resultMap; return resultMap;
} }
}; }*/;
private String sign; private String sign;
private String desc; private String desc;
private static Map<String,OrderRentVehicleReceivedStatisticsSignEnum> orderRentVehicleReceivedStatisticsSignEnumMap; private static Map<String,OrderRentVehicleReceivedStatisticsSignEnum> orderRentVehicleReceivedStatisticsSignEnumMap;
......
...@@ -21,6 +21,12 @@ public enum StatisticsStatusEnum { ...@@ -21,6 +21,12 @@ public enum StatisticsStatusEnum {
public static final int FINISH = 6; public static final int FINISH = 6;
public static final int CANCEL = 2; public static final int CANCEL = 2;
public static final int UNFINISH = 3; public static final int UNFINISH = 3;
public static final int DEFAULT_COMPANY=1;
public static final int ORDER_MEMBER_TYPE=3;
public static final int ORDER_RENT_VEHICLE_TYPE=1;
public static final int ORDER_TOUR_TYPE=2;
public static final String UN_PAY_STATE="0";
public static final int NO_PAY_WAY=99;
public static List<String> orderStates; public static List<String> orderStates;
public static List<String> orderOrigins; public static List<String> orderOrigins;
...@@ -53,7 +59,7 @@ public enum StatisticsStatusEnum { ...@@ -53,7 +59,7 @@ public enum StatisticsStatusEnum {
for (String orderPayWay : orderPayWays) { for (String orderPayWay : orderPayWays) {
for (String orderState : orderStates) { for (String orderState : orderStates) {
//订单来源-支付方式-订单状态 //订单来源-支付方式-订单状态
orderStatisticsStateGroups.add(String.format("%s-%s-%s",orderOrigin,orderPayWay,orderState)); orderStatisticsStateGroups.add(String.format("%s-%s-%s",orderOrigin,orderState==UN_PAY_STATE?String.valueOf(NO_PAY_WAY):orderPayWay,orderState));
} }
} }
} }
...@@ -61,7 +67,7 @@ public enum StatisticsStatusEnum { ...@@ -61,7 +67,7 @@ public enum StatisticsStatusEnum {
} }
public static List<String> getOtherStatisticsStateGroup(List<Integer> companyIdList,List<String> statisticsStates){ public static List<String> getOtherStatisticsStateGroup(List<Integer> companyIdList,List<String> statisticsStates){
List<String> stateGroupList = CollectionUtils.isEmpty(companyIdList)?statisticsStateGroup():statisticsSateGroupWithCompanys(companyIdList); List<String> stateGroupList = CollectionUtils.isEmpty(companyIdList)?statisticsStateGroup():statisticsSateGroupWithCompanys(companyIdList);
stateGroupList.retainAll(statisticsStates); stateGroupList.removeAll(statisticsStates);
return stateGroupList; return stateGroupList;
} }
...@@ -73,7 +79,7 @@ public enum StatisticsStatusEnum { ...@@ -73,7 +79,7 @@ public enum StatisticsStatusEnum {
String[] status = stateGroup.split("-"); String[] status = stateGroup.split("-");
targetObj.setCrtTime(new Date()); targetObj.setCrtTime(new Date());
targetObj.setCompanyId(Integer.valueOf(status[0])); targetObj.setCompanyId(Integer.valueOf(status[0]));
targetObj.setIsFinish(Integer.valueOf(status[3])); targetObj.setHasPay(Integer.valueOf(status[3]));
targetObj.setOrderOrigin(Integer.valueOf(status[1])); targetObj.setOrderOrigin(Integer.valueOf(status[1]));
targetObj.setPayWay(Integer.valueOf(status[2])); targetObj.setPayWay(Integer.valueOf(status[2]));
targetObj.setDate(date); targetObj.setDate(date);
......
...@@ -27,12 +27,5 @@ public class OrderReceivedStatistics extends OrderReceivedStatisticsBase impleme ...@@ -27,12 +27,5 @@ public class OrderReceivedStatistics extends OrderReceivedStatisticsBase impleme
@ApiModelProperty(value = "订单总量") @ApiModelProperty(value = "订单总量")
private Integer totalQuantity; private Integer totalQuantity;
/**
* 实际收入
*/
@Column(name = "real_amount")
@ApiModelProperty(value = "实际收入")
private BigDecimal realAmount;
} }
...@@ -62,11 +62,15 @@ public class OrderReceivedStatisticsBase { ...@@ -62,11 +62,15 @@ public class OrderReceivedStatisticsBase {
protected BigDecimal totalAmount; protected BigDecimal totalAmount;
/** /**
* 是否完成 1 完成 0 未完成 * 订单总量
*/ */
@Column(name = "is_finish") @Column(name = "total_quantity")
@ApiModelProperty(value = "是否完成 1 完成 0 未完成") @ApiModelProperty(value = "订单总量")
protected Integer isFinish; private Integer totalQuantity;
@Column(name = "has_pay")
@ApiModelProperty(value = "是否支付 1已经支付 0未支付")
protected Integer hasPay;
/** /**
* '支付来源 1--app;2--小程序', * '支付来源 1--app;2--小程序',
......
...@@ -28,11 +28,4 @@ public class OrderRentVehicleReceivedStatistics extends OrderReceivedStatisticsB ...@@ -28,11 +28,4 @@ public class OrderRentVehicleReceivedStatistics extends OrderReceivedStatisticsB
@ApiModelProperty(value = "订单总量") @ApiModelProperty(value = "订单总量")
private Integer totalQuantity; private Integer totalQuantity;
/**
* 实际收入
*/
@Column(name = "real_amount")
@ApiModelProperty(value = "实际收入")
private BigDecimal realAmount;
} }
...@@ -21,12 +21,7 @@ import java.util.Date; ...@@ -21,12 +21,7 @@ import java.util.Date;
public class OrderTourReceivedStatistics extends OrderReceivedStatisticsBase implements Serializable { public class OrderTourReceivedStatistics extends OrderReceivedStatisticsBase implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 订单总量
*/
@Column(name = "total_quantity")
@ApiModelProperty(value = "订单总量")
private Integer totalQuantity;
} }
...@@ -29,6 +29,7 @@ public class OrderDTO { ...@@ -29,6 +29,7 @@ public class OrderDTO {
private Date crtTime; private Date crtTime;
private Integer companyId; private Integer companyId;
private String stateGroup; private String stateGroup;
private Integer hasPay;
/** /**
* 会员相关 * 会员相关
*/ */
......
...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.biz; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.biz;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.enumconstant.LevelEnum; import com.github.wxiaoqi.security.common.enumconstant.LevelEnum;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -41,16 +42,13 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive ...@@ -41,16 +42,13 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
List<OrderMemberReceivedStatistics> orderMemberReceivedStatisticsList = new ArrayList<>(18); List<OrderMemberReceivedStatistics> orderMemberReceivedStatisticsList = new ArrayList<>(18);
DateTime yesterday = DateUtil.yesterday(); DateTime yesterday = DateUtil.yesterday();
Date startDate = date == null ? DateUtil.beginOfDay(yesterday).toJdkDate() : DateUtil.beginOfDay(date); Date startDate = date == null ? DateUtil.beginOfDay(yesterday).toJdkDate() : DateUtil.beginOfDay(date);
Date endDate = date == null ? DateUtil.endOfDay(yesterday).toJdkDate() : DateUtil.beginOfDay(date); Date endDate = date == null ? DateUtil.endOfDay(yesterday).toJdkDate() : DateUtil.endOfDay(date);
List<OrderDTO> orders = baseOrderBiz.selectOrdersByTypeAndTime(Arrays.asList(3), startDate, endDate); List<OrderDTO> orders = baseOrderBiz.selectOrdersByTypeAndTime(Arrays.asList(StatisticsStatusEnum.ORDER_TOUR_TYPE), startDate, endDate);
//数据处理 把 完成状态6 取消状态2 的其他数据转换成状态为未完成3 //数据处理 把 完成状态6 取消状态2 的其他数据转换成状态为未完成3
Map<String, Map<Integer, List<OrderDTO>>> ordersMap = orders.stream().peek(x -> { Map<String, Map<Integer, List<OrderDTO>>> ordersMap = orders.stream().peek(x -> {
Integer status = x.getStatus() == StatisticsStatusEnum.CANCEL ? StatisticsStatusEnum.CANCEL : x.getStatus() == StatisticsStatusEnum.FINISH ? StatisticsStatusEnum.FINISH : StatisticsStatusEnum.UNFINISH; x.setStateGroup(String.format("%d-%d-%d-%d", StatisticsStatusEnum.DEFAULT_COMPANY, x.getOrderOrigin(), x.getPayWay()==null?StatisticsStatusEnum.NO_PAY_WAY:x.getPayWay(),x.getHasPay()));
x.setStatus(status); }).collect(Collectors.groupingBy(OrderDTO::getStateGroup, Collectors.groupingBy(OrderDTO::getMemberLevel, Collectors.toList())));
x.setStateGroup(String.format("%d-%d-%d-%d", 1, x.getOrderOrigin(), x.getPayWay(), x.getStatus()));
})
.collect(Collectors.groupingBy(OrderDTO::getStateGroup, Collectors.groupingBy(OrderDTO::getMemberLevel, Collectors.toList())));
if (!ordersMap.isEmpty()) { if (!ordersMap.isEmpty()) {
Set<Map.Entry<String, Map<Integer, List<OrderDTO>>>> orderSet = ordersMap.entrySet(); Set<Map.Entry<String, Map<Integer, List<OrderDTO>>>> orderSet = ordersMap.entrySet();
...@@ -81,13 +79,15 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive ...@@ -81,13 +79,15 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
orderMemberReceivedStatistics.setTotalDiamondQuantity(diamondOrders.size()); orderMemberReceivedStatistics.setTotalDiamondQuantity(diamondOrders.size());
BigDecimal totalAmount = totalCommAmount.add(totalGoldAmount).add(totalDiamondAmount); BigDecimal totalAmount = totalCommAmount.add(totalGoldAmount).add(totalDiamondAmount);
Integer totalQuantity = orderMemberReceivedStatistics.getTotalCommonQuantity() + orderMemberReceivedStatistics.getTotalGoldQuantity() + orderMemberReceivedStatistics.getTotalDiamondQuantity();
orderMemberReceivedStatistics.setTotalQuantity(totalQuantity);
orderMemberReceivedStatistics.setTotalAmount(totalAmount); orderMemberReceivedStatistics.setTotalAmount(totalAmount);
orderMemberReceivedStatisticsList.add(orderMemberReceivedStatistics); orderMemberReceivedStatisticsList.add(orderMemberReceivedStatistics);
} }
} }
//创建剩余状态数据 //创建剩余状态数据
List stisticsActiveState = ordersMap.isEmpty() ? Collections.EMPTY_LIST : Lists.newArrayList(ordersMap.keySet()); List stisticsActiveState = ordersMap.isEmpty() ? Collections.EMPTY_LIST : Lists.newArrayList(ordersMap.keySet());
List<OrderMemberReceivedStatistics> otherStatisticsStateGroupList = createOtherStatisticsStateGroupList(startDate, stisticsActiveState, 1); List<OrderMemberReceivedStatistics> otherStatisticsStateGroupList = createOtherStatisticsStateGroupList(startDate, stisticsActiveState, StatisticsStatusEnum.DEFAULT_COMPANY);
orderMemberReceivedStatisticsList.addAll(otherStatisticsStateGroupList); orderMemberReceivedStatisticsList.addAll(otherStatisticsStateGroupList);
//保存 //保存
insertMemberReceivedStatisticsBatch(orderMemberReceivedStatisticsList); insertMemberReceivedStatisticsBatch(orderMemberReceivedStatisticsList);
...@@ -105,8 +105,9 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive ...@@ -105,8 +105,9 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
List<OrderMemberReceivedStatistics> orderMemberReceivedStatisticsList = new ArrayList<>(); List<OrderMemberReceivedStatistics> orderMemberReceivedStatisticsList = new ArrayList<>();
OrderMemberReceivedStatistics orderMemberReceivedStatistics; OrderMemberReceivedStatistics orderMemberReceivedStatistics;
List<String> otherStatisticsStateGroup = StatisticsStatusEnum.getOtherStatisticsStateGroup(Arrays.asList(companyId), statisticsStateGroups); List<String> otherStatisticsStateGroup = StatisticsStatusEnum.getOtherStatisticsStateGroup(Arrays.asList(companyId), statisticsStateGroups);
OrderMemberReceivedStatistics orderMemberReceivedStatisticsClone = new OrderMemberReceivedStatistics();
for (String stateGroup : otherStatisticsStateGroup) { for (String stateGroup : otherStatisticsStateGroup) {
orderMemberReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, stateGroup, new OrderMemberReceivedStatistics()); orderMemberReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, stateGroup, ObjectUtil.cloneByStream(orderMemberReceivedStatisticsClone));
orderMemberReceivedStatistics.setTotalAmount(BigDecimal.ZERO); orderMemberReceivedStatistics.setTotalAmount(BigDecimal.ZERO);
orderMemberReceivedStatistics.setTotalCommonQuantity(0); orderMemberReceivedStatistics.setTotalCommonQuantity(0);
orderMemberReceivedStatistics.setToalCommonAmmount(BigDecimal.ZERO); orderMemberReceivedStatistics.setToalCommonAmmount(BigDecimal.ZERO);
......
...@@ -205,8 +205,8 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM ...@@ -205,8 +205,8 @@ public class OrderReceivedStatisticsBiz extends BaseBiz<OrderReceivedStatisticsM
return mapper.selectOrderReceivedStatisticsList(orderReceivedStatisticsFindDTO); return mapper.selectOrderReceivedStatisticsList(orderReceivedStatisticsFindDTO);
} }
/** /**取两个集合的交集
* 取两个集合的交集 *
* *
* @param source * @param source
* @param target * @param target
......
...@@ -31,6 +31,7 @@ import java.util.stream.Collectors; ...@@ -31,6 +31,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehicleReceivedStatisticsMapper, OrderRentVehicleReceivedStatistics> { public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehicleReceivedStatisticsMapper, OrderRentVehicleReceivedStatistics> {
private final BaseOrderBiz baseOrderBiz;
private final OrderAccountBiz orderAccountBiz; private final OrderAccountBiz orderAccountBiz;
private final VehicleFeign vehicleFeign; private final VehicleFeign vehicleFeign;
private final int PAY_ORDER=101; private final int PAY_ORDER=101;
...@@ -41,22 +42,24 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi ...@@ -41,22 +42,24 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
public void orderRentVehicleReceivedStatistics(Date startDate,Date endDate) { public void orderRentVehicleReceivedStatistics(Date startDate,Date endDate) {
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = new ArrayList<>(); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = new ArrayList<>();
List<OrderDTO> orderDTOS = baseOrderBiz.selectOrdersByTypeAndTime(Arrays.asList(StatisticsStatusEnum.ORDER_RENT_VEHICLE_TYPE), startDate, endDate);
//订单账目信息 //订单账目信息
List<OrderAccountBo> orderAccountBoList = orderAccountBiz.selectByDate(startDate,endDate); // List<OrderAccountBo> orderAccountBoList = orderAccountBiz.selectByDate(startDate,endDate);
//数据处理 把 完成状态6 取消状态2 的其他数据转换成状态为未完成3 //数据处理 把 未支付的单的支付方式 设置为 99
Map<String, List<OrderAccountBo>> orderAccountBoMap = orderAccountBoList.stream().peek(x -> { Map<String, List<OrderDTO>> ordersMap = orderDTOS.stream().peek(x -> {
Integer status = x.getStatus() == StatisticsStatusEnum.CANCEL ? StatisticsStatusEnum.CANCEL : x.getStatus() == StatisticsStatusEnum.FINISH ? StatisticsStatusEnum.FINISH : StatisticsStatusEnum.UNFINISH; x.setStateGroup(String.format("%d-%d-%d-%d", x.getCompanyId(), x.getOrderOrigin(), x.getPayWay() == null ? StatisticsStatusEnum.NO_PAY_WAY : x.getPayWay(), x.getStatus()));
x.setStatus(status); }).collect(Collectors.groupingBy(OrderDTO::getStateGroup, Collectors.toList()));
x.setStateGroup(String.format("%d-%d-%d-%d", 1, x.getOrderOrigin(), x.getPayWay() == null ? 1 : x.getPayWay(), x.getStatus()));
}).collect(Collectors.groupingBy(OrderAccountBo::getStateGroup, Collectors.toList()));
if (!orderAccountBoMap.isEmpty()) { if (!ordersMap.isEmpty()) {
Set<Map.Entry<String, List<OrderAccountBo>>> ordersSet = orderAccountBoMap.entrySet(); Set<Map.Entry<String, List<OrderDTO>>> ordersSet = ordersMap.entrySet();
for (Map.Entry<String, List<OrderAccountBo>> orderEntry : ordersSet) { for (Map.Entry<String, List<OrderDTO>> orderEntry : ordersSet) {
String orderKey = orderEntry.getKey(); String orderKey = orderEntry.getKey();
List<OrderAccountBo> orderAccountBos = orderEntry.getValue(); List<OrderDTO> orderDTOList = orderEntry.getValue();
OrderRentVehicleReceivedStatistics orderRentVehicleReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, orderKey, new OrderRentVehicleReceivedStatistics()); OrderRentVehicleReceivedStatistics orderRentVehicleReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, orderKey, new OrderRentVehicleReceivedStatistics());
BigDecimal totalAmount = BigDecimal.ZERO; /* BigDecimal totalAmount = BigDecimal.ZERO;
BigDecimal refundAmount = BigDecimal.ZERO; BigDecimal refundAmount = BigDecimal.ZERO;
for (OrderAccountBo orderAccountBo : orderAccountBos) { for (OrderAccountBo orderAccountBo : orderAccountBos) {
OrderAccountDetail accountDetailEntity = orderAccountBo.getAccountDetailEntity(); OrderAccountDetail accountDetailEntity = orderAccountBo.getAccountDetailEntity();
...@@ -67,13 +70,12 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi ...@@ -67,13 +70,12 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
} }
} }
orderRentVehicleReceivedStatistics.setTotalAmount(totalAmount); orderRentVehicleReceivedStatistics.setTotalAmount(totalAmount);
orderRentVehicleReceivedStatistics.setRealAmount(totalAmount.subtract(refundAmount));
long size = orderAccountBos.stream().map(OrderDTO::getId).distinct().count(); long size = orderAccountBos.stream().map(OrderDTO::getId).distinct().count();
orderRentVehicleReceivedStatistics.setTotalQuantity(Integer.valueOf(String.valueOf(size))); orderRentVehicleReceivedStatistics.setTotalQuantity(Integer.valueOf(String.valueOf(size)));*/
} }
} }
List<Integer> companyIds = vehicleFeign.findCompanyIdsByAreaId(null); List<Integer> companyIds = vehicleFeign.findCompanyIdsByAreaId(null);
List stisticsActiveState = orderAccountBoMap.isEmpty() ? Collections.EMPTY_LIST : Lists.newArrayList(orderAccountBoMap.keySet()); List stisticsActiveState = ordersMap.isEmpty() ? Collections.EMPTY_LIST : Lists.newArrayList(ordersMap.keySet());
List<OrderRentVehicleReceivedStatistics> otherStatisticsStateGroupList = createOtherStatisticsStateGroupList(startDate,stisticsActiveState,companyIds); List<OrderRentVehicleReceivedStatistics> otherStatisticsStateGroupList = createOtherStatisticsStateGroupList(startDate,stisticsActiveState,companyIds);
orderRentVehicleReceivedStatisticsList.addAll(otherStatisticsStateGroupList); orderRentVehicleReceivedStatisticsList.addAll(otherStatisticsStateGroupList);
insertMemberReceivedStatisticsBatch(orderRentVehicleReceivedStatisticsList); insertMemberReceivedStatisticsBatch(orderRentVehicleReceivedStatisticsList);
...@@ -92,7 +94,6 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi ...@@ -92,7 +94,6 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
List<String> otherStatisticsStateGroup = StatisticsStatusEnum.getOtherStatisticsStateGroup(companyIds, statisticsStateGroups); List<String> otherStatisticsStateGroup = StatisticsStatusEnum.getOtherStatisticsStateGroup(companyIds, statisticsStateGroups);
List<OrderRentVehicleReceivedStatistics> result = otherStatisticsStateGroup.parallelStream().map(stateGroup->{ List<OrderRentVehicleReceivedStatistics> result = otherStatisticsStateGroup.parallelStream().map(stateGroup->{
OrderRentVehicleReceivedStatistics orderRentVehicleReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, stateGroup, new OrderRentVehicleReceivedStatistics()); OrderRentVehicleReceivedStatistics orderRentVehicleReceivedStatistics = StatisticsStatusEnum.wrapStatisticsObject(startDate, stateGroup, new OrderRentVehicleReceivedStatistics());
orderRentVehicleReceivedStatistics.setRealAmount(BigDecimal.ZERO);
orderRentVehicleReceivedStatistics.setTotalAmount(BigDecimal.ZERO); orderRentVehicleReceivedStatistics.setTotalAmount(BigDecimal.ZERO);
orderRentVehicleReceivedStatistics.setTotalQuantity(0); orderRentVehicleReceivedStatistics.setTotalQuantity(0);
return orderRentVehicleReceivedStatistics; return orderRentVehicleReceivedStatistics;
......
...@@ -355,9 +355,9 @@ ...@@ -355,9 +355,9 @@
<select id="selectOrdersByTypeAndTime" resultType="com.xxfc.platform.order.pojo.dto.OrderDTO"> <select id="selectOrdersByTypeAndTime" resultType="com.xxfc.platform.order.pojo.dto.OrderDTO">
select bo.*,omd.memberLevel,IFNULL(orvd.start_company_id,otd.start_company_id) AS `companyId` from (select `id`,`type`,`status`,`order_amount` AS `orderAmount`, `real_amount`AS select bo.*,omd.memberLevel,IFNULL(orvd.start_company_id,otd.start_company_id) AS `companyId` from (select `id`,`type`,`status`,`order_amount` AS `orderAmount`, `real_amount`AS
`realAmount`,`order_origin` AS `orderOrigin`, `realAmount`,`order_origin` AS `orderOrigin`, `has_pay` AS `hasPay`,
`pay_way` AS `payWay`,`crt_time`AS `crtTime` `pay_way` AS `payWay`,`crt_time`AS `crtTime`
from `base_order` where `has_pay`=1 and `crt_time` between #{startDate} and #{endDate} and `type` IN <foreach collection="types" from `base_order` where (`crt_time` between #{startDate} and #{endDate} or `pay_time` between #{startDate} and #{endDate} ) and `type` IN <foreach collection="types"
item="type" item="type"
open="(" close=")" open="(" close=")"
separator=","> separator=",">
......
...@@ -2,6 +2,7 @@ import com.xxfc.platform.order.OrderApplication; ...@@ -2,6 +2,7 @@ import com.xxfc.platform.order.OrderApplication;
import com.xxfc.platform.order.biz.DailyOrderStatisticsBiz; import com.xxfc.platform.order.biz.DailyOrderStatisticsBiz;
import com.xxfc.platform.order.biz.OrderMemberReceivedStatisticsBiz; import com.xxfc.platform.order.biz.OrderMemberReceivedStatisticsBiz;
import com.xxfc.platform.order.jobhandler.BaseOrderStatisticsJobHandler; import com.xxfc.platform.order.jobhandler.BaseOrderStatisticsJobHandler;
import com.xxfc.platform.universal.utils.DateUtil;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -41,7 +42,8 @@ public class ServiceTest { ...@@ -41,7 +42,8 @@ public class ServiceTest {
@Test @Test
public void testMemberStatisticsInsert(){ public void testMemberStatisticsInsert(){
orderMemberReceivedStatisticsBiz.orderMemberReceivedStatistics(); Date date = cn.hutool.core.date.DateTime.of("2019-11-17", "yyyy-MM-dd").toJdkDate();
orderMemberReceivedStatisticsBiz.orderMemberReceivedStatistics(date);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment