diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java index ff835ff8b..98cd94ea7 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java @@ -11,6 +11,7 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserRole; import com.iformall.domain.po.SysConfig; import com.iformall.domain.po.WxBillAction; +import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxFlowModel; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; @@ -20,9 +21,12 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBillAll; import com.iformall.domain.vo.WxBillHotNotify; import com.iformall.domain.vo.WxBillSum; +import com.iformall.domain.vo.WxCouponOrderSumVo; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillOweOrNearType; import com.iformall.enums.EnumBillUpdateType; +import com.iformall.enums.EnumCouponOrderStatus; +import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumFilterSettle; import com.iformall.enums.EnumFlowKey; import com.iformall.enums.EnumMenuType; @@ -38,6 +42,7 @@ import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillAllService; import com.iformall.service.WxBillSettleService; import com.iformall.service.WxChartDataService; +import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxFlowService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxUserDataRuleService; @@ -89,6 +94,8 @@ public class WxMallAdminController extends BaseController { WxUserDataRuleService wxUserDataRuleService; @Autowired private WxChartDataService wxChartDataService; + @Autowired + private WxCouponOrderService wxCouponOrderService; private WxUserDataRule getCurrentDataFloors(MallUserInfo user) { @@ -243,4 +250,70 @@ public class WxMallAdminController extends BaseController { return wxChartDataService.getIndexShopRentData(wxShop); } + private void queryCouponOrderSum(Map retMap,String keyPre,WxCouponOrder wxCouponOrder,List couponTypes,EnumCouponType couponType,boolean noVerifyed) { + if (null != couponTypes) { + wxCouponOrder.setCouponTypes(couponTypes); + } + if (null != couponType) { + wxCouponOrder.setCouponType(couponType.getCode()); + } + WxCouponOrderSumVo sum = wxCouponOrderService.findSum(wxCouponOrder); + if (null != sum) { + retMap.put(keyPre+"Money", sum.getOrderMoneyStr()); + retMap.put(keyPre+"Count", sum.getOrderNumber()); + if (noVerifyed) { + retMap.put(keyPre+"VerifyedMoney", sum.getOrderMoneyStr()); + retMap.put(keyPre+"VerifyedCount", sum.getOrderNumber()); + }else { + wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); + WxCouponOrderSumVo couponVerifyedSum = wxCouponOrderService.findSum(wxCouponOrder); + if (null != couponVerifyedSum) { + retMap.put(keyPre+"VerifyedMoney", couponVerifyedSum.getOrderMoneyStr()); + retMap.put(keyPre+"VerifyedCount", couponVerifyedSum.getOrderNumber()); + }else { + retMap.put(keyPre+"VerifyedMoney", "0"); + retMap.put(keyPre+"VerifyedCount", 0); + } + } + }else { + retMap.put(keyPre+"Money", "0"); + retMap.put(keyPre+"Count", 0); + retMap.put(keyPre+"VerifyedMoney", "0"); + retMap.put(keyPre+"VerifyedCount", 0); + } + } + + //营销汇总 + @GetMapping("sales") + public ResultData sales(@ModelAttribute WxCouponOrder wxCouponOrder) { + setQueryDataRule(wxCouponOrder); + Map retMap = new HashMap(); + + //券 + List couponTypes = new ArrayList(); + couponTypes.add(EnumCouponType.COUPON_MANJIAN.getCode()); + couponTypes.add(EnumCouponType.COUPON_DAIJIN.getCode()); + couponTypes.add(EnumCouponType.COUPON_LIPIN.getCode()); + couponTypes.add(EnumCouponType.COUPON_MULTIMCH.getCode()); + couponTypes.add(EnumCouponType.COUPON_PREORDER.getCode()); + couponTypes.add(EnumCouponType.COUPON_DISTRIBUTION.getCode()); + couponTypes.add(EnumCouponType.COUPON_GIFT.getCode()); + queryCouponOrderSum(retMap, "coupon", wxCouponOrder, couponTypes, null, false); + + //卡 + queryCouponOrderSum(retMap, "card", wxCouponOrder, null, EnumCouponType.CARD_MULTIMCH, true); + + //拼团 + queryCouponOrderSum(retMap, "group", wxCouponOrder, null, EnumCouponType.COUPON_GROUP, false); + + //砍价 + queryCouponOrderSum(retMap, "press", wxCouponOrder, null, EnumCouponType.COUPON_PRESS, false); + + //停车券 + queryCouponOrderSum(retMap, "park", wxCouponOrder, null, EnumCouponType.COUPON_TINGCHE, false); + return new ResultData(retMap); + } + + + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index 4454f0e5d..1d62df379 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -206,5 +206,12 @@ public class WxCouponOrder extends TenantEntity { @TableField(exist = false) private String couponTenantId; + + @TableField(exist = false) + private List couponTypes; + @TableField(exist = false) + private Long startCreateDateTimes; + @TableField(exist = false) + private Long endCreateDateTimes; } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderSumVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderSumVo.java new file mode 100644 index 000000000..00e680d3c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderSumVo.java @@ -0,0 +1,20 @@ +package com.iformall.domain.vo; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +import lombok.Data; + +@Data +public class WxCouponOrderSumVo { + private Integer orderMoney; + private String orderMoneyStr; + private Integer orderNumber; + + public String getOrderMoneyStr() { + if (null != orderMoney) { + return new BigDecimal(orderMoney).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP).toPlainString(); + } + return "0"; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index c28541baf..5599fd39d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -144,4 +144,6 @@ public interface WxCouponOrderMapper extends CommonMapper { List verifiedOrderGroupByDate(@Param("tenantId") String tenantId, @Param("year") Integer year); BigDecimal sumOrderAmount(@Param("tenantId") String tenantId, @Param("couponOrderStatus") Integer couponOrderStatus, @Param("specificDate") Date specificDate); + + WxCouponOrderSumVo findSum(WxCouponOrder wxCouponOrder); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 004281646..4300904d0 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -242,4 +242,8 @@ public interface WxCouponOrderService { ResultData sumVerified(WxMerchantBUser bUser, Date startDate, Date endDate); + + WxCouponOrderSumVo findSum(WxCouponOrder wxCouponOrder); + + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 0ab562f78..b9cb5ceb0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -2476,7 +2476,6 @@ public class WxChartServiceImpl implements WxChartDataService { private ResultData getSaleCardAnalysis(TenantEntity tenantEntity,Map paramsMap, String startdate, String enddate) { List tenantEntitys = wxMallService.getTenantEntitys(tenantEntity); WxCoupon wxCoupon = new WxCoupon(); - //默认时间本月第一天,截止到当天 if (StringUtils.isEmpty(paramsMap.get("startdate"))) { wxCoupon.setStartdate(DateUtils.getFirstDayForCurrMonth()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 6fbf14706..8c74dadc1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -3493,4 +3493,15 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } return vo; } + + @Override + public WxCouponOrderSumVo findSum(WxCouponOrder wxCouponOrder) { + if (null != wxCouponOrder.getStartTime()) { + wxCouponOrder.setStartCreateDateTimes(wxCouponOrder.getStartTime().getTime()); + } + if (null != wxCouponOrder.getEndTime()) { + wxCouponOrder.setEndCreateDateTimes(wxCouponOrder.getEndTime().getTime()); + } + return wxCouponOrderMapper.findSum(wxCouponOrder); + } } diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index b9d9de09d..b352352c0 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -1239,5 +1239,32 @@ AND DATE_FORMAT( create_date, '%Y-%m-%d' ) = DATE_FORMAT( #{specificDate}, '%Y-%m-%d' ) + + + + + + + \ No newline at end of file