diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/customer/CustomerController.java b/ghy-admin/src/main/java/com/ghy/web/controller/customer/CustomerController.java index 48b24eed..9aad3f8d 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/customer/CustomerController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/customer/CustomerController.java @@ -5,6 +5,7 @@ import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.core.page.TableDataInfo; import com.ghy.common.enums.PlaceStatus; +import com.ghy.common.enums.UserStatus; import com.ghy.common.utils.ExceptionUtil; import com.ghy.customer.domain.Customer; import com.ghy.customer.service.CustomerService; @@ -71,6 +72,19 @@ public class CustomerController extends BaseController { startPage(); List list = customerService.getCustomerList(customer); for (Customer curCustomer: list) { + List customerIds = new ArrayList(){{ + add(curCustomer.getCustomerId()); + }}; + if (customer.getIsDistributor()) { + // 分销商需要查询所有下一级分销用户作为统计条件 + Customer customerQry = new Customer(); + customerQry.setCustomerPlace(curCustomer.getCustomerId()); + customerQry.setStatus(Integer.valueOf(UserStatus.OK.getCode())); + List nextLevelCustomers = customerService.getCustomerList(customerQry); + List nextLevelCustomerIds = nextLevelCustomers.stream().map(Customer::getCustomerId).collect(Collectors.toList()); + customerIds.addAll(nextLevelCustomerIds); + } + // 本月第一天 LocalDate firstDayCurMonth = LocalDate.now().withDayOfMonth(1); // 今天 @@ -81,7 +95,7 @@ public class CustomerController extends BaseController { List analyseItems = new ArrayList(); // 客户数 Customer customerParams = new Customer(); - customerParams.setCustomerPlace(curCustomer.getCustomerId()); + customerParams.setCustomerPlaces(customerIds); AnalyseItem aItem1 = new AnalyseItem() .setType(AnalyseItemEnum.CUSTOMER_NUM.getType()) .setTitle(AnalyseItemEnum.CUSTOMER_NUM.getTitle()) @@ -113,14 +127,14 @@ public class CustomerController extends BaseController { // 本月订单数及本月订单额 OrderMaster orderParams1 = new OrderMaster(); - orderParams1.setCustomerId(curCustomer.getCustomerId()); + orderParams1.setCustomerIds(customerIds); orderParams1.setCreateTimeStart(firstDayCurMonth.atStartOfDay()); List ordersCurMonth1 = orderMasterService.selectOrderMasterList(orderParams1); List orderIdsCurMonth1 = ordersCurMonth1.stream().map(OrderMaster::getId).collect(Collectors.toList()); BigDecimal totalMoneyCurMonth1 = new BigDecimal(0); if (CollectionUtils.isNotEmpty(orderIdsCurMonth1)) { FinancialMaster financialParams1 = new FinancialMaster(); - financialParams1.setIds(orderIdsCurMonth1); + financialParams1.setOrderMasterIds(orderIdsCurMonth1); List financialsCurMonth1 = financialMasterService.selectFinancialMasterList(financialParams1); totalMoneyCurMonth1 = financialsCurMonth1.stream().map(FinancialMaster::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add); } @@ -139,7 +153,7 @@ public class CustomerController extends BaseController { // 上月订单数及上月订单额 OrderMaster orderParams2 = new OrderMaster(); - orderParams2.setCustomerId(curCustomer.getCustomerId()); + orderParams2.setCustomerIds(customerIds); orderParams2.setCreateTimeStart(firstDayCurMonth.atStartOfDay().minusMonths(1)); orderParams2.setCreateTimeEnd(firstDayCurMonth.atStartOfDay()); List ordersCurMonth2 = orderMasterService.selectOrderMasterList(orderParams2); @@ -147,7 +161,7 @@ public class CustomerController extends BaseController { BigDecimal totalMoneyCurMonth2 = new BigDecimal(0); if (CollectionUtils.isNotEmpty(orderIdsCurMonth2)) { FinancialMaster financialParams2 = new FinancialMaster(); - financialParams2.setIds(orderIdsCurMonth2); + financialParams2.setOrderMasterIds(orderIdsCurMonth2); List financialsCurMonth2 = financialMasterService.selectFinancialMasterList(financialParams2); totalMoneyCurMonth2 = financialsCurMonth2.stream().map(FinancialMaster::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add); } @@ -166,14 +180,14 @@ public class CustomerController extends BaseController { // 当天订单数及当天订单额 OrderMaster orderParams3 = new OrderMaster(); - orderParams3.setCustomerId(curCustomer.getCustomerId()); + orderParams3.setCustomerIds(customerIds); orderParams3.setCreateTimeStart(curDay.atStartOfDay()); List ordersCurDay = orderMasterService.selectOrderMasterList(orderParams3); List orderIdsCurDay = ordersCurDay.stream().map(OrderMaster::getId).collect(Collectors.toList()); BigDecimal totalMoneyCurDay = new BigDecimal(0); if (CollectionUtils.isNotEmpty(orderIdsCurDay)) { FinancialMaster financialParams3 = new FinancialMaster(); - financialParams3.setIds(orderIdsCurDay); + financialParams3.setOrderMasterIds(orderIdsCurDay); List financialsCurDay = financialMasterService.selectFinancialMasterList(financialParams3); totalMoneyCurDay = financialsCurDay.stream().map(FinancialMaster::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add); } @@ -192,14 +206,14 @@ public class CustomerController extends BaseController { // 7天订单数及7天订单额 OrderMaster orderParams4 = new OrderMaster(); - orderParams4.setCustomerId(curCustomer.getCustomerId()); + orderParams4.setCustomerIds(customerIds); orderParams4.setCreateTimeStart(firstDayCurWeek.atStartOfDay()); List ordersCurWeek = orderMasterService.selectOrderMasterList(orderParams3); List orderIdsCurWeek = ordersCurWeek.stream().map(OrderMaster::getId).collect(Collectors.toList()); BigDecimal totalMoneyCurWeek = new BigDecimal(0); if (CollectionUtils.isNotEmpty(orderIdsCurWeek)) { FinancialMaster financialParams4 = new FinancialMaster(); - financialParams4.setIds(orderIdsCurWeek); + financialParams4.setOrderMasterIds(orderIdsCurWeek); List financialsCurWeek = financialMasterService.selectFinancialMasterList(financialParams4); totalMoneyCurWeek = financialsCurWeek.stream().map(FinancialMaster::getTotalMoney).reduce(BigDecimal.ZERO, BigDecimal::add); } diff --git a/ghy-custom/src/main/java/com/ghy/customer/domain/Customer.java b/ghy-custom/src/main/java/com/ghy/customer/domain/Customer.java index 7a548c27..6b99ce3f 100644 --- a/ghy-custom/src/main/java/com/ghy/customer/domain/Customer.java +++ b/ghy-custom/src/main/java/com/ghy/customer/domain/Customer.java @@ -47,4 +47,8 @@ public class Customer extends BaseEntity { private Integer placeStatus; + // 是否为分销商 + private Boolean isDistributor; + + private List customerPlaces; } diff --git a/ghy-custom/src/main/resources/mapper/customer/CustomerMapper.xml b/ghy-custom/src/main/resources/mapper/customer/CustomerMapper.xml index 11cb8358..01df8c74 100644 --- a/ghy-custom/src/main/resources/mapper/customer/CustomerMapper.xml +++ b/ghy-custom/src/main/resources/mapper/customer/CustomerMapper.xml @@ -56,8 +56,14 @@ AND customer_place = #{customerPlace} + + AND customer_place in + + #{customerPlace} + + - AND update_time <= #{updateTimeStart} + AND update_time >= #{updateTimeStart} diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index 7ae13772..2b854638 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -89,4 +89,6 @@ public class OrderMaster extends BaseEntity { private Boolean isMonitoredOrder; private Integer allSelfAssigned; + + private List customerIds; } diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 4b33bb8a..dffcfce0 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -89,6 +89,12 @@ AND om.customer_id = #{customerId} + + AND om.customer_id in + + #{customerId} + + AND om.order_type = #{orderType} diff --git a/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialMaster.java b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialMaster.java index 255a4779..6b7fe9d6 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialMaster.java +++ b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialMaster.java @@ -68,6 +68,8 @@ public class FinancialMaster extends BaseEntity { private List details; + private List orderMasterIds; + public FinancialMaster() { } diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialMasterMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialMasterMapper.xml index 1a9e3b98..5b7a24d1 100644 --- a/ghy-payment/src/main/resources/mapper/financial/FinancialMasterMapper.xml +++ b/ghy-payment/src/main/resources/mapper/financial/FinancialMasterMapper.xml @@ -37,6 +37,12 @@ AND order_master_id = #{orderMasterId} + + AND order_master_id IN + + #{orderMasterId} + + AND order_master_id IN