Commit 690c9950 authored by zuoyh's avatar zuoyh

Merge remote-tracking branch 'origin/order_received_statistics' into order_received_statistics

parents 4109bb27 0a88c199
...@@ -5,10 +5,8 @@ import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase; ...@@ -5,10 +5,8 @@ import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase;
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.util.ArrayList; import java.util.*;
import java.util.HashMap; import java.util.function.Function;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -18,13 +16,13 @@ import java.util.stream.Collectors; ...@@ -18,13 +16,13 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36 * @data 2019/11/11 10:36
*/ */
public enum OrderReceivedStatisticsSignEnum { public enum OrderReceivedStatisticsSignEnum {
ORDER_TOTAL_AMOUNT("ota","订单总额"){ ORDER_TOTAL_AMOUNT("aa_ota","订单总额"){
@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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = V.stream().map(x -> (OrderReceivedStatistics) x).collect(Collectors.toList()); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal totalAmount = orderReceivedStatisticsList.stream().map(x -> x.getTotalAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal totalAmount = orderReceivedStatisticsList.stream().map(x -> x.getTotalAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,totalAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,totalAmount,null);
...@@ -34,13 +32,13 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -34,13 +32,13 @@ public enum OrderReceivedStatisticsSignEnum {
return resultMap; return resultMap;
} }
}, },
ORDER_TOTAL_QUANTITY("otq","订单量"){ ORDER_TOTAL_QUANTITY("ab_otq","订单量"){
@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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = V.stream().map(x -> (OrderReceivedStatistics) x).collect(Collectors.toList()); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer totalQuantity = orderReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y); Integer totalQuantity = orderReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y);
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,totalQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,totalQuantity);
...@@ -50,13 +48,13 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -50,13 +48,13 @@ public enum OrderReceivedStatisticsSignEnum {
return resultMap; return resultMap;
} }
}, },
ORDER_AVG_QUANTITY("oavgq","订单平均量"){ ORDER_AVG_QUANTITY("ac_oavgq","订单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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = V.stream().map(x -> (OrderReceivedStatistics) x).collect(Collectors.toList()); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer avgQuantity = orderReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/V.size(); Integer avgQuantity = orderReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/V.size();
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity);
...@@ -66,13 +64,13 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -66,13 +64,13 @@ public enum OrderReceivedStatisticsSignEnum {
return resultMap; return resultMap;
} }
}, },
ORDER_TOTAL_REAL_AMOUNT("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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = V.stream().map(x -> (OrderReceivedStatistics) x).collect(Collectors.toList()); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal realAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAmount,null);
...@@ -82,13 +80,13 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -82,13 +80,13 @@ public enum OrderReceivedStatisticsSignEnum {
return resultMap; return resultMap;
} }
}, },
ORDER_REAL_AVG_AMOUNT("oravga","订单实际平均总额"){ 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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderReceivedStatistics> orderReceivedStatisticsList = V.stream().map(x -> (OrderReceivedStatistics) x).collect(Collectors.toList()); List<OrderReceivedStatistics> orderReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAvgAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size())); BigDecimal realAvgAmount = orderReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size()));
OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0); OrderReceivedStatistics orderReceivedStatistics = orderReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null);
...@@ -100,6 +98,11 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -100,6 +98,11 @@ public enum OrderReceivedStatisticsSignEnum {
}; };
private String sign; private String sign;
private String desc; private String desc;
private static Map<String,OrderReceivedStatisticsSignEnum> orderReceivedStatisticsSignEnumMap;
static {
orderReceivedStatisticsSignEnumMap = EnumSet.allOf(OrderReceivedStatisticsSignEnum.class).stream().collect(Collectors.toMap(OrderReceivedStatisticsSignEnum::getSign, Function.identity()));
}
OrderReceivedStatisticsSignEnum(String sign, String desc) { OrderReceivedStatisticsSignEnum(String sign, String desc) {
this.sign = sign; this.sign = sign;
...@@ -112,6 +115,16 @@ public enum OrderReceivedStatisticsSignEnum { ...@@ -112,6 +115,16 @@ public enum OrderReceivedStatisticsSignEnum {
*/ */
abstract Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object,List<OrderReceivedStatisticsBase>> orderMap); abstract Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object,List<OrderReceivedStatisticsBase>> orderMap);
public static Map<String, List<OrderReceivedStatisticsVo>> orderReceivedStatistics(Map<Object,List<OrderReceivedStatisticsBase>> orderMap,List<String> signs){
Map<String,List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(signs.size());
for (String sign : signs) {
OrderReceivedStatisticsSignEnum orderReceivedStatisticsSignEnum = orderReceivedStatisticsSignEnumMap.get(sign);
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap = orderReceivedStatisticsSignEnum.wrapToMap(orderMap);
resultMap.putAll(wrapToMap);
}
return resultMap;
}
public String getSign() { public String getSign() {
return sign; return sign;
} }
......
...@@ -6,10 +6,8 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -6,10 +6,8 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap; import java.util.function.Function;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -19,13 +17,13 @@ import java.util.stream.Collectors; ...@@ -19,13 +17,13 @@ import java.util.stream.Collectors;
* @data 2019/11/11 10:36 * @data 2019/11/11 10:36
*/ */
public enum OrderRentVehicleReceivedStatisticsSignEnum{ public enum OrderRentVehicleReceivedStatisticsSignEnum{
RENT_VEHICLE_TOTAL_AMOUNT("rvta","租车订单总额"){ RENT_VEHICLE_TOTAL_AMOUNT("ba_rvta","租车订单总额"){
@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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = V.stream().map(x -> (OrderRentVehicleReceivedStatistics) x).collect(Collectors.toList()); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal totalAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal totalAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,totalAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,totalAmount,null);
...@@ -35,13 +33,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -35,13 +33,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_TOTAL_QUANTITY("rvtq","租车订单量") { RENT_VEHICLE_TOTAL_QUANTITY("bb_rvtq","租车订单量") {
@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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = V.stream().map(x -> (OrderRentVehicleReceivedStatistics) x).collect(Collectors.toList()); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer totalQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y); Integer totalQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y);
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,totalQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,totalQuantity);
...@@ -51,13 +49,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -51,13 +49,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_AVG_QUANTITY("rvaq","租车订单平均量") { RENT_VEHICLE_AVG_QUANTITY("bc_rvavgq","租车订单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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = V.stream().map(x -> (OrderRentVehicleReceivedStatistics) x).collect(Collectors.toList()); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
Integer avgQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/V.size(); Integer avgQuantity = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getTotalQuantity()).reduce(0, (x, y) -> x+y)/V.size();
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,null,avgQuantity);
...@@ -67,13 +65,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -67,13 +65,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_REAL_TOTAL_AMOUNT("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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = V.stream().map(x -> (OrderRentVehicleReceivedStatistics) x).collect(Collectors.toList()); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal realAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAmount,null);
...@@ -83,13 +81,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -83,13 +81,13 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
return resultMap; return resultMap;
} }
}, },
RENT_VEHICLE_REAL_AVG_AMOUNT("rvraa","实际租车平均金额") { 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<>();
List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>(); List<OrderReceivedStatisticsVo> orderReceivedStatisticsVos = new ArrayList<>();
orderMap.forEach((K,V)->{ orderMap.forEach((K,V)->{
List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = V.stream().map(x -> (OrderRentVehicleReceivedStatistics) x).collect(Collectors.toList()); List<OrderRentVehicleReceivedStatistics> orderRentVehicleReceivedStatisticsList = ReceivedStatisticsEnum.convertToTargetBean(V);
BigDecimal realAvgAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size()), RoundingMode.HALF_UP); BigDecimal realAvgAmount = orderRentVehicleReceivedStatisticsList.stream().map(x -> x.getRealAmount()).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)).divide(new BigDecimal(V.size()), RoundingMode.HALF_UP);
OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0); OrderRentVehicleReceivedStatistics orderReceivedStatistics = orderRentVehicleReceivedStatisticsList.get(0);
OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null); OrderReceivedStatisticsVo receivedStatisticsVo = ReceivedStatisticsEnum.createOrderReceivedStatistics(orderReceivedStatistics,realAvgAmount,null);
...@@ -101,6 +99,11 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -101,6 +99,11 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
}; };
private String sign; private String sign;
private String desc; private String desc;
private static Map<String,OrderRentVehicleReceivedStatisticsSignEnum> orderRentVehicleReceivedStatisticsSignEnumMap;
static {
orderRentVehicleReceivedStatisticsSignEnumMap = EnumSet.allOf(OrderRentVehicleReceivedStatisticsSignEnum.class).stream().collect(Collectors.toMap(OrderRentVehicleReceivedStatisticsSignEnum::getSign, Function.identity()));
}
OrderRentVehicleReceivedStatisticsSignEnum(String sign, String desc) { OrderRentVehicleReceivedStatisticsSignEnum(String sign, String desc) {
this.sign = sign; this.sign = sign;
...@@ -113,6 +116,16 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{ ...@@ -113,6 +116,16 @@ public enum OrderRentVehicleReceivedStatisticsSignEnum{
*/ */
abstract Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object,List<OrderReceivedStatisticsBase>> orderMap); abstract Map<String, List<OrderReceivedStatisticsVo>> wrapToMap(Map<Object,List<OrderReceivedStatisticsBase>> orderMap);
public static Map<String, List<OrderReceivedStatisticsVo>> orderMemberstatisticsMap(Map<Object, List<OrderReceivedStatisticsBase>> orderRentVehiclestatisticsMap, List<String> signs) {
Map<String, List<OrderReceivedStatisticsVo>> resultMap = new HashMap<>(signs.size());
for (String sign : signs) {
OrderRentVehicleReceivedStatisticsSignEnum orderRentVehicleReceivedStatisticsSignEnum = orderRentVehicleReceivedStatisticsSignEnumMap.get(sign);
Map<String, List<OrderReceivedStatisticsVo>> wrapToMap = orderRentVehicleReceivedStatisticsSignEnum.wrapToMap(orderRentVehiclestatisticsMap);
resultMap.putAll(wrapToMap);
}
return resultMap;
}
public String getSign() { public String getSign() {
return sign; return sign;
} }
......
package com.xxfc.platform.order.contant.enumerate; package com.xxfc.platform.order.contant.enumerate;
import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase; import com.xxfc.platform.order.entity.OrderReceivedStatisticsBase;
import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics;
import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.util.Collections;
import java.util.*; import java.util.EnumSet;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -19,7 +21,7 @@ import java.util.stream.Collectors; ...@@ -19,7 +21,7 @@ import java.util.stream.Collectors;
public enum ReceivedStatisticsEnum { public enum ReceivedStatisticsEnum {
DAY(1, "按日统计") { DAY(1, "按日统计") {
@Override @Override
Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<OrderReceivedStatisticsBase> orderReceivedStatisticsBases) { Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases) {
if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) { if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
...@@ -28,7 +30,7 @@ public enum ReceivedStatisticsEnum { ...@@ -28,7 +30,7 @@ public enum ReceivedStatisticsEnum {
}, },
WEEK(2, "按周统计") { WEEK(2, "按周统计") {
@Override @Override
Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<OrderReceivedStatisticsBase> orderReceivedStatisticsBases) { Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases) {
if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) { if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
...@@ -37,15 +39,24 @@ public enum ReceivedStatisticsEnum { ...@@ -37,15 +39,24 @@ public enum ReceivedStatisticsEnum {
}, },
MONTH(3, "按月统计") { MONTH(3, "按月统计") {
@Override @Override
Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<OrderReceivedStatisticsBase> orderReceivedStatisticsBases) { Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases) {
if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) { if (CollectionUtils.isEmpty(orderReceivedStatisticsBases)) {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
return orderReceivedStatisticsBases.stream().collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList())); return orderReceivedStatisticsBases.stream().peek(x -> {
OrderReceivedStatisticsBase orderReceivedStatisticsBase = (OrderReceivedStatisticsBase) x;
orderReceivedStatisticsBase.setDate(null);
orderReceivedStatisticsBase.setWeekOfYear(null);
}).collect(Collectors.groupingBy(OrderReceivedStatisticsBase::getMonth, Collectors.toList()));
} }
}; };
private int wayCode; private int wayCode;
private String value; private String value;
private static Map<Integer, ReceivedStatisticsEnum> statisticsEnumMap;
static {
statisticsEnumMap = EnumSet.allOf(ReceivedStatisticsEnum.class).stream().collect(Collectors.toMap(ReceivedStatisticsEnum::getWayCode, Function.identity()));
}
ReceivedStatisticsEnum(int wayCode, String value) { ReceivedStatisticsEnum(int wayCode, String value) {
this.wayCode = wayCode; this.wayCode = wayCode;
...@@ -54,20 +65,56 @@ public enum ReceivedStatisticsEnum { ...@@ -54,20 +65,56 @@ public enum ReceivedStatisticsEnum {
/** /**
* 统计方式 * 统计方式
*
* @param orderReceivedStatisticsBases * @param orderReceivedStatisticsBases
* @return * @return
*/ */
abstract Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<OrderReceivedStatisticsBase> orderReceivedStatisticsBases); abstract Map<Object, List<OrderReceivedStatisticsBase>> wrapMap(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases);
public static Map<Object, List<OrderReceivedStatisticsBase>> orderstatistics(List<? extends OrderReceivedStatisticsBase> orderReceivedStatisticsBases, int wayCode) {
ReceivedStatisticsEnum statisticsEnum = createInstance(wayCode);
return statisticsEnum.wrapMap(orderReceivedStatisticsBases);
}
private static ReceivedStatisticsEnum createInstance(int wayCode) {
return statisticsEnumMap.get(wayCode);
}
/**
* 类型转换
*
* @param source
* @param <T>
* @return
*/
public static <T> List<T> convertToTargetBean(List<? extends OrderReceivedStatisticsBase> source) {
return source.stream().map(x -> (T) x).collect(Collectors.toList());
}
public static OrderReceivedStatisticsVo createOrderReceivedStatistics(OrderReceivedStatisticsBase orderReceivedStatisticsBase, BigDecimal amount,Integer quantity){ public static OrderReceivedStatisticsVo createOrderReceivedStatistics(OrderReceivedStatisticsBase orderReceivedStatisticsBase, BigDecimal amount, Integer quantity) {
return OrderReceivedStatisticsVo.builder() return OrderReceivedStatisticsVo.builder()
.date(orderReceivedStatisticsBase.getDate()) .date(orderReceivedStatisticsBase.getDate())
.month(orderReceivedStatisticsBase.getMonth()) .month(orderReceivedStatisticsBase.getMonth())
.weekOfYear(orderReceivedStatisticsBase.getWeekOfYear()) .weekOfYear(orderReceivedStatisticsBase.getWeekOfYear())
.weekOfYear(orderReceivedStatisticsBase.getYear()) .year(orderReceivedStatisticsBase.getYear())
.orderNum(quantity) .orderNum(quantity)
.orderAmount(amount) .orderAmount(amount)
.build(); .build();
} }
public int getWayCode() {
return wayCode;
}
public void setWayCode(int wayCode) {
this.wayCode = wayCode;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
} }
...@@ -56,13 +56,6 @@ public class OrderReceivedStatistics extends OrderReceivedStatisticsBase impleme ...@@ -56,13 +56,6 @@ public class OrderReceivedStatistics extends OrderReceivedStatisticsBase impleme
@ApiModelProperty(value = "实际收入") @ApiModelProperty(value = "实际收入")
private BigDecimal realAmount; private BigDecimal realAmount;
/**
* 实际平均收入
*/
@Column(name = "real_avg_amount")
@ApiModelProperty(value = "实际平均收入")
private BigDecimal realAvgAmount;
/** /**
* 是否完成 1 完成 0 未完成 * 是否完成 1 完成 0 未完成
*/ */
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/** /**
* 旅游订单统计 * 旅游订单统计
......
...@@ -21,7 +21,7 @@ public class OrderReceivedStatisticsFindDTO { ...@@ -21,7 +21,7 @@ public class OrderReceivedStatisticsFindDTO {
private Date startDate; private Date startDate;
@ApiModelProperty("统计的结束时间 yyyy-MM-dd") @ApiModelProperty("统计的结束时间 yyyy-MM-dd")
private Date endDate; private Date endDate;
@ApiModelProperty("统计方式 1:日 2:周 3:") @ApiModelProperty("统计方式 1:日 2:周 3:")
@NotNull(message = "统计方式不能为null") @NotNull(message = "统计方式不能为null")
private Integer statisticalWay; private Integer statisticalWay;
@ApiModelProperty("订单状态 0:未完成 1:已完成") @ApiModelProperty("订单状态 0:未完成 1:已完成")
...@@ -32,5 +32,5 @@ public class OrderReceivedStatisticsFindDTO { ...@@ -32,5 +32,5 @@ public class OrderReceivedStatisticsFindDTO {
private Integer payWay; private Integer payWay;
@ApiModelProperty("统计项标识") @ApiModelProperty("统计项标识")
@NotNull(message = "统计标识不能为null") @NotNull(message = "统计标识不能为null")
private List<Integer> statisticalSigns; private List<String> statisticalSigns;
} }
...@@ -20,12 +20,13 @@ import java.util.Date; ...@@ -20,12 +20,13 @@ import java.util.Date;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class OrderReceivedStatisticsVo { public class OrderReceivedStatisticsVo {
private String year;
@ApiModelProperty("日期-->日统计方式") @ApiModelProperty("日期-->日统计方式")
private Date date; private Date date;
@ApiModelProperty("第几周---->周统计方式") @ApiModelProperty("第几周---->周统计方式")
private Integer weekOfYear; private String weekOfYear;
@ApiModelProperty("月统计") @ApiModelProperty("月统计")
private Integer month; private String month;
@ApiModelProperty("订单总额|实际收入|平均收入") @ApiModelProperty("订单总额|实际收入|平均收入")
private BigDecimal orderAmount; private BigDecimal orderAmount;
@ApiModelProperty("订单总量|订单平均量") @ApiModelProperty("订单总量|订单平均量")
......
...@@ -13,7 +13,8 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -13,7 +13,8 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(scanBasePackages = { @SpringBootApplication(scanBasePackages = {
"com.xxfc.platform", "com.xxfc.platform",
"com.github.wxiaoqi.security.common.handler", "com.github.wxiaoqi.security.common.handler",
"com.github.wxiaoqi.security.common.log" "com.github.wxiaoqi.security.common.log",
"com.github.wxiaoqi.security.common.support"
}) })
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableScheduling @EnableScheduling
......
...@@ -3,9 +3,12 @@ package com.xxfc.platform.order.biz; ...@@ -3,9 +3,12 @@ package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics; import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics;
import com.xxfc.platform.order.mapper.OrderMemberReceivedStatisticsMapper; import com.xxfc.platform.order.mapper.OrderMemberReceivedStatisticsMapper;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* 会员订单统计 * 会员订单统计
* *
...@@ -16,4 +19,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -16,4 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceivedStatisticsMapper,OrderMemberReceivedStatistics> { public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceivedStatisticsMapper,OrderMemberReceivedStatistics> {
public List<OrderMemberReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderMemberReceivedStatistics(orderReceivedStatisticsFindDTO);
}
} }
\ No newline at end of file
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics; import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics;
...@@ -7,6 +8,8 @@ import com.xxfc.platform.order.mapper.OrderRentVehicleReceivedStatisticsMapper; ...@@ -7,6 +8,8 @@ import com.xxfc.platform.order.mapper.OrderRentVehicleReceivedStatisticsMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* 租车订单统计 * 租车订单统计
* *
...@@ -17,4 +20,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,4 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehicleReceivedStatisticsMapper,OrderRentVehicleReceivedStatistics> { public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehicleReceivedStatisticsMapper,OrderRentVehicleReceivedStatistics> {
public List<OrderRentVehicleReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderRentVehicleReceivedStatistics(orderReceivedStatisticsFindDTO);
}
} }
\ No newline at end of file
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderTourReceivedStatistics; import com.xxfc.platform.order.entity.OrderTourReceivedStatistics;
...@@ -7,6 +8,8 @@ import com.xxfc.platform.order.mapper.OrderTourReceivedStatisticsMapper; ...@@ -7,6 +8,8 @@ import com.xxfc.platform.order.mapper.OrderTourReceivedStatisticsMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* 旅游订单统计 * 旅游订单统计
* *
...@@ -17,4 +20,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,4 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class OrderTourReceivedStatisticsBiz extends BaseBiz<OrderTourReceivedStatisticsMapper,OrderTourReceivedStatistics> { public class OrderTourReceivedStatisticsBiz extends BaseBiz<OrderTourReceivedStatisticsMapper,OrderTourReceivedStatistics> {
public List<OrderTourReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderTourReceivedStatistics(orderReceivedStatisticsFindDTO);
}
} }
\ No newline at end of file
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics; import com.xxfc.platform.order.entity.OrderMemberReceivedStatistics;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 会员订单统计 * 会员订单统计
* *
...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-11-08 18:03:42 * @date 2019-11-08 18:03:42
*/ */
public interface OrderMemberReceivedStatisticsMapper extends Mapper<OrderMemberReceivedStatistics> { public interface OrderMemberReceivedStatisticsMapper extends Mapper<OrderMemberReceivedStatistics> {
List<OrderMemberReceivedStatistics> selectOrderMemberReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderReceivedStatistics; import com.xxfc.platform.order.entity.OrderReceivedStatistics;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 全部订单统计 * 全部订单统计
* *
...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-11-08 18:03:42 * @date 2019-11-08 18:03:42
*/ */
public interface OrderReceivedStatisticsMapper extends Mapper<OrderReceivedStatistics> { public interface OrderReceivedStatisticsMapper extends Mapper<OrderReceivedStatistics> {
List<OrderReceivedStatistics> selectOrderReceivedStatisticsList(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics; import com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 租车订单统计 * 租车订单统计
* *
...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-11-08 18:03:42 * @date 2019-11-08 18:03:42
*/ */
public interface OrderRentVehicleReceivedStatisticsMapper extends Mapper<OrderRentVehicleReceivedStatistics> { public interface OrderRentVehicleReceivedStatisticsMapper extends Mapper<OrderRentVehicleReceivedStatistics> {
List<OrderRentVehicleReceivedStatistics> selectOrderRentVehicleReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
package com.xxfc.platform.order.mapper; package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderTourReceivedStatistics; import com.xxfc.platform.order.entity.OrderTourReceivedStatistics;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 旅游订单统计 * 旅游订单统计
* *
...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-11-08 18:03:42 * @date 2019-11-08 18:03:42
*/ */
public interface OrderTourReceivedStatisticsMapper extends Mapper<OrderTourReceivedStatistics> { public interface OrderTourReceivedStatisticsMapper extends Mapper<OrderTourReceivedStatistics> {
List<OrderTourReceivedStatistics> selectOrderTourReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
package com.xxfc.platform.order.rest.background; package com.xxfc.platform.order.rest.background;
import com.github.wxiaoqi.security.common.annotation.BeanValid;
import com.github.wxiaoqi.security.common.annotation.SimpleValid; import com.github.wxiaoqi.security.common.annotation.SimpleValid;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.OrderReceivedStatisticsBiz; import com.xxfc.platform.order.biz.OrderReceivedStatisticsBiz;
import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO; import com.xxfc.platform.order.pojo.dto.OrderReceivedStatisticsFindDTO;
...@@ -8,12 +10,18 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo; ...@@ -8,12 +10,18 @@ import com.xxfc.platform.order.pojo.vo.OrderReceivedStatisticsVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -23,6 +31,7 @@ import java.util.Map; ...@@ -23,6 +31,7 @@ import java.util.Map;
* @description 订单统计 * @description 订单统计
* @data 2019/11/11 9:14 * @data 2019/11/11 9:14
*/ */
@Slf4j
@Api(tags = "订单统计") @Api(tags = "订单统计")
@RestController @RestController
@RequestMapping("admin/order/received_statistics") @RequestMapping("admin/order/received_statistics")
...@@ -36,4 +45,22 @@ public class OrderReceivedStatisticsAdminController { ...@@ -36,4 +45,22 @@ public class OrderReceivedStatisticsAdminController {
Map<String, List<OrderReceivedStatisticsVo>> orderReceivedStatisticsPageVo = orderReceivedStatisticsBiz.getOrderReceivedStatisticsResult(orderReceivedStatisticsFindDTO); Map<String, List<OrderReceivedStatisticsVo>> orderReceivedStatisticsPageVo = orderReceivedStatisticsBiz.getOrderReceivedStatisticsResult(orderReceivedStatisticsFindDTO);
return ObjectRestResponse.succ(orderReceivedStatisticsPageVo); return ObjectRestResponse.succ(orderReceivedStatisticsPageVo);
} }
@ApiOperation("订单统计excel导出下载")
@PostMapping(value = "/export",consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ObjectRestResponse<Void> exportOrderReceivedStatistics(@RequestBody @BeanValid OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO, HttpServletResponse response){
try {
String name = DateTimeFormatter.ofPattern("YYYYMMddHHmmss").format(LocalDateTime.now());
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String filename = String.format("%s-OrderReceivedStatistics.xlsx",name);
response.setHeader("Content-Disposition","attachment;filename="+ new String(filename.getBytes(), "iso8859-1"));
ServletOutputStream outputStream = response.getOutputStream();
orderReceivedStatisticsBiz.exportOrderReceivedStatisticsData(orderReceivedStatisticsFindDTO,outputStream);
response.setCharacterEncoding("UTF-8");
return ObjectRestResponse.succ();
}catch (Exception ex){
log.error("导出数据失败【{}】",ex);
throw new BaseException("导出数据失败");
}
}
} }
...@@ -24,4 +24,30 @@ ...@@ -24,4 +24,30 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderMemberReceivedStatistics" resultMap="orderMemberReceivedStatisticsMap">
select * from `order_member_received_statistics` where 1=1
<if test="orderState!=null">
and `is_finish`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -12,13 +12,37 @@ ...@@ -12,13 +12,37 @@
<result property="weekOfYear" column="week_of_year"/> <result property="weekOfYear" column="week_of_year"/>
<result property="totalAmount" column="total_amount"/> <result property="totalAmount" column="total_amount"/>
<result property="totalQuantity" column="total_quantity"/> <result property="totalQuantity" column="total_quantity"/>
<result property="avgQuantity" column="avg_quantity"/>
<result property="realAmount" column="real_amount"/> <result property="realAmount" column="real_amount"/>
<result property="realAvgAmount" column="real_avg_amount"/>
<result property="isFinish" column="is_finish"/> <result property="isFinish" column="is_finish"/>
<result property="orderOrigin" column="order_origin"/> <result property="orderOrigin" column="order_origin"/>
<result property="payWay" column="pay_way"/> <result property="payWay" column="pay_way"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderReceivedStatisticsList" resultMap="orderReceivedStatisticsMap">
select * from `order_received_statistics` where 1=1
<if test="orderState!=null">
and `is_finish`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -12,14 +12,37 @@ ...@@ -12,14 +12,37 @@
<result property="weekOfYear" column="week_of_year"/> <result property="weekOfYear" column="week_of_year"/>
<result property="totalAmount" column="total_amount"/> <result property="totalAmount" column="total_amount"/>
<result property="totalQuantity" column="total_quantity"/> <result property="totalQuantity" column="total_quantity"/>
<result property="avgQuantity" column="avg_quantity"/>
<result property="realAmount" column="real_amount"/> <result property="realAmount" column="real_amount"/>
<result property="realAvgAmount" column="real_avg_amount"/>
<result property="isFinish" column="is_finish"/> <result property="isFinish" column="is_finish"/>
<result property="orderOrigin" column="order_origin"/> <result property="orderOrigin" column="order_origin"/>
<result property="payWay" column="pay_way"/> <result property="payWay" column="pay_way"/>
<result property="companyId" column="company_id"/> <result property="companyId" column="company_id"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderRentVehicleReceivedStatistics" resultMap="orderRentVehicleReceivedStatisticsMap">
select * from `order_rent_vehicle_received_statistics` where 1=1
<if test="orderState!=null">
and `is_finish`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
<result property="weekOfYear" column="week_of_year"/> <result property="weekOfYear" column="week_of_year"/>
<result property="totalAmount" column="total_amount"/> <result property="totalAmount" column="total_amount"/>
<result property="totalQuantity" column="total_quantity"/> <result property="totalQuantity" column="total_quantity"/>
<result property="avgQuantity" column="avg_quantity"/>
<result property="isFinish" column="is_finish"/> <result property="isFinish" column="is_finish"/>
<result property="orderOrigin" column="order_origin"/> <result property="orderOrigin" column="order_origin"/>
<result property="payWay" column="pay_way"/> <result property="payWay" column="pay_way"/>
...@@ -20,4 +19,30 @@ ...@@ -20,4 +19,30 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderTourReceivedStatistics" resultMap="orderTourReceivedStatisticsMap">
select * from `order_tour_received_statistics` where 1=1
<if test="orderState!=null">
and `is_finish`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
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