From 2331c8134a4e68c2ac9af07eb54bf098c9743bbf Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 15 Mar 2019 18:48:12 +0800 Subject: [PATCH] =?UTF-8?q?[=E8=90=A5=E9=94=80=E5=88=86=E6=9E=90][?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0][=E5=8D=A1=E8=90=A5=E9=94=80=E5=88=97?= =?UTF-8?q?=E8=A1=A8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxChartDataController.java | 2 - .../controller/WxCouponController.java | 47 ++++------ .../java/com/iformall/domain/po/WxCoupon.java | 31 +++++-- .../com/iformall/mapper/WxCouponMapper.java | 16 ++-- .../com/iformall/service/WxCouponService.java | 16 ++-- .../service/impl/WxChartServiceImpl.java | 85 ++++++++++++++++--- .../service/impl/WxCouponServiceImpl.java | 42 ++++++--- .../main/resources/mapper/WxCouponMapper.xml | 84 +++++++++++++++--- 8 files changed, 234 insertions(+), 89 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxChartDataController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxChartDataController.java index 5f1938320..b56e3709f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxChartDataController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxChartDataController.java @@ -2,12 +2,10 @@ package com.iformall.controller; import com.iformall.common.ResultData; import com.iformall.service.WxChartDataService; -import com.iformall.utils.DateUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponController.java index dd8550e29..84bc28bdf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCouponController.java @@ -116,7 +116,6 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponService.list(wxCoupon)); } - @ApiOperation("卡营销列表接口") @GetMapping("findCardCountList") @ApiImplicitParams({ @@ -138,38 +137,24 @@ public class WxCouponController extends BaseController { return new ResultData(result); } - @ApiOperation("卷列表统计接口") - @GetMapping("findCouponHistory") - public ResultData findCouponHistory(@ModelAttribute WxCoupon wxCoupon) { + @ApiOperation("卷营销列表接口") + @GetMapping("findCouponCountList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData findCouponCountList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { //默认时间本月第一天,截止到当天 Map result = new HashedMap(); -// if(wxCoupon.getStartdate() == null){ -// Calendar c = Calendar.getInstance(); -// c.add(Calendar.MONTH, 0); -// c.set(Calendar.DAY_OF_MONTH,1); -// wxCoupon.setStartdate(c.getTime()); -// } -// if(wxCoupon.getEnddate() == null){ -// wxCoupon.setEnddate(new Date()); -// } -// List saleMoneyList = wxCouponService.findSaleMoneyByDate(wxCoupon); -// List paymentList = wxCouponService.findPaymentByDate(wxCoupon); -// Map saleMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); -// Map payMentMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); -// -// for (WxCoupon coupon:saleMoneyList){ -// saleMap.put(coupon.getXtime(),coupon.getSaleAmount()); -// } -// for (WxCoupon coupon:paymentList){ -// payMentMap.put(coupon.getXtime(),coupon.getSumPayment()); -// } -// result.put("saleHistory",saleMap); -// result.put("paymentHistory",payMentMap); -// result.put("saleCardCount",wxCouponService.findSaleCardCount(wxCoupon)); -// result.put("tranCount",wxCouponService.findTranCardCount(wxCoupon)); -// result.put("subsidyCount",wxCouponService.findSubsidyMoney(wxCoupon)); - - return new ResultData(result); + if(wxCoupon.getStartdate() == null){ + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH,1); + wxCoupon.setStartdate(c.getTime()); + } + if(wxCoupon.getEnddate() == null){ + wxCoupon.setEnddate(new Date()); + } + return new ResultData(wxCouponService.findCouponData(wxCoupon,pageNum,pageSize)); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index 4ef3148c6..0947bead8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -162,6 +162,8 @@ public class WxCoupon implements Serializable { //营销分析-----start----- @Transient private String xtime; + @Transient + private Long xcount; /**售出卡数量**/ @io.swagger.annotations.ApiModelProperty(value="售出卡数量",name="saleCount") @Transient @@ -174,16 +176,33 @@ public class WxCoupon implements Serializable { @io.swagger.annotations.ApiModelProperty(value="售出金额",name="saleAmount") @Transient private Integer saleAmount; - /**核销金额**/ - @io.swagger.annotations.ApiModelProperty(value="核销金额",name="sumPayment") + /**核销数量**/ + @io.swagger.annotations.ApiModelProperty(value="核销数量",name="sumPayment") @Transient private Integer sumPayment; -// /**fdsfsd**/ -// @io.swagger.annotations.ApiModelProperty(value="核销金额",name="sumPayment") -// @Transient -// private Integer sumPayment; + /**退款数量**/ + @io.swagger.annotations.ApiModelProperty(value="退款数量",name="backpayCount") + @Transient + private Integer backpayCount; //营销分析-----end----- + + public Long getXcount() { + return xcount; + } + + public void setXcount(Long xcount) { + this.xcount = xcount; + } + + public Integer getBackpayCount() { + return backpayCount; + } + + public void setBackpayCount(Integer backpayCount) { + this.backpayCount = backpayCount; + } + public Long getSaleCount() { return saleCount; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index e38d0681c..a7e9371c2 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -43,15 +43,19 @@ public interface WxCouponMapper extends CommonMapper { Long findSubsidyMoney(WxCoupon wxCoupon); //-------卷-------- - Long findCouponSendCount(WxCoupon wxCoupon); + List findCouponSendCount(WxCoupon wxCoupon); - Long findCouponOrderCount(WxCoupon wxCoupon); + List findCouponOrderCount(WxCoupon wxCoupon); - Long findCouponGetCount(WxCoupon wxCoupon); + List findCouponGetCount(WxCoupon wxCoupon); - Long findCouponPaymentCount(WxCoupon wxCoupon); + List findCouponPaymentCount(WxCoupon wxCoupon); - Long priceCouponSaleCount(WxCoupon wxCoupon); + List priceCouponSaleCount(WxCoupon wxCoupon); - Long priceCouponPaymentCount(WxCoupon wxCoupon); + List priceCouponPaymentCount(WxCoupon wxCoupon); + + Long findSumPriceSaleMoney(WxCoupon wxCoupon); + Long findSumPricePayMent(WxCoupon wxCoupon); + Long findSumSubsidyMoney(WxCoupon wxCoupon); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index e14a3362f..994f107c3 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -105,35 +105,39 @@ public interface WxCouponService { * 卷发放数量 * @return */ - Long findCouponSendCount(WxCoupon wxCoupon); + List findCouponSendCount(WxCoupon wxCoupon); /** * 卷购买数量 * @return */ - Long findCouponOrderCount(WxCoupon wxCoupon); + List findCouponOrderCount(WxCoupon wxCoupon); /** * 卷领取数量 * @return */ - Long findCouponGetCount(WxCoupon wxCoupon); + List findCouponGetCount(WxCoupon wxCoupon); /** * 卷核销数量 * @return */ - Long findCouponPaymentCount(WxCoupon wxCoupon); + List findCouponPaymentCount(WxCoupon wxCoupon); /** * 有价卷销售数量 * @return */ - Long priceCouponSaleCount(WxCoupon wxCoupon); + List priceCouponSaleCount(WxCoupon wxCoupon); /** * 有价卷核销数量 * @return */ - Long priceCouponPaymentCount(WxCoupon wxCoupon); + List priceCouponPaymentCount(WxCoupon wxCoupon); + + Long findSumPriceSaleMoney(WxCoupon wxCoupon); + Long findSumPricePayMent(WxCoupon wxCoupon); + Long findSumSubsidyMoney(WxCoupon wxCoupon); } 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 6fc4bf8d9..4c4f06fdc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -1471,10 +1471,6 @@ public class WxChartServiceImpl implements WxChartDataService { //卡营销数据 if (chart.equals(EnumChart.SALE_CARD.getCode())) { WxCoupon wxCoupon = new WxCoupon(); - if(StringUtils.isNotBlank(paramsMap.get("id"))) { - wxCoupon.setId(Long.parseLong(paramsMap.get("id"))); - } - //默认时间本月第一天,截止到当天 Map result = new HashedMap(); if(startdate == null){ @@ -1494,14 +1490,14 @@ public class WxChartServiceImpl implements WxChartDataService { } List saleMoneyList = wxCouponService.findSaleMoneyByDate(wxCoupon); List paymentList = wxCouponService.findPaymentByDate(wxCoupon); - Map saleMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); - Map payMentMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map saleMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map payMentMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); for (WxCoupon coupon:saleMoneyList){ - saleMap.put(coupon.getXtime(),coupon.getSaleAmount()); + saleMap.put(coupon.getXtime(),coupon.getXcount()); } for (WxCoupon coupon:paymentList){ - payMentMap.put(coupon.getXtime(),coupon.getSumPayment()); + payMentMap.put(coupon.getXtime(),coupon.getXcount()); } result.put("saleHistory",saleMap); result.put("paymentHistory",payMentMap); @@ -1510,6 +1506,71 @@ public class WxChartServiceImpl implements WxChartDataService { result.put("subsidyCount",wxCouponService.findSubsidyMoney(wxCoupon)); return new ResultData(result); } + + //卡营销数据 + if (chart.equals(EnumChart.SALE_COUPON.getCode())) { + WxCoupon wxCoupon = new WxCoupon(); + //默认时间本月第一天,截止到当天 + Map result = new HashedMap(); + if(startdate == null){ + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH,1); + wxCoupon.setStartdate(c.getTime()); + }else{ + Date startTime = DateUtils.stringToDate(startdate + " 00:00:00"); + wxCoupon.setStartdate(startTime); + } + if(enddate == null){ + wxCoupon.setEnddate(new Date()); + }else{ + Date endTime = DateUtils.stringToDate(enddate + " 23:59:59"); + wxCoupon.setEnddate(endTime); + } + List sendList = wxCouponService.findCouponSendCount(wxCoupon); + List orderCountList = wxCouponService.findCouponOrderCount(wxCoupon); + List getCountList = wxCouponService.findCouponGetCount(wxCoupon); + List paymentCountList = wxCouponService.findCouponPaymentCount(wxCoupon); + List priceCouponSaleCountList = wxCouponService.priceCouponSaleCount(wxCoupon); + List priceCouponPaymentCountList = wxCouponService.priceCouponPaymentCount(wxCoupon); + + Map sendMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map orderCountMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map getCountMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map paymentCountMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map priceCouponSaleCountMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + Map priceCouponPaymentCountMap = getDateMap(wxCoupon.getStartdate(),wxCoupon.getEnddate()); + + for (WxCoupon coupon:sendList){ + sendMap.put(coupon.getXtime(),coupon.getXcount()); + } + for (WxCoupon coupon:orderCountList){ + orderCountMap.put(coupon.getXtime(),coupon.getXcount()); + } + for (WxCoupon coupon:getCountList){ + getCountMap.put(coupon.getXtime(),coupon.getXcount()); + } + for (WxCoupon coupon:paymentCountList){ + paymentCountMap.put(coupon.getXtime(),coupon.getXcount()); + } + for (WxCoupon coupon:priceCouponSaleCountList){ + priceCouponSaleCountMap.put(coupon.getXtime(),coupon.getXcount()); + } + for (WxCoupon coupon:priceCouponPaymentCountList){ + priceCouponPaymentCountMap.put(coupon.getXtime(),coupon.getXcount()); + } + result.put("sendList",sendMap); + result.put("orderCountList",orderCountMap); + result.put("getCountList",getCountMap); + result.put("paymentCountList",paymentCountMap); + result.put("priceCouponSaleCountList",priceCouponSaleCountMap); + result.put("priceCouponPaymentCountList",priceCouponPaymentCountMap); + + result.put("sumPriceSaleMoney",wxCouponService.findSumPriceSaleMoney(wxCoupon)); + result.put("sumPricePayMent",wxCouponService.findSumPricePayMent(wxCoupon)); + result.put("sumSubsidyMoney",wxCouponService.findSumSubsidyMoney(wxCoupon)); + return new ResultData(result); + } return new ResultData(datamap); } @@ -1593,17 +1654,17 @@ public class WxChartServiceImpl implements WxChartDataService { return vo; } - public static Map getDateMap(Date begin, Date end) { + public static Map getDateMap(Date begin, Date end) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Map map = new LinkedHashMap<>(); - map.put(format.format(begin),0); + Map map = new LinkedHashMap<>(); + map.put(format.format(begin),0l); Calendar calBegin = Calendar.getInstance(); calBegin.setTime(begin); Calendar calEnd = Calendar.getInstance(); calEnd.setTime(end); while (calBegin.getTime().before(end)) { calBegin.add(Calendar.DAY_OF_MONTH, 1); - map.put(format.format(calBegin.getTime()),0); + map.put(format.format(calBegin.getTime()),0l); } return map; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index be717bedc..6899ec5f0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -164,7 +164,6 @@ public class WxCouponServiceImpl implements WxCouponService { return Integer.valueOf(merchantParam.getString("businessId")); } - @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public ResultData saveOrUpdate(WxCoupon record) { @@ -352,36 +351,51 @@ public class WxCouponServiceImpl implements WxCouponService { @Override public PageInfo findCouponData(WxCoupon record, Integer pageNum, Integer pageSize) { - return null; + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponMapper.findCouponData(record)); + } + + @Override + public List findCouponSendCount(WxCoupon wxCoupon) { + return wxCouponMapper.findCouponSendCount(wxCoupon); + } + + @Override + public List findCouponOrderCount(WxCoupon wxCoupon) { + return wxCouponMapper.findCouponOrderCount(wxCoupon); + } + + @Override + public List findCouponGetCount(WxCoupon wxCoupon) { + return wxCouponMapper.findCouponGetCount(wxCoupon); } @Override - public Long findCouponSendCount(WxCoupon wxCoupon) { - return null; + public List findCouponPaymentCount(WxCoupon wxCoupon) { + return wxCouponMapper.findCouponPaymentCount(wxCoupon); } @Override - public Long findCouponOrderCount(WxCoupon wxCoupon) { - return null; + public List priceCouponSaleCount(WxCoupon wxCoupon) { + return wxCouponMapper.priceCouponSaleCount(wxCoupon); } @Override - public Long findCouponGetCount(WxCoupon wxCoupon) { - return null; + public List priceCouponPaymentCount(WxCoupon wxCoupon) { + return wxCouponMapper.priceCouponPaymentCount(wxCoupon); } @Override - public Long findCouponPaymentCount(WxCoupon wxCoupon) { - return null; + public Long findSumPriceSaleMoney(WxCoupon wxCoupon) { + return wxCouponMapper.findSumPriceSaleMoney(wxCoupon); } @Override - public Long priceCouponSaleCount(WxCoupon wxCoupon) { - return null; + public Long findSumPricePayMent(WxCoupon wxCoupon) { + return wxCouponMapper.findSumPricePayMent(wxCoupon); } @Override - public Long priceCouponPaymentCount(WxCoupon wxCoupon) { - return null; + public Long findSumSubsidyMoney(WxCoupon wxCoupon) { + return wxCouponMapper.findSumSubsidyMoney(wxCoupon); } } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 600c9d2b6..7f1ab02e3 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -43,7 +43,7 @@ `id`,`tenant_id`,`type`,`cover_img`,`title`,`sub_title`,`sale_price`,`use_price`,`use_limit_quantity`,`send_type`, `valid_type`,`valid_start_date`,`valid_end_date`,`valid_days`,`detail`,`price`,`unit`,`remain_inventory`,`inventory`, `remark`,`status`,`create_date`,`update_date`,`business`,`support_transfer`,`subsidy_num`,`subsidy_type`, - `press_limit_num`, `press_limit_hours`, `auto_refund` + `press_limit_num`, `press_limit_hours`, `auto_refund`,subsidy_num @@ -622,10 +622,13 @@ + + + select c.*, - (select count(distinct wco.owner_id) from wx_coupon_order wco where wco.coupon_id = c.id) as sale_count, + (select count(wco.id) from wx_coupon_order wco where wco.coupon_id = c.id) as sale_count, (select count(distinct wcs.coupon_order_id) from wx_card_info ci left join wx_coupon wc on wc.id = ci.coupon_id left join wx_card_transfer_info wcs on wcs.coupon_order_id = ci.id @@ -722,7 +725,7 @@ (select sum(ci.sale_amount) from wx_card_info ci left join wx_coupon wc on wc.id = ci.coupon_id where wc.id = c.id) as sale_amount, - (select sum(wcs.real_payment) from wx_card_info ci + (select sum(wcs.payment) from wx_card_info ci left join wx_coupon wc on wc.id = ci.coupon_id left join wx_card_spend wcs on wcs.card_id = ci.id where wc.id = c.id) as sum_payment @@ -737,7 +740,7 @@ select c.*, (select count(distinct wco.owner_id) from wx_coupon_order wco where wco.coupon_id = c.id) as sale_count, (select count(distinct wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and wco.coupon_order_status = 1 and wc.id = c.id) as payment_count, - (select count(distinct wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and wco.coupon_order_status = 3 and wc.id = c.id) as payment_count + (select count(distinct wco.id) from wx_coupon wc,wx_coupon_order wco where wco.coupon_id = wc.id and wco.coupon_order_status = 3 and wc.id = c.id) as backpay_count from wx_coupon c where 1=1 and c.type = #{type} @@ -748,11 +751,68 @@ order by status asc,create_date desc - + select DATE_FORMAT(c.create_time,'%Y-%m-%d') xtime,count(id) xcount from wx_coupon_action_log c + where c.create_time between #{startdate} and #{enddate} + group by xtime + + + + + + + + + + + + + + + + +