From 6cb925af9d0511674ad8715b7ba796c415b3d62f Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Wed, 11 Oct 2023 10:14:26 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E8=AE=A2=E5=8D=95=E8=B6=8B=E5=8A=BF=EF=BC=8C=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datatower/CockpitScreenController.java | 9 +- .../src/main/resources/application-dev.yml | 2 +- .../domain/dto/cockpit/SumVisitDTO.java | 13 +++ .../domain/vo/cockpit/CountBasicVO.java | 14 +-- .../domain/vo/cockpit/CountOrderTrendVO.java | 12 +- ...ataMapping.java => MonthCountMapping.java} | 2 +- .../domain/vo/cockpit/MonthDataVO.java | 2 +- .../domain/vo/cockpit/MonthOrderMapping.java | 20 ++++ .../mapper/WxCUserBasicInfoMapper.java | 10 +- .../com/iformall/mapper/WxCUserCarMapper.java | 9 +- .../iformall/mapper/WxCouponOrderMapper.java | 22 ++++ .../com/iformall/mapper/WxMerchantMapper.java | 1 + .../iformall/mapper/WxUserVisitMapper.java | 10 +- .../service/CockpitScreenService.java | 2 +- .../impl/CockpitScreenServiceImpl.java | 105 +++++++++++++++--- .../java/com/iformall/utils/DateUtils.java | 13 +++ .../mapper/WxCUserBasicInfoMapper.xml | 16 ++- .../resources/mapper/WxCUserCarMapper.xml | 10 +- .../resources/mapper/WxCouponOrderMapper.xml | 42 +++++++ .../resources/mapper/WxMerchantMapper.xml | 8 ++ .../resources/mapper/WxUserVisitMapper.xml | 14 ++- 21 files changed, 281 insertions(+), 55 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/dto/cockpit/SumVisitDTO.java rename mallinkService/src/main/java/com/iformall/domain/vo/cockpit/{MonthDataMapping.java => MonthCountMapping.java} (91%) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthOrderMapping.java 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 0ac98e220..e89a18e20 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/CockpitScreenController.java @@ -25,7 +25,6 @@ public class CockpitScreenController extends BaseController { private CockpitScreenService cockpitScreenService; @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计会员性别信息") @GetMapping("/countUserGender") public ResultData countUserGender() { @@ -33,7 +32,6 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计商铺信息") @GetMapping("/countShop") public ResultData countShop() { @@ -41,7 +39,6 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计会员信息") @GetMapping("/countUser") public ResultData countUser(@RequestParam("years") List years) { @@ -49,7 +46,6 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计触达用户信息") @GetMapping("/countReachUser") public ResultData countReachUser(@RequestParam("years") List years) { @@ -57,7 +53,6 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计车辆数量信息") @GetMapping("/countCar") public ResultData countCar(@RequestParam("years") List years) { @@ -65,7 +60,6 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计订单趋势信息") @GetMapping("/countOrderTrend") public ResultData countOrderTrend(@RequestParam("year") Integer year) { @@ -73,10 +67,9 @@ public class CockpitScreenController extends BaseController { } @ApiVersion(group = SwaggerConstant.V_1_0_0) - @TenantIgnore @ApiOperation("驾驶舱大屏-统计基本数据信息") @GetMapping("/countBasic") public ResultData countBasic() { - return new ResultData(cockpitScreenService.countBasic()); + return new ResultData(cockpitScreenService.countBasic(getTenantInfo())); } } diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index 6da0ada62..2d20db727 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -184,7 +184,7 @@ jasypt: password: oRqdnDbK5pj3eMmB fm: - exception: true + exception: false exception_emails: xuxiaohu@iformall.com deploy: 1 open: true diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/cockpit/SumVisitDTO.java b/mallinkService/src/main/java/com/iformall/domain/dto/cockpit/SumVisitDTO.java new file mode 100644 index 000000000..7f3a08f32 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/cockpit/SumVisitDTO.java @@ -0,0 +1,13 @@ +package com.iformall.domain.dto.cockpit; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@ApiModel(value = "uv/pv") +@Data +public class SumVisitDTO { + private Integer uv; + private Integer pv; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountBasicVO.java b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountBasicVO.java index ba752e013..b87a24c34 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountBasicVO.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountBasicVO.java @@ -14,20 +14,20 @@ public class CountBasicVO { @ApiModelProperty(value = "总核销额") private BigDecimal totalVerifiedAmount; @ApiModelProperty(value = "总商户数") - private BigDecimal totalMerchantCount; + private Integer totalMerchantCount; @ApiModelProperty(value = "总会员数") - private BigDecimal totalUserCount; + private Integer totalUserCount; @ApiModelProperty(value = "总触达用户数") - private BigDecimal totalReachUserCount; + private Integer totalReachUserCount; @ApiModelProperty(value = "本周新增会员数") - private BigDecimal weekUserCount; + private Integer weekUserCount; @ApiModelProperty(value = "总有车会员数") - private BigDecimal carUserCount; + private Integer carUserCount; @ApiModelProperty(value = "今日访问量") - private BigDecimal todayPvCount; + private Integer todayPvCount; @ApiModelProperty(value = "今日会员数") - private BigDecimal todayUserCount; + private Integer todayUserCount; @ApiModelProperty(value = "今日交易金额") private BigDecimal todayTradingAmount; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountOrderTrendVO.java b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountOrderTrendVO.java index 00283ab81..b6f76ea7f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountOrderTrendVO.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/CountOrderTrendVO.java @@ -10,7 +10,7 @@ import java.math.BigDecimal; @Data public class CountOrderTrendVO { @ApiModelProperty(value = "月份") - private Integer month; + private String month; @ApiModelProperty(value = "订单信息") private OrderInfo order; @ApiModelProperty(value = "核销订单信息") @@ -19,18 +19,18 @@ public class CountOrderTrendVO { @Data public static class OrderInfo { @ApiModelProperty(value = "订单金额") - private BigDecimal orderAmount; + private BigDecimal amount; @ApiModelProperty(value = "订单数量") - private Integer orderCount; + private Integer count; } @Data public static class VerifiedOrderInfo { @ApiModelProperty(value = "订单核销金额") - private BigDecimal verifiedOrderAmount; + private BigDecimal amount; @ApiModelProperty(value = "订单核销数") - private Integer verifiedOrderCount; + private Integer count; @ApiModelProperty(value = "订单核销用户数") - private Integer verifiedUserCount; + private Integer userCount; } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataMapping.java b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthCountMapping.java similarity index 91% rename from mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataMapping.java rename to mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthCountMapping.java index 072723ac2..51779bfe8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataMapping.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthCountMapping.java @@ -6,7 +6,7 @@ import lombok.Data; @ApiModel(value = "每月统计数量") @Data -public class MonthDataMapping { +public class MonthCountMapping { @ApiModelProperty(value = "某年某月") private String name; @ApiModelProperty(value = "数量") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataVO.java b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataVO.java index aef697b56..110a5f4ca 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataVO.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthDataVO.java @@ -8,7 +8,7 @@ import lombok.Data; @Data public class MonthDataVO { @ApiModelProperty(value = "月份") - private Integer month; + private String month; @ApiModelProperty(value = "数量") private Integer count; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthOrderMapping.java b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthOrderMapping.java new file mode 100644 index 000000000..7efe52aae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/cockpit/MonthOrderMapping.java @@ -0,0 +1,20 @@ +package com.iformall.domain.vo.cockpit; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@ApiModel(value = "每月订单统计") +@Data +public class MonthOrderMapping { + @ApiModelProperty(value = "某年某月") + private String name; + @ApiModelProperty(value = "金额") + private BigDecimal amount; + @ApiModelProperty(value = "笔数") + private Integer count; + @ApiModelProperty(value = "用户数") + private Integer userCount; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index 1fcc1665f..cdfcef886 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -7,10 +7,10 @@ import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.vo.CUserBaseVo; import com.iformall.domain.vo.UserCountVo; import com.iformall.domain.vo.WxCUserBasicInfoVo; -import com.iformall.domain.vo.cockpit.CountUserGenderVO; -import com.iformall.domain.vo.cockpit.MonthDataMapping; +import com.iformall.domain.vo.cockpit.MonthCountMapping; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface WxCUserBasicInfoMapper extends CommonMapper { @@ -90,8 +90,10 @@ public interface WxCUserBasicInfoMapper extends CommonMapper + * @return {@link List}<{@link MonthCountMapping}> */ - List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + + Integer countUser(@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 f6650ed34..06d3b1ae9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java @@ -3,7 +3,8 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUserCar; -import com.iformall.domain.vo.cockpit.MonthDataMapping; +import com.iformall.domain.vo.cockpit.MonthCountMapping; +import org.apache.ibatis.annotations.Param; import java.util.HashMap; import java.util.List; @@ -24,7 +25,9 @@ public interface WxCUserCarMapper extends CommonMapper { * * @param finalTenantId * @param years - * @return {@link List}<{@link MonthDataMapping}> + * @return {@link List}<{@link MonthCountMapping}> */ - List groupByDate(String finalTenantId, List years); + List groupByDate(String finalTenantId, List years); + + Integer countCarUser(@Param("finalTenantId") String finalTenantId); } \ 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 7b7fc5f98..9e645beb3 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -5,8 +5,10 @@ import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.*; +import com.iformall.domain.vo.cockpit.MonthOrderMapping; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -122,4 +124,24 @@ public interface WxCouponOrderMapper extends CommonMapper { * @return {@link Integer} */ SumVerifiedVO sumVerified(@Param("tenantId") String tenantId, @Param("bMerchantId") Long merchantId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); + + /** + * 查询某年某月订单金额和订单数 + * + * @param finalTenantId + * @param year + * @return {@link List}<{@link MonthOrderMapping}> + */ + List orderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); + + /** + * 查询某年某月核销订单金额,订单数,用户数 + * + * @param finalTenantId + * @param year + * @return {@link List}<{@link MonthOrderMapping}> + */ + List verifiedOrderGroupByDate(@Param("finalTenantId") String finalTenantId, @Param("year") Integer year); + + BigDecimal sumOrderAmount(@Param("finalTenantId") String finalTenantId, @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 69849971a..f26a426df 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -58,4 +58,5 @@ public interface WxMerchantMapper extends CommonMapper { List getMerchantListByIds(@Param("relationIds") List relationIds); + Integer countMerchant(@Param("finalTenantId") String finalTenantId); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java index 751f476ff..19aacef9e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxUserVisitMapper.java @@ -2,11 +2,13 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.dto.MarkingCouponDataReportDto; +import com.iformall.domain.dto.cockpit.SumVisitDTO; import com.iformall.domain.po.WxUserVisit; import com.iformall.domain.vo.TouchUsersReportVo; -import com.iformall.domain.vo.cockpit.MonthDataMapping; +import com.iformall.domain.vo.cockpit.MonthCountMapping; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface WxUserVisitMapper extends CommonMapper { @@ -25,7 +27,9 @@ public interface WxUserVisitMapper extends CommonMapper { * * @param finalTenantId * @param years - * @return {@link List}<{@link MonthDataMapping}> + * @return {@link List}<{@link MonthCountMapping}> */ - List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + List groupByDate(@Param("finalTenantId") String finalTenantId, @Param("years") List years); + + SumVisitDTO sumVisit(@Param("finalTenantId") String finalTenantId, @Param("specificDate") Date specificDate); } diff --git a/mallinkService/src/main/java/com/iformall/service/CockpitScreenService.java b/mallinkService/src/main/java/com/iformall/service/CockpitScreenService.java index 55b95b7e7..f161be1ee 100644 --- a/mallinkService/src/main/java/com/iformall/service/CockpitScreenService.java +++ b/mallinkService/src/main/java/com/iformall/service/CockpitScreenService.java @@ -69,5 +69,5 @@ public interface CockpitScreenService { * * @return {@link CountBasicVO} */ - CountBasicVO countBasic(); + CountBasicVO countBasic(TenantEntity tenantInfo); } 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 3b9de15e3..831f4a843 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/CockpitScreenServiceImpl.java @@ -3,16 +3,14 @@ package com.iformall.service.impl; import com.iformall.common.CommonConstant; import com.iformall.domain.dto.cockpit.CountShopByStatusDTO; import com.iformall.domain.dto.cockpit.CountUserByGenderDTO; +import com.iformall.domain.dto.cockpit.SumVisitDTO; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.cockpit.*; +import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumShopStatus; import com.iformall.enums.EnumUserGender; -import com.iformall.mapper.WxCUserBasicInfoMapper; -import com.iformall.mapper.WxCUserCarMapper; -import com.iformall.mapper.WxShopMapper; -import com.iformall.mapper.WxUserVisitMapper; +import com.iformall.mapper.*; import com.iformall.service.CockpitScreenService; -import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxMallService; import com.iformall.utils.DateUtils; import org.apache.commons.collections.CollectionUtils; @@ -34,7 +32,7 @@ import java.util.stream.Collectors; public class CockpitScreenServiceImpl implements CockpitScreenService { @Autowired - private WxCUserBasicInfoMapper cUserBasicInfoMapper; + private WxCUserBasicInfoMapper wxCUserBasicInfoMapper; @Autowired private WxMallService wxMallService; @Autowired @@ -43,11 +41,15 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { private WxUserVisitMapper wxUserVisitMapper; @Autowired private WxCUserCarMapper wxCUserCarMapper; + @Autowired + private WxCouponOrderMapper wxCouponOrderMapper; + @Autowired + private WxMerchantMapper wxMerchantMapper; @Override public CountUserGenderVO countUserGender(TenantEntity tenantEntity) { CountUserGenderVO result = new CountUserGenderVO(); - List dtos = cUserBasicInfoMapper.countUserByGender(tenantEntity.getFinalTenantId()); + List dtos = wxCUserBasicInfoMapper.countUserByGender(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()); @@ -106,7 +108,7 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { years.add(DateUtils.getYear(new Date())); } - List mappings = cUserBasicInfoMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List mappings = wxCUserBasicInfoMapper.groupByDate(tenantInfo.getFinalTenantId(), years); return getResult(years, mappings); } @@ -116,7 +118,7 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { years.add(DateUtils.getYear(new Date())); } - List mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List mappings = wxUserVisitMapper.groupByDate(tenantInfo.getFinalTenantId(), years); return getResult(years, mappings); } @@ -126,18 +128,86 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { years.add(DateUtils.getYear(new Date())); } - List mappings = wxCUserCarMapper.groupByDate(tenantInfo.getFinalTenantId(), years); + List mappings = wxCUserCarMapper.groupByDate(tenantInfo.getFinalTenantId(), years); return getResult(years, mappings); } @Override public List countOrderTrend(TenantEntity tenantInfo, Integer year) { - return null; + 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)); + + for (int i = 0; i < 12; i++) { + CountOrderTrendVO vo = new CountOrderTrendVO(); + String monthStr = DateUtils.getMonthStr(i + 1); + MonthOrderMapping tradeOrder = tradeOrderMappingMap.get(year + "-" + monthStr); + tradeOrder = Optional.ofNullable(tradeOrder).orElseGet(() -> { + MonthOrderMapping newTradeOrder = new MonthOrderMapping(); + newTradeOrder.setAmount(BigDecimal.ZERO); + newTradeOrder.setCount(0); + return newTradeOrder; + }); + + MonthOrderMapping verifiedOrder = verifiedOrderMappingMap.get(year + "-" + monthStr); + verifiedOrder = Optional.ofNullable(verifiedOrder).orElseGet(() -> { + MonthOrderMapping newVerifiedOrder = new MonthOrderMapping(); + newVerifiedOrder.setAmount(BigDecimal.ZERO); + newVerifiedOrder.setCount(0); + newVerifiedOrder.setUserCount(0); + return newVerifiedOrder; + }); + + CountOrderTrendVO.OrderInfo orderInfo = new CountOrderTrendVO.OrderInfo(); + orderInfo.setAmount(tradeOrder.getAmount()); + orderInfo.setCount(tradeOrder.getCount()); + + CountOrderTrendVO.VerifiedOrderInfo verifiedOrderInfo = new CountOrderTrendVO.VerifiedOrderInfo(); + verifiedOrderInfo.setAmount(verifiedOrder.getAmount()); + verifiedOrderInfo.setCount(verifiedOrder.getCount()); + verifiedOrderInfo.setUserCount(verifiedOrder.getUserCount()); + + vo.setMonth(monthStr); + vo.setOrder(orderInfo); + vo.setVerifiedOrder(verifiedOrderInfo); + result.add(vo); + } + return result; } @Override - public CountBasicVO countBasic() { - return null; + 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()); + + SumVisitDTO sumVisit = wxUserVisitMapper.sumVisit(tenantInfo.getFinalTenantId(), null); + SumVisitDTO todaySumVisit = wxUserVisitMapper.sumVisit(tenantInfo.getFinalTenantId(), new Date()); + + Integer carUserCount = wxCUserCarMapper.countCarUser(tenantInfo.getFinalTenantId()); + + CountBasicVO vo = new CountBasicVO(); + vo.setTotalTradingAmount(totalTradingAmount); + vo.setTotalVerifiedAmount(totalVerifiedAmount); + vo.setTotalMerchantCount(totalMerchantCount); + vo.setTotalUserCount(totalUserCount); + vo.setTotalReachUserCount(sumVisit.getUv()); + vo.setWeekUserCount(weekUserCount); + vo.setCarUserCount(carUserCount); + + vo.setTodayPvCount(todaySumVisit.getPv()); + vo.setTodayUserCount(todayUserCount); + vo.setTodayTradingAmount(todayTradingAmount); + return vo; } /** @@ -147,17 +217,18 @@ public class CockpitScreenServiceImpl implements CockpitScreenService { * @param mappings * @return {@link List}<{@link CountMonthVO}> */ - private List getResult(List years, List mappings) { + private List getResult(List years, List mappings) { List result = new ArrayList<>(); - Map mappingMap = mappings.stream().collect(Collectors.toMap(MonthDataMapping::getName, MonthDataMapping::getCount)); + Map mappingMap = mappings.stream().collect(Collectors.toMap(MonthCountMapping::getName, MonthCountMapping::getCount)); for (int i = 0; i < years.size(); i++) { CountMonthVO vo = new CountMonthVO(); List months = new ArrayList<>(); for (int j = 0; j < 12; j++) { MonthDataVO month = new MonthDataVO(); - month.setMonth(j + 1); - Integer count = mappingMap.get(years.get(i) + "-" + DateUtils.getMonthStr(j + 1)); + String monthStr = DateUtils.getMonthStr(j + 1); + month.setMonth(monthStr); + Integer count = mappingMap.get(years.get(i) + "-" + monthStr); count = count != null ? count : 0; month.setCount(count); months.add(month); diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 0a0c91b60..b16b729b9 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -1542,4 +1542,17 @@ public class DateUtils { DateTime dateTime = new DateTime(date, DateTimeZone.forTimeZone(TimeZone.getTimeZone("Asia/Shanghai"))); return dateTime.toString(); } + + public static Date getFirstDayForCurrWeek() { + Calendar c = Calendar.getInstance(); + c.set(Calendar.DAY_OF_WEEK, 2); + return c.getTime(); + } + + public static Date getLastDayForCurrWeek() { + Calendar c = Calendar.getInstance(); + c.set(Calendar.DAY_OF_WEEK, 7); + c.add(Calendar.DATE, 1); + return c.getTime(); + } } diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 2739f85f3..64e395c3f 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -581,7 +581,7 @@ FROM wx_c_user_basic_info WHERE final_tenant_id = #{finalTenantId} AND DATE_FORMAT(create_date, '%Y') = #{year} AND DATE_FORMAT(create_date, '%m') = #{month} - SELECT DATE_FORMAT( create_date, '%Y-%m' ) AS `name`, COUNT( id ) AS `count` @@ -596,6 +596,20 @@ GROUP BY DATE_FORMAT( create_date, '%Y-%m' ) + diff --git a/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml index 8c068837a..30d9f9de6 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml @@ -134,7 +134,7 @@ AND ubi.create_date BETWEEN #{startdate} AND #{enddate}) c GROUP BY c.create_time ORDER BY c.create_time - SELECT DATE_FORMAT( create_date, '%Y-%m' ) AS `name`, COUNT(DISTINCT c_user_id) AS count @@ -149,5 +149,13 @@ GROUP BY `name` + diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index c3eaa6301..f8788cb4b 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -1197,5 +1197,47 @@ AND co.update_date <= #{endDate,jdbcType=TIMESTAMP} + + + \ 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 0ca012efd..1d8ea9e5f 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -497,5 +497,13 @@ + diff --git a/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml b/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml index 5cab535cf..53e08331c 100644 --- a/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxUserVisitMapper.xml @@ -164,7 +164,7 @@ and day_date <= #{endTime} - SELECT DATE_FORMAT( day_date, '%Y-%m' ) AS `name`, IFNULL( sum( visit_uv ), 0 ) AS count @@ -179,5 +179,17 @@ GROUP BY `name` +