|
|
|
@@ -49,7 +49,11 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
@Override |
|
|
|
public CountUserGenderVO countUserGender(TenantEntity tenantEntity) { |
|
|
|
CountUserGenderVO result = new CountUserGenderVO(); |
|
|
|
List<CountUserByGenderDTO> dtos = wxCUserBasicInfoMapper.countUserByGender(tenantEntity.getFinalTenantId()); |
|
|
|
if(wxMallService.isgroupSupport(tenantEntity)){ |
|
|
|
tenantEntity.setParentTenantId(tenantEntity.getTenantId()); |
|
|
|
tenantEntity.setTenantId(null); |
|
|
|
} |
|
|
|
List<CountUserByGenderDTO> dtos = wxCUserBasicInfoMapper.countUserByGender(tenantEntity.getTenantId(), tenantEntity.getFinalTenantId()); |
|
|
|
List<CountUserByGenderDTO> totalGenders = dtos.stream().filter(x -> |
|
|
|
x.getGender() != null && (x.getGender().equals(EnumUserGender.GENDER_MALE.getCode()) || x.getGender().equals(EnumUserGender.GENDER_FEMALE.getCode())) |
|
|
|
).collect(Collectors.toList()); |
|
|
|
@@ -60,6 +64,9 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
|
|
|
|
Integer totalUserCount = totalGenders.stream().map(CountUserByGenderDTO::getUserCount).reduce(Integer::sum).orElse(0); |
|
|
|
result.setTotalUserCount(totalUserCount); |
|
|
|
if (totalUserCount == 0) { |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
List<CountUserGenderVO.CountUserGenderDetailVO> vos = totalGenders.stream().map(x -> { |
|
|
|
CountUserGenderVO.CountUserGenderDetailVO vo = CountUserByGenderDTO.mapping(x); |
|
|
|
@@ -90,9 +97,12 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
|
|
|
|
Integer totalShopCount = dtos.stream().map(CountShopByStatusDTO::getShopCount).reduce(Integer::sum).orElse(0); |
|
|
|
result.setTotalShopCount(totalShopCount); |
|
|
|
if (totalShopCount == 0) { |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
Integer rentedShopCount = shopMap.get(EnumShopStatus.RENT.getCode()); |
|
|
|
Integer unRentedShopCount = shopMap.get(EnumShopStatus.NOT_RENT.getCode()); |
|
|
|
Integer rentedShopCount = Optional.ofNullable(shopMap.get(EnumShopStatus.RENT.getCode())).orElse(0); |
|
|
|
Integer unRentedShopCount = Optional.ofNullable(shopMap.get(EnumShopStatus.NOT_RENT.getCode())).orElse(0); |
|
|
|
result.setRentedShopCount(rentedShopCount); |
|
|
|
result.setUnRentedShopCount(unRentedShopCount); |
|
|
|
|
|
|
|
@@ -107,8 +117,12 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
if (CollectionUtils.isEmpty(years)) { |
|
|
|
years.add(DateUtils.getYear(new Date())); |
|
|
|
} |
|
|
|
if(wxMallService.isgroupSupport(tenantInfo)){ |
|
|
|
tenantInfo.setParentTenantId(tenantInfo.getTenantId()); |
|
|
|
tenantInfo.setTenantId(null); |
|
|
|
} |
|
|
|
|
|
|
|
List<MonthCountMapping> mappings = wxCUserBasicInfoMapper.groupByDate(tenantInfo.getFinalTenantId(), years); |
|
|
|
List<MonthCountMapping> mappings = wxCUserBasicInfoMapper.groupByDate(tenantInfo.getTenantId(), tenantInfo.getFinalTenantId(), years); |
|
|
|
return getResult(years, mappings); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -118,7 +132,9 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
years.add(DateUtils.getYear(new Date())); |
|
|
|
} |
|
|
|
|
|
|
|
List<MonthCountMapping> mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years); |
|
|
|
List<TenantEntity> tenantInfos = wxMallService.getTenantEntitys(tenantInfo); |
|
|
|
List<String> tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); |
|
|
|
List<MonthCountMapping> mappings = wxUserVisitMapper.groupByDate(tenantIds, years); |
|
|
|
return getResult(years, mappings); |
|
|
|
} |
|
|
|
|
|
|
|
@@ -128,48 +144,61 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
years.add(DateUtils.getYear(new Date())); |
|
|
|
} |
|
|
|
|
|
|
|
List<MonthCountMapping> mappings = wxCUserCarMapper.groupByDate(tenantInfo.getFinalTenantId(), years); |
|
|
|
List<TenantEntity> tenantInfos = wxMallService.getTenantEntitys(tenantInfo); |
|
|
|
List<String> tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); |
|
|
|
List<MonthCountMapping> mappings = wxCUserCarMapper.groupByDate(tenantIds, years); |
|
|
|
return getResult(years, mappings); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CountOrderTrendVO> countOrderTrend(TenantEntity tenantInfo, Integer year) { |
|
|
|
year = year != null ? year : DateUtils.getYear(new Date()); |
|
|
|
|
|
|
|
List<CountOrderTrendVO> result = new ArrayList<>(); |
|
|
|
List<MonthOrderMapping> tradeOrderMappings = wxCouponOrderMapper.orderGroupByDate(tenantInfo.getFinalTenantId(), year); |
|
|
|
Map<String, MonthOrderMapping> tradeOrderMappingMap = tradeOrderMappings.stream().collect(Collectors.toMap(MonthOrderMapping::getName, x -> x)); |
|
|
|
List<MonthOrderMapping> verifiedOrderMappings = wxCouponOrderMapper.verifiedOrderGroupByDate(tenantInfo.getFinalTenantId(), year); |
|
|
|
Map<String, MonthOrderMapping> verifiedOrderMappingMap = verifiedOrderMappings.stream().collect(Collectors.toMap(MonthOrderMapping::getName, x -> x)); |
|
|
|
|
|
|
|
List<TenantEntity> tenantInfos = wxMallService.getTenantEntitys(tenantInfo); |
|
|
|
List<String> tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
List<MonthOrderMapping> tradeOrderMappings = new ArrayList<>(); |
|
|
|
List<MonthOrderMapping> verifiedOrderMappings = new ArrayList<>(); |
|
|
|
for (String tenantId : tenantIds) { |
|
|
|
tradeOrderMappings.addAll(wxCouponOrderMapper.orderGroupByDate(tenantId, year)); |
|
|
|
verifiedOrderMappings.addAll(wxCouponOrderMapper.verifiedOrderGroupByDate(tenantId, year)); |
|
|
|
} |
|
|
|
Map<String, List<MonthOrderMapping>> tradeOrderMappingMap = tradeOrderMappings.stream().collect(Collectors.groupingBy(MonthOrderMapping::getName)); |
|
|
|
Map<String, List<MonthOrderMapping>> verifiedOrderMappingMap = verifiedOrderMappings.stream().collect(Collectors.groupingBy(MonthOrderMapping::getName)); |
|
|
|
|
|
|
|
for (int i = 0; i < 12; i++) { |
|
|
|
CountOrderTrendVO vo = new CountOrderTrendVO(); |
|
|
|
String monthStr = DateUtils.getMonthStr(i + 1); |
|
|
|
MonthOrderMapping tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); |
|
|
|
List<MonthOrderMapping> tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); |
|
|
|
tradeOrder = Optional.ofNullable(tradeOrder).orElseGet(() -> { |
|
|
|
List<MonthOrderMapping> newTradeOrders = new ArrayList<>(); |
|
|
|
MonthOrderMapping newTradeOrder = new MonthOrderMapping(); |
|
|
|
newTradeOrder.setAmount(BigDecimal.ZERO); |
|
|
|
newTradeOrder.setCount(0); |
|
|
|
return newTradeOrder; |
|
|
|
newTradeOrders.add(newTradeOrder); |
|
|
|
return newTradeOrders; |
|
|
|
}); |
|
|
|
|
|
|
|
MonthOrderMapping verifiedOrder = verifiedOrderMappingMap.get(year + "-" + monthStr); |
|
|
|
List<MonthOrderMapping> verifiedOrder = verifiedOrderMappingMap.get(year + "-" + monthStr); |
|
|
|
verifiedOrder = Optional.ofNullable(verifiedOrder).orElseGet(() -> { |
|
|
|
List<MonthOrderMapping> newVerifiedOrders = new ArrayList<>(); |
|
|
|
MonthOrderMapping newVerifiedOrder = new MonthOrderMapping(); |
|
|
|
newVerifiedOrder.setAmount(BigDecimal.ZERO); |
|
|
|
newVerifiedOrder.setCount(0); |
|
|
|
newVerifiedOrder.setUserCount(0); |
|
|
|
return newVerifiedOrder; |
|
|
|
newVerifiedOrders.add(newVerifiedOrder); |
|
|
|
return newVerifiedOrders; |
|
|
|
}); |
|
|
|
|
|
|
|
CountOrderTrendVO.OrderInfo orderInfo = new CountOrderTrendVO.OrderInfo(); |
|
|
|
orderInfo.setAmount(tradeOrder.getAmount()); |
|
|
|
orderInfo.setCount(tradeOrder.getCount()); |
|
|
|
orderInfo.setAmount(tradeOrder.stream().map(MonthOrderMapping::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); |
|
|
|
orderInfo.setCount(tradeOrder.stream().map(MonthOrderMapping::getCount).reduce(Integer::sum).orElse(0)); |
|
|
|
|
|
|
|
CountOrderTrendVO.VerifiedOrderInfo verifiedOrderInfo = new CountOrderTrendVO.VerifiedOrderInfo(); |
|
|
|
verifiedOrderInfo.setAmount(verifiedOrder.getAmount()); |
|
|
|
verifiedOrderInfo.setCount(verifiedOrder.getCount()); |
|
|
|
verifiedOrderInfo.setUserCount(verifiedOrder.getUserCount()); |
|
|
|
verifiedOrderInfo.setAmount(verifiedOrder.stream().map(MonthOrderMapping::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)); |
|
|
|
verifiedOrderInfo.setCount(verifiedOrder.stream().map(MonthOrderMapping::getCount).reduce(Integer::sum).orElse(0)); |
|
|
|
verifiedOrderInfo.setUserCount(verifiedOrder.stream().map(MonthOrderMapping::getUserCount).reduce(Integer::sum).orElse(0)); |
|
|
|
|
|
|
|
vo.setMonth(monthStr); |
|
|
|
vo.setOrder(orderInfo); |
|
|
|
@@ -181,19 +210,30 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public CountBasicVO countBasic(TenantEntity tenantInfo) { |
|
|
|
BigDecimal totalTradingAmount = wxCouponOrderMapper.sumOrderAmount(tenantInfo.getFinalTenantId(), null, null); |
|
|
|
BigDecimal totalVerifiedAmount = wxCouponOrderMapper.sumOrderAmount(tenantInfo.getFinalTenantId(), EnumCouponOrderStatus.COUPON_ORDER_USED.getCode(), new Date()); |
|
|
|
BigDecimal todayTradingAmount = wxCouponOrderMapper.sumOrderAmount(tenantInfo.getFinalTenantId(), null, new Date()); |
|
|
|
|
|
|
|
Integer totalMerchantCount = wxMerchantMapper.countMerchant(tenantInfo.getFinalTenantId()); |
|
|
|
Integer totalUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getFinalTenantId(), null, null); |
|
|
|
Integer todayUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getFinalTenantId(), new Date(), new Date()); |
|
|
|
Integer weekUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getFinalTenantId(), DateUtils.getFirstDayForCurrWeek(), DateUtils.getLastDayForCurrWeek()); |
|
|
|
List<TenantEntity> tenantInfos = wxMallService.getTenantEntitys(tenantInfo); |
|
|
|
List<String> tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
SumVisitDTO sumVisit = wxUserVisitMapper.sumVisit(tenantInfo.getFinalTenantId(), null); |
|
|
|
SumVisitDTO todaySumVisit = wxUserVisitMapper.sumVisit(tenantInfo.getFinalTenantId(), new Date()); |
|
|
|
BigDecimal totalTradingAmount = BigDecimal.ZERO; |
|
|
|
BigDecimal totalVerifiedAmount = BigDecimal.ZERO; |
|
|
|
BigDecimal todayTradingAmount = BigDecimal.ZERO; |
|
|
|
for (String tenantId : tenantIds) { |
|
|
|
totalTradingAmount = totalTradingAmount.add(wxCouponOrderMapper.sumOrderAmount(tenantId, null, null)); |
|
|
|
totalVerifiedAmount = totalVerifiedAmount.add(wxCouponOrderMapper.sumOrderAmount(tenantId, EnumCouponOrderStatus.COUPON_ORDER_USED.getCode(), new Date())); |
|
|
|
todayTradingAmount = todayTradingAmount.add(wxCouponOrderMapper.sumOrderAmount(tenantId, null, new Date())); |
|
|
|
} |
|
|
|
|
|
|
|
Integer carUserCount = wxCUserCarMapper.countCarUser(tenantInfo.getFinalTenantId()); |
|
|
|
if(wxMallService.isgroupSupport(tenantInfo)){ |
|
|
|
tenantInfo.setParentTenantId(tenantInfo.getTenantId()); |
|
|
|
tenantInfo.setTenantId(null); |
|
|
|
} |
|
|
|
Integer totalUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getTenantId(), tenantInfo.getFinalTenantId(), null, null); |
|
|
|
Integer todayUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getTenantId(), tenantInfo.getFinalTenantId(), new Date(), new Date()); |
|
|
|
Integer weekUserCount = wxCUserBasicInfoMapper.countUser(tenantInfo.getTenantId(), tenantInfo.getFinalTenantId(), DateUtils.getFirstDayForCurrWeek(), DateUtils.getLastDayForCurrWeek()); |
|
|
|
|
|
|
|
Integer totalMerchantCount = wxMerchantMapper.countMerchant(tenantIds); |
|
|
|
SumVisitDTO sumVisit = wxUserVisitMapper.sumVisit(tenantIds, null); |
|
|
|
SumVisitDTO todaySumVisit = wxUserVisitMapper.sumVisit(tenantIds, new Date()); |
|
|
|
Integer carUserCount = wxCUserCarMapper.countCarUser(tenantIds); |
|
|
|
|
|
|
|
CountBasicVO vo = new CountBasicVO(); |
|
|
|
vo.setTotalTradingAmount(totalTradingAmount); |
|
|
|
|