| @@ -26,6 +26,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计会员性别信息") | @ApiOperation("驾驶舱大屏-统计会员性别信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countUserGender") | @GetMapping("/countUserGender") | ||||
| public ResultData countUserGender() { | public ResultData countUserGender() { | ||||
| return new ResultData(cockpitScreenService.countUserGender(getTenantInfo())); | return new ResultData(cockpitScreenService.countUserGender(getTenantInfo())); | ||||
| @@ -33,6 +34,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计商铺信息") | @ApiOperation("驾驶舱大屏-统计商铺信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countShop") | @GetMapping("/countShop") | ||||
| public ResultData countShop() { | public ResultData countShop() { | ||||
| return new ResultData(cockpitScreenService.countShop(getTenantInfo())); | return new ResultData(cockpitScreenService.countShop(getTenantInfo())); | ||||
| @@ -40,6 +42,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计会员信息") | @ApiOperation("驾驶舱大屏-统计会员信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countUser") | @GetMapping("/countUser") | ||||
| public ResultData countUser(@RequestParam("years") List<Integer> years) { | public ResultData countUser(@RequestParam("years") List<Integer> years) { | ||||
| return new ResultData(cockpitScreenService.countUser(getTenantInfo(), years)); | return new ResultData(cockpitScreenService.countUser(getTenantInfo(), years)); | ||||
| @@ -47,6 +50,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计触达用户信息") | @ApiOperation("驾驶舱大屏-统计触达用户信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countReachUser") | @GetMapping("/countReachUser") | ||||
| public ResultData countReachUser(@RequestParam("years") List<Integer> years) { | public ResultData countReachUser(@RequestParam("years") List<Integer> years) { | ||||
| return new ResultData(cockpitScreenService.countReachUser(getTenantInfo(), years)); | return new ResultData(cockpitScreenService.countReachUser(getTenantInfo(), years)); | ||||
| @@ -54,6 +58,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计车辆数量信息") | @ApiOperation("驾驶舱大屏-统计车辆数量信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countCar") | @GetMapping("/countCar") | ||||
| public ResultData countCar(@RequestParam("years") List<Integer> years) { | public ResultData countCar(@RequestParam("years") List<Integer> years) { | ||||
| return new ResultData(cockpitScreenService.countCar(getTenantInfo(), years)); | return new ResultData(cockpitScreenService.countCar(getTenantInfo(), years)); | ||||
| @@ -61,6 +66,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计订单趋势信息") | @ApiOperation("驾驶舱大屏-统计订单趋势信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countOrderTrend") | @GetMapping("/countOrderTrend") | ||||
| public ResultData countOrderTrend(@RequestParam("year") Integer year) { | public ResultData countOrderTrend(@RequestParam("year") Integer year) { | ||||
| return new ResultData(cockpitScreenService.countOrderTrend(getTenantInfo(), year)); | return new ResultData(cockpitScreenService.countOrderTrend(getTenantInfo(), year)); | ||||
| @@ -68,6 +74,7 @@ public class CockpitScreenController extends BaseController { | |||||
| @ApiVersion(group = SwaggerConstant.V_1_0_0) | @ApiVersion(group = SwaggerConstant.V_1_0_0) | ||||
| @ApiOperation("驾驶舱大屏-统计基本数据信息") | @ApiOperation("驾驶舱大屏-统计基本数据信息") | ||||
| @TenantIgnore | |||||
| @GetMapping("/countBasic") | @GetMapping("/countBasic") | ||||
| public ResultData countBasic() { | public ResultData countBasic() { | ||||
| return new ResultData(cockpitScreenService.countBasic(getTenantInfo())); | return new ResultData(cockpitScreenService.countBasic(getTenantInfo())); | ||||
| @@ -73,7 +73,7 @@ public interface WxCUserBasicInfoMapper extends CommonMapper<WxCUserBasicInfo, S | |||||
| * | * | ||||
| * @param finalTenantId | * @param finalTenantId | ||||
| */ | */ | ||||
| List<CountUserByGenderDTO> countUserByGender(@Param("finalTenantId") String finalTenantId); | |||||
| List<CountUserByGenderDTO> countUserByGender(@Param("tenantId") String tenantId, @Param("finalTenantId") String finalTenantId); | |||||
| /** | /** | ||||
| * 统计指定年,指定月的会员数量 | * 统计指定年,指定月的会员数量 | ||||
| @@ -92,8 +92,8 @@ public interface WxCUserBasicInfoMapper extends CommonMapper<WxCUserBasicInfo, S | |||||
| * @param years | * @param years | ||||
| * @return {@link List}<{@link MonthCountMapping}> | * @return {@link List}<{@link MonthCountMapping}> | ||||
| */ | */ | ||||
| List<MonthCountMapping> groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List<Integer> years); | |||||
| List<MonthCountMapping> groupByDate(@Param("tenantId") String tenantId, @Param("finalTenantId") String finalTenantId, @Param("years") List<Integer> years); | |||||
| Integer countUser(@Param("finalTenantId") String finalTenantId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); | |||||
| Integer countUser(@Param("tenantId") String tenantId, @Param("finalTenantId") String finalTenantId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); | |||||
| } | } | ||||
| @@ -27,7 +27,7 @@ public interface WxCUserCarMapper extends CommonMapper<WxCUserCar, Long> { | |||||
| * @param years | * @param years | ||||
| * @return {@link List}<{@link MonthCountMapping}> | * @return {@link List}<{@link MonthCountMapping}> | ||||
| */ | */ | ||||
| List<MonthCountMapping> groupByDate(String finalTenantId, List<Integer> years); | |||||
| List<MonthCountMapping> groupByDate(@Param("tenantIds") List<String> tenantIds, @Param("years") List<Integer> years); | |||||
| Integer countCarUser(@Param("finalTenantId") String finalTenantId); | |||||
| Integer countCarUser(@Param("tenantIds") List<String> tenantIds); | |||||
| } | } | ||||
| @@ -132,7 +132,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| * @param year | * @param year | ||||
| * @return {@link List}<{@link MonthOrderMapping}> | * @return {@link List}<{@link MonthOrderMapping}> | ||||
| */ | */ | ||||
| List<MonthOrderMapping> orderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); | |||||
| List<MonthOrderMapping> orderGroupByDate(@Param("tenantId") String tenantId, @Param("year") Integer year); | |||||
| /** | /** | ||||
| * 查询某年某月核销订单金额,订单数,用户数 | * 查询某年某月核销订单金额,订单数,用户数 | ||||
| @@ -141,7 +141,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| * @param year | * @param year | ||||
| * @return {@link List}<{@link MonthOrderMapping}> | * @return {@link List}<{@link MonthOrderMapping}> | ||||
| */ | */ | ||||
| List<MonthOrderMapping> verifiedOrderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); | |||||
| List<MonthOrderMapping> verifiedOrderGroupByDate(@Param("tenantId") String tenantId, @Param("year") Integer year); | |||||
| BigDecimal sumOrderAmount(@Param("finalTenantId") String finalTenantId, @Param("couponOrderStatus") Integer couponOrderStatus, @Param("specificDate") Date specificDate); | |||||
| BigDecimal sumOrderAmount(@Param("tenantId") String tenantId, @Param("couponOrderStatus") Integer couponOrderStatus, @Param("specificDate") Date specificDate); | |||||
| } | } | ||||
| @@ -58,5 +58,5 @@ public interface WxMerchantMapper extends CommonMapper<WxMerchant, Long> { | |||||
| List<WxMerchant> getMerchantListByIds(@Param("relationIds") List<Long> relationIds); | List<WxMerchant> getMerchantListByIds(@Param("relationIds") List<Long> relationIds); | ||||
| Integer countMerchant(@Param("finalTenantId") String finalTenantId); | |||||
| Integer countMerchant(@Param("tenantIds") List<String> tenantIds); | |||||
| } | } | ||||
| @@ -29,7 +29,7 @@ public interface WxUserVisitMapper extends CommonMapper<WxUserVisit, Long> { | |||||
| * @param years | * @param years | ||||
| * @return {@link List}<{@link MonthCountMapping}> | * @return {@link List}<{@link MonthCountMapping}> | ||||
| */ | */ | ||||
| List<MonthCountMapping> groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List<Integer> years); | |||||
| List<MonthCountMapping> groupByDate(@Param("tenantIds") List<String> tenantIds, @Param("years") List<Integer> years); | |||||
| SumVisitDTO sumVisit(@Param("finalTenantId") String finalTenantId, @Param("specificDate") Date specificDate); | |||||
| SumVisitDTO sumVisit(@Param("tenantIds") List<String> tenantIds, @Param("specificDate") Date specificDate); | |||||
| } | } | ||||
| @@ -49,7 +49,11 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| @Override | @Override | ||||
| public CountUserGenderVO countUserGender(TenantEntity tenantEntity) { | public CountUserGenderVO countUserGender(TenantEntity tenantEntity) { | ||||
| CountUserGenderVO result = new CountUserGenderVO(); | 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 -> | List<CountUserByGenderDTO> totalGenders = dtos.stream().filter(x -> | ||||
| x.getGender() != null && (x.getGender().equals(EnumUserGender.GENDER_MALE.getCode()) || x.getGender().equals(EnumUserGender.GENDER_FEMALE.getCode())) | x.getGender() != null && (x.getGender().equals(EnumUserGender.GENDER_MALE.getCode()) || x.getGender().equals(EnumUserGender.GENDER_FEMALE.getCode())) | ||||
| ).collect(Collectors.toList()); | ).collect(Collectors.toList()); | ||||
| @@ -60,6 +64,9 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| Integer totalUserCount = totalGenders.stream().map(CountUserByGenderDTO::getUserCount).reduce(Integer::sum).orElse(0); | Integer totalUserCount = totalGenders.stream().map(CountUserByGenderDTO::getUserCount).reduce(Integer::sum).orElse(0); | ||||
| result.setTotalUserCount(totalUserCount); | result.setTotalUserCount(totalUserCount); | ||||
| if (totalUserCount == 0) { | |||||
| return result; | |||||
| } | |||||
| List<CountUserGenderVO.CountUserGenderDetailVO> vos = totalGenders.stream().map(x -> { | List<CountUserGenderVO.CountUserGenderDetailVO> vos = totalGenders.stream().map(x -> { | ||||
| CountUserGenderVO.CountUserGenderDetailVO vo = CountUserByGenderDTO.mapping(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); | Integer totalShopCount = dtos.stream().map(CountShopByStatusDTO::getShopCount).reduce(Integer::sum).orElse(0); | ||||
| result.setTotalShopCount(totalShopCount); | 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.setRentedShopCount(rentedShopCount); | ||||
| result.setUnRentedShopCount(unRentedShopCount); | result.setUnRentedShopCount(unRentedShopCount); | ||||
| @@ -107,8 +117,12 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| if (CollectionUtils.isEmpty(years)) { | if (CollectionUtils.isEmpty(years)) { | ||||
| years.add(DateUtils.getYear(new Date())); | 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); | return getResult(years, mappings); | ||||
| } | } | ||||
| @@ -118,7 +132,9 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| years.add(DateUtils.getYear(new Date())); | 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); | return getResult(years, mappings); | ||||
| } | } | ||||
| @@ -128,48 +144,61 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| years.add(DateUtils.getYear(new Date())); | 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); | return getResult(years, mappings); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public List<CountOrderTrendVO> countOrderTrend(TenantEntity tenantInfo, Integer year) { | public List<CountOrderTrendVO> countOrderTrend(TenantEntity tenantInfo, Integer year) { | ||||
| year = year != null ? year : DateUtils.getYear(new Date()); | year = year != null ? year : DateUtils.getYear(new Date()); | ||||
| List<CountOrderTrendVO> result = new ArrayList<>(); | 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++) { | for (int i = 0; i < 12; i++) { | ||||
| CountOrderTrendVO vo = new CountOrderTrendVO(); | CountOrderTrendVO vo = new CountOrderTrendVO(); | ||||
| String monthStr = DateUtils.getMonthStr(i + 1); | String monthStr = DateUtils.getMonthStr(i + 1); | ||||
| MonthOrderMapping tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); | |||||
| List<MonthOrderMapping> tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); | |||||
| tradeOrder = Optional.ofNullable(tradeOrder).orElseGet(() -> { | tradeOrder = Optional.ofNullable(tradeOrder).orElseGet(() -> { | ||||
| List<MonthOrderMapping> newTradeOrders = new ArrayList<>(); | |||||
| MonthOrderMapping newTradeOrder = new MonthOrderMapping(); | MonthOrderMapping newTradeOrder = new MonthOrderMapping(); | ||||
| newTradeOrder.setAmount(BigDecimal.ZERO); | newTradeOrder.setAmount(BigDecimal.ZERO); | ||||
| newTradeOrder.setCount(0); | 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(() -> { | verifiedOrder = Optional.ofNullable(verifiedOrder).orElseGet(() -> { | ||||
| List<MonthOrderMapping> newVerifiedOrders = new ArrayList<>(); | |||||
| MonthOrderMapping newVerifiedOrder = new MonthOrderMapping(); | MonthOrderMapping newVerifiedOrder = new MonthOrderMapping(); | ||||
| newVerifiedOrder.setAmount(BigDecimal.ZERO); | newVerifiedOrder.setAmount(BigDecimal.ZERO); | ||||
| newVerifiedOrder.setCount(0); | newVerifiedOrder.setCount(0); | ||||
| newVerifiedOrder.setUserCount(0); | newVerifiedOrder.setUserCount(0); | ||||
| return newVerifiedOrder; | |||||
| newVerifiedOrders.add(newVerifiedOrder); | |||||
| return newVerifiedOrders; | |||||
| }); | }); | ||||
| CountOrderTrendVO.OrderInfo orderInfo = new CountOrderTrendVO.OrderInfo(); | 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(); | 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.setMonth(monthStr); | ||||
| vo.setOrder(orderInfo); | vo.setOrder(orderInfo); | ||||
| @@ -181,19 +210,30 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { | |||||
| @Override | @Override | ||||
| public CountBasicVO countBasic(TenantEntity tenantInfo) { | 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(); | CountBasicVO vo = new CountBasicVO(); | ||||
| vo.setTotalTradingAmount(totalTradingAmount); | vo.setTotalTradingAmount(totalTradingAmount); | ||||
| @@ -464,7 +464,7 @@ | |||||
| <select id="countVoList" parameterType="com.iformall.domain.po.WxCUserBasicInfo" resultType="java.lang.Integer"> | <select id="countVoList" parameterType="com.iformall.domain.po.WxCUserBasicInfo" resultType="java.lang.Integer"> | ||||
| select | select | ||||
| count(wcubi.id) | count(wcubi.id) | ||||
| from wx_c_user_basic_info wcubi | |||||
| from wx_c_user_basic_info wcubifilterWhereConditions | |||||
| <include refid="dynamicVoWhereConditions"/> | <include refid="dynamicVoWhereConditions"/> | ||||
| </select> | </select> | ||||
| @@ -571,10 +571,17 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="countUserByGender" resultType="com.iformall.domain.dto.cockpit.CountUserByGenderDTO"> | <select id="countUserByGender" resultType="com.iformall.domain.dto.cockpit.CountUserByGenderDTO"> | ||||
| SELECT sex AS gender, COUNT(id) AS userCount | |||||
| FROM wx_c_user_basic_info | |||||
| WHERE final_tenant_id = #{finalTenantId} | |||||
| GROUP BY sex; | |||||
| SELECT | |||||
| sex AS gender, COUNT(id) AS userCount | |||||
| FROM | |||||
| wx_c_user_basic_info | |||||
| WHERE | |||||
| final_tenant_id = #{finalTenantId} | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| AND `tenant_id` LIKE concat('%,', #{tenantId},',%') | |||||
| </if> | |||||
| GROUP BY | |||||
| sex; | |||||
| </select> | </select> | ||||
| <select id="countUserByMonth" resultType="java.lang.Integer"> | <select id="countUserByMonth" resultType="java.lang.Integer"> | ||||
| SELECT COUNT(id) AS `count` | SELECT COUNT(id) AS `count` | ||||
| @@ -589,6 +596,9 @@ | |||||
| wx_c_user_basic_info | wx_c_user_basic_info | ||||
| WHERE | WHERE | ||||
| final_tenant_id = #{finalTenantId} | final_tenant_id = #{finalTenantId} | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| AND `tenant_id` LIKE concat('%,', #{tenantId},',%') | |||||
| </if> | |||||
| AND DATE_FORMAT( create_date, '%Y' ) IN | AND DATE_FORMAT( create_date, '%Y' ) IN | ||||
| <foreach collection="years" item="year" open="(" separator="," close=")"> | <foreach collection="years" item="year" open="(" separator="," close=")"> | ||||
| #{year} | #{year} | ||||
| @@ -603,6 +613,9 @@ | |||||
| wx_c_user_basic_info | wx_c_user_basic_info | ||||
| WHERE | WHERE | ||||
| final_tenant_id = #{finalTenantId} | final_tenant_id = #{finalTenantId} | ||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| AND `tenant_id` LIKE concat('%,', #{tenantId},',%') | |||||
| </if> | |||||
| <if test=" null != startDate"> | <if test=" null != startDate"> | ||||
| and DATE_FORMAT( create_date, '%Y-%m-%d' ) >= DATE_FORMAT( #{startDate}, '%Y-%m-%d' ) | and DATE_FORMAT( create_date, '%Y-%m-%d' ) >= DATE_FORMAT( #{startDate}, '%Y-%m-%d' ) | ||||
| </if> | </if> | ||||
| @@ -141,7 +141,10 @@ | |||||
| FROM | FROM | ||||
| wx_c_user_car | wx_c_user_car | ||||
| WHERE | WHERE | ||||
| tenant_id = #{finalTenantId} | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | |||||
| #{tenantId} | |||||
| </foreach> | |||||
| AND DATE_FORMAT( create_date, '%Y' ) IN | AND DATE_FORMAT( create_date, '%Y' ) IN | ||||
| <foreach collection="years" item="year" open="(" separator="," close=")"> | <foreach collection="years" item="year" open="(" separator="," close=")"> | ||||
| #{year} | #{year} | ||||
| @@ -155,7 +158,10 @@ | |||||
| FROM | FROM | ||||
| wx_c_user_car | wx_c_user_car | ||||
| WHERE | WHERE | ||||
| tenant_id = #{finalTenantId} | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | |||||
| #{tenantId} | |||||
| </foreach> | |||||
| </select> | </select> | ||||
| </mapper> | </mapper> | ||||
| @@ -1205,7 +1205,7 @@ | |||||
| FROM | FROM | ||||
| wx_coupon_order | wx_coupon_order | ||||
| WHERE | WHERE | ||||
| `tenant_id` = #{finalTenantId} | |||||
| tenant_id = #{tenantId} | |||||
| AND DATE_FORMAT( create_date, '%Y' ) = #{year} | AND DATE_FORMAT( create_date, '%Y' ) = #{year} | ||||
| GROUP BY | GROUP BY | ||||
| `name` | `name` | ||||
| @@ -1219,7 +1219,7 @@ | |||||
| FROM | FROM | ||||
| wx_coupon_order | wx_coupon_order | ||||
| WHERE | WHERE | ||||
| `tenant_id` = #{finalTenantId} | |||||
| tenant_id = #{tenantId} | |||||
| AND coupon_order_status = '1' | AND coupon_order_status = '1' | ||||
| AND DATE_FORMAT( create_date, '%Y' ) = #{year} | AND DATE_FORMAT( create_date, '%Y' ) = #{year} | ||||
| GROUP BY | GROUP BY | ||||
| @@ -1231,13 +1231,13 @@ | |||||
| FROM | FROM | ||||
| wx_coupon_order | wx_coupon_order | ||||
| WHERE | WHERE | ||||
| `tenant_id` = #{finalTenantId} | |||||
| <!-- <if test=" null != couponOrderStatus">--> | |||||
| <!-- and `coupon_order_status` = #{couponOrderStatus}--> | |||||
| <!-- </if>--> | |||||
| <!-- <if test=" null != specificDate">--> | |||||
| <!-- and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' )--> | |||||
| <!-- </if>--> | |||||
| `tenant_id` = #{tenantId} | |||||
| <if test=" null != couponOrderStatus"> | |||||
| and `coupon_order_status` = #{couponOrderStatus} | |||||
| </if> | |||||
| <if test=" null != specificDate"> | |||||
| and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' ) | |||||
| </if> | |||||
| </select> | </select> | ||||
| </mapper> | </mapper> | ||||
| @@ -503,7 +503,10 @@ | |||||
| FROM | FROM | ||||
| wx_merchant | wx_merchant | ||||
| WHERE | WHERE | ||||
| tenant_id = #{finalTenantId} | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | |||||
| #{tenantId} | |||||
| </foreach> | |||||
| </select> | </select> | ||||
| </mapper> | </mapper> | ||||
| @@ -620,16 +620,17 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="countShopByStatus" resultType="com.iformall.domain.dto.cockpit.CountShopByStatusDTO"> | <select id="countShopByStatus" resultType="com.iformall.domain.dto.cockpit.CountShopByStatusDTO"> | ||||
| SELECT `status` AS status, COUNT(id) AS shopCount | |||||
| FROM wx_shop | |||||
| SELECT | |||||
| `status` AS status, COUNT(id) AS shopCount | |||||
| FROM | |||||
| wx_shop | |||||
| WHERE | WHERE | ||||
| <if test="null != tenantIds and tenantIds.size() > 0"> | |||||
| tenant_id in | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | ||||
| #{tenantId} | #{tenantId} | ||||
| </foreach> | </foreach> | ||||
| </if> | |||||
| GROUP BY `status`; | |||||
| GROUP BY | |||||
| `status`; | |||||
| </select> | </select> | ||||
| </mapper> | </mapper> | ||||
| @@ -171,7 +171,10 @@ | |||||
| FROM | FROM | ||||
| wx_user_visit | wx_user_visit | ||||
| WHERE | WHERE | ||||
| tenant_id = #{finalTenantId} | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | |||||
| #{tenantId} | |||||
| </foreach> | |||||
| AND DATE_FORMAT( create_date, '%Y' ) IN | AND DATE_FORMAT( create_date, '%Y' ) IN | ||||
| <foreach collection="years" item="year" open="(" separator="," close=")"> | <foreach collection="years" item="year" open="(" separator="," close=")"> | ||||
| #{year} | #{year} | ||||
| @@ -186,7 +189,10 @@ | |||||
| FROM | FROM | ||||
| wx_user_visit | wx_user_visit | ||||
| WHERE | WHERE | ||||
| tenant_id = #{finalTenantId} | |||||
| tenant_id IN | |||||
| <foreach collection="tenantIds" index="index" item="tenantId" open="(" separator="," close=")"> | |||||
| #{tenantId} | |||||
| </foreach> | |||||
| <if test=" null != specificDate"> | <if test=" null != specificDate"> | ||||
| and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' ) | and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' ) | ||||
| </if> | </if> | ||||