diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java index e89a18e20..4ff880412 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java @@ -26,6 +26,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计会员性别信息") + @TenantIgnore @GetMapping("/countUserGender") public ResultData countUserGender() { return new ResultData(cockpitScreenService.countUserGender(getTenantInfo())); @@ -33,6 +34,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计商铺信息") + @TenantIgnore @GetMapping("/countShop") public ResultData countShop() { return new ResultData(cockpitScreenService.countShop(getTenantInfo())); @@ -40,6 +42,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计会员信息") + @TenantIgnore @GetMapping("/countUser") public ResultData countUser(@RequestParam("years") List years) { return new ResultData(cockpitScreenService.countUser(getTenantInfo(), years)); @@ -47,6 +50,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计触达用户信息") + @TenantIgnore @GetMapping("/countReachUser") public ResultData countReachUser(@RequestParam("years") List years) { return new ResultData(cockpitScreenService.countReachUser(getTenantInfo(), years)); @@ -54,6 +58,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计车辆数量信息") + @TenantIgnore @GetMapping("/countCar") public ResultData countCar(@RequestParam("years") List years) { return new ResultData(cockpitScreenService.countCar(getTenantInfo(), years)); @@ -61,6 +66,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计订单趋势信息") + @TenantIgnore @GetMapping("/countOrderTrend") public ResultData countOrderTrend(@RequestParam("year") Integer year) { return new ResultData(cockpitScreenService.countOrderTrend(getTenantInfo(), year)); @@ -68,6 +74,7 @@ public class CockpitScreenController extends BaseController { @ApiVersion(group = SwaggerConstant.V_1_0_0) @ApiOperation("驾驶舱大屏-统计基本数据信息") + @TenantIgnore @GetMapping("/countBasic") public ResultData countBasic() { return new ResultData(cockpitScreenService.countBasic(getTenantInfo())); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index cdfcef886..8febc7e6f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -73,7 +73,7 @@ public interface WxCUserBasicInfoMapper extends CommonMapper countUserByGender(@Param("finalTenantId") String finalTenantId); + List countUserByGender(@Param("tenantId") String tenantId, @Param("finalTenantId") String finalTenantId); /** * 统计指定年,指定月的会员数量 @@ -92,8 +92,8 @@ public interface WxCUserBasicInfoMapper extends CommonMapper */ - List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + List groupByDate(@Param("tenantId") String tenantId, @Param("finalTenantId") String finalTenantId, @Param("years") List 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); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java index 06d3b1ae9..e831fda8f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java @@ -27,7 +27,7 @@ public interface WxCUserCarMapper extends CommonMapper { * @param years * @return {@link List}<{@link MonthCountMapping}> */ - List groupByDate(String finalTenantId, List years); + List groupByDate(@Param("tenantIds") List tenantIds, @Param("years") List years); - Integer countCarUser(@Param("finalTenantId") String finalTenantId); + Integer countCarUser(@Param("tenantIds") List tenantIds); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 9e645beb3..c28541baf 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -132,7 +132,7 @@ public interface WxCouponOrderMapper extends CommonMapper { * @param year * @return {@link List}<{@link MonthOrderMapping}> */ - List orderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); + List orderGroupByDate(@Param("tenantId") String tenantId, @Param("year") Integer year); /** * 查询某年某月核销订单金额,订单数,用户数 @@ -141,7 +141,7 @@ public interface WxCouponOrderMapper extends CommonMapper { * @param year * @return {@link List}<{@link MonthOrderMapping}> */ - List verifiedOrderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); + List 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); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index f26a426df..785dff967 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -58,5 +58,5 @@ public interface WxMerchantMapper extends CommonMapper { List getMerchantListByIds(@Param("relationIds") List relationIds); - Integer countMerchant(@Param("finalTenantId") String finalTenantId); + Integer countMerchant(@Param("tenantIds") List tenantIds); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java index 19aacef9e..8f188f3aa 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java @@ -29,7 +29,7 @@ public interface WxUserVisitMapper extends CommonMapper { * @param years * @return {@link List}<{@link MonthCountMapping}> */ - List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + List groupByDate(@Param("tenantIds") List tenantIds, @Param("years") List years); - SumVisitDTO sumVisit(@Param("finalTenantId") String finalTenantId, @Param("specificDate") Date specificDate); + SumVisitDTO sumVisit(@Param("tenantIds") List tenantIds, @Param("specificDate") Date specificDate); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java index 831f4a843..b736d5e62 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java @@ -49,7 +49,11 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { @Override public CountUserGenderVO countUserGender(TenantEntity tenantEntity) { CountUserGenderVO result = new CountUserGenderVO(); - List dtos = wxCUserBasicInfoMapper.countUserByGender(tenantEntity.getFinalTenantId()); + if(wxMallService.isgroupSupport(tenantEntity)){ + tenantEntity.setParentTenantId(tenantEntity.getTenantId()); + tenantEntity.setTenantId(null); + } + List dtos = wxCUserBasicInfoMapper.countUserByGender(tenantEntity.getTenantId(), tenantEntity.getFinalTenantId()); List 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 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 mappings = wxCUserBasicInfoMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List 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 mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List tenantInfos = wxMallService.getTenantEntitys(tenantInfo); + List tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); + List 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 mappings = wxCUserCarMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List tenantInfos = wxMallService.getTenantEntitys(tenantInfo); + List tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); + List mappings = wxCUserCarMapper.groupByDate(tenantIds, years); return getResult(years, mappings); } @Override public List countOrderTrend(TenantEntity tenantInfo, Integer year) { year = year != null ? year : DateUtils.getYear(new Date()); - List result = new ArrayList<>(); - List tradeOrderMappings = wxCouponOrderMapper.orderGroupByDate(tenantInfo.getFinalTenantId(), year); - Map tradeOrderMappingMap = tradeOrderMappings.stream().collect(Collectors.toMap(MonthOrderMapping::getName, x -> x)); - List verifiedOrderMappings = wxCouponOrderMapper.verifiedOrderGroupByDate(tenantInfo.getFinalTenantId(), year); - Map verifiedOrderMappingMap = verifiedOrderMappings.stream().collect(Collectors.toMap(MonthOrderMapping::getName, x -> x)); + + List tenantInfos = wxMallService.getTenantEntitys(tenantInfo); + List tenantIds = tenantInfos.stream().map(TenantEntity::getTenantId).collect(Collectors.toList()); + + List tradeOrderMappings = new ArrayList<>(); + List verifiedOrderMappings = new ArrayList<>(); + for (String tenantId : tenantIds) { + tradeOrderMappings.addAll(wxCouponOrderMapper.orderGroupByDate(tenantId, year)); + verifiedOrderMappings.addAll(wxCouponOrderMapper.verifiedOrderGroupByDate(tenantId, year)); + } + Map> tradeOrderMappingMap = tradeOrderMappings.stream().collect(Collectors.groupingBy(MonthOrderMapping::getName)); + Map> 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 tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); tradeOrder = Optional.ofNullable(tradeOrder).orElseGet(() -> { + List 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 verifiedOrder = verifiedOrderMappingMap.get(year + "-" + monthStr); verifiedOrder = Optional.ofNullable(verifiedOrder).orElseGet(() -> { + List 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 tenantInfos = wxMallService.getTenantEntitys(tenantInfo); + List 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); diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 64e395c3f..cc02c5cff 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -464,7 +464,7 @@ @@ -571,10 +571,17 @@ diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index f8788cb4b..f66016e62 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -1205,7 +1205,7 @@ FROM wx_coupon_order WHERE - `tenant_id` = #{finalTenantId} + tenant_id = #{tenantId} AND DATE_FORMAT( create_date, '%Y' ) = #{year} GROUP BY `name` @@ -1219,7 +1219,7 @@ FROM wx_coupon_order WHERE - `tenant_id` = #{finalTenantId} + tenant_id = #{tenantId} AND coupon_order_status = '1' AND DATE_FORMAT( create_date, '%Y' ) = #{year} GROUP BY @@ -1231,13 +1231,13 @@ FROM wx_coupon_order WHERE - `tenant_id` = #{finalTenantId} - - - - - - + `tenant_id` = #{tenantId} + + and `coupon_order_status` = #{couponOrderStatus} + + + and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' ) + \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index 1d8ea9e5f..28dd4ae9c 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -503,7 +503,10 @@ FROM wx_merchant WHERE - tenant_id = #{finalTenantId} + tenant_id IN + + #{tenantId} + diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index 8c36b5965..6732f0597 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -620,16 +620,17 @@ diff --git a/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml b/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml index 53e08331c..65ca7fe0c 100644 --- a/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml @@ -171,7 +171,10 @@ FROM wx_user_visit WHERE - tenant_id = #{finalTenantId} + tenant_id IN + + #{tenantId} + AND DATE_FORMAT( create_date, '%Y' ) IN #{year} @@ -186,7 +189,10 @@ FROM wx_user_visit WHERE - tenant_id = #{finalTenantId} + tenant_id IN + + #{tenantId} + and DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' )