| @@ -14,7 +14,7 @@ public class WxVtwoOrderBusinessStatistics implements Serializable { | |||||
| private String businessName; | private String businessName; | ||||
| private Integer businessCount; | private Integer businessCount; | ||||
| private BigDecimal sumMoney; | |||||
| private BigDecimal orderMoney; | |||||
| private Double countRatio; | private Double countRatio; | ||||
| private Double moneyRatio; | private Double moneyRatio; | ||||
| @@ -14,6 +14,6 @@ public class WxVtwoOrderCountStatistics implements Serializable { | |||||
| private Integer userCount; | private Integer userCount; | ||||
| private Integer orderCount; | private Integer orderCount; | ||||
| private BigDecimal sumMoney; | |||||
| private BigDecimal orderMoney; | |||||
| private Integer merchantCount; | private Integer merchantCount; | ||||
| } | } | ||||
| @@ -15,4 +15,7 @@ public class WxVtwoSettlementStatistics implements Serializable { | |||||
| private Integer merchantCount; | private Integer merchantCount; | ||||
| private BigDecimal mallPrice; | private BigDecimal mallPrice; | ||||
| private BigDecimal merchantPrice; | private BigDecimal merchantPrice; | ||||
| private double mallRatio; | |||||
| private double merchantRatio; | |||||
| } | } | ||||
| @@ -222,7 +222,10 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo | |||||
| @Override | @Override | ||||
| public WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | public WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | ||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | ||||
| return wxVtwoActivityGrantSettlementMapper.settlementStatistics(grantSettlement); | |||||
| WxVtwoSettlementStatistics settlementStatistics = wxVtwoActivityGrantSettlementMapper.settlementStatistics(grantSettlement); | |||||
| settlementStatistics.setMallRatio(settlementStatistics.getMallPrice().divide(settlementStatistics.getGrantPrice(),4,RoundingMode.HALF_UP).doubleValue()); | |||||
| settlementStatistics.setMerchantRatio(1-settlementStatistics.getMallRatio()); | |||||
| return settlementStatistics; | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -6,6 +6,7 @@ import com.iformall.domain.po.WxVtwoCashBackAward; | |||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | ||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | import com.iformall.domain.vo.WxVtwoAwardStatistics; | ||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | ||||
| import com.iformall.domain.vo.WxVtwoOrderBusinessStatistics; | |||||
| import com.iformall.enums.EnumOfflineActivityType; | import com.iformall.enums.EnumOfflineActivityType; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| @@ -176,6 +177,7 @@ public class WxVtwoActivityGrantStatisticsServiceImpl implements WxVtwoActivityG | |||||
| } | } | ||||
| awardGrantStatisticsList.add(awardGrantStatisticsItem); | awardGrantStatisticsList.add(awardGrantStatisticsItem); | ||||
| } | } | ||||
| return awardGrantStatisticsList.stream().sorted(Comparator.comparing(WxVtwoAwardGrantStatistics::getPriceRatio).reversed()).collect(Collectors.toList()); | |||||
| }else{ | }else{ | ||||
| List<WxVtwoActivityAward> activityAwardList = wxVtwoActivityAwardService.findActivityAwardList(statisticsVo.getActivityId(), statisticsVo.getTenantId()); | List<WxVtwoActivityAward> activityAwardList = wxVtwoActivityAwardService.findActivityAwardList(statisticsVo.getActivityId(), statisticsVo.getTenantId()); | ||||
| List<WxVtwoAwardGrantStatistics> awardGrantStatistics = wxVtwoActivityGrantAwardService.awardItemStatistics(statisticsVo); | List<WxVtwoAwardGrantStatistics> awardGrantStatistics = wxVtwoActivityGrantAwardService.awardItemStatistics(statisticsVo); | ||||
| @@ -204,8 +206,8 @@ public class WxVtwoActivityGrantStatisticsServiceImpl implements WxVtwoActivityG | |||||
| } | } | ||||
| awardGrantStatisticsList.add(awardGrantStatisticsItem); | awardGrantStatisticsList.add(awardGrantStatisticsItem); | ||||
| } | } | ||||
| return awardGrantStatisticsList.stream().sorted(Comparator.comparing(WxVtwoAwardGrantStatistics::getCountRatio).reversed()).collect(Collectors.toList()); | |||||
| } | } | ||||
| return awardGrantStatisticsList; | |||||
| } | } | ||||
| } | } | ||||
| @@ -473,7 +473,7 @@ public class WxVtwoActivityOrderServiceImpl extends ServiceImpl<WxVtwoActivityOr | |||||
| countStatistics = new WxVtwoOrderCountStatistics(); | countStatistics = new WxVtwoOrderCountStatistics(); | ||||
| countStatistics.setUserCount(0); | countStatistics.setUserCount(0); | ||||
| countStatistics.setOrderCount(0); | countStatistics.setOrderCount(0); | ||||
| countStatistics.setSumMoney(BigDecimal.ZERO); | |||||
| countStatistics.setOrderMoney(BigDecimal.ZERO); | |||||
| countStatistics.setMerchantCount(0); | countStatistics.setMerchantCount(0); | ||||
| } | } | ||||
| countStatistics.setXTime(date.substring(5).replace("-", "/")); | countStatistics.setXTime(date.substring(5).replace("-", "/")); | ||||
| @@ -488,11 +488,11 @@ public class WxVtwoActivityOrderServiceImpl extends ServiceImpl<WxVtwoActivityOr | |||||
| List<WxVtwoOrderBusinessStatistics> businessStatistics = wxVtwoActivityOrderMapper.getBusinessStatistics(activityOrder); | List<WxVtwoOrderBusinessStatistics> businessStatistics = wxVtwoActivityOrderMapper.getBusinessStatistics(activityOrder); | ||||
| if(businessStatistics != null && !businessStatistics.isEmpty()){ | if(businessStatistics != null && !businessStatistics.isEmpty()){ | ||||
| Map<Integer, WxBusiness> bussinessMap = wxBusinessService.findAllMap(activityOrder); | Map<Integer, WxBusiness> bussinessMap = wxBusinessService.findAllMap(activityOrder); | ||||
| BigDecimal totalMoney = businessStatistics.stream().map(WxVtwoOrderBusinessStatistics::getSumMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | |||||
| BigDecimal totalMoney = businessStatistics.stream().map(WxVtwoOrderBusinessStatistics::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | |||||
| int totalCount = businessStatistics.size(); | int totalCount = businessStatistics.size(); | ||||
| for (WxVtwoOrderBusinessStatistics statistics : businessStatistics){ | for (WxVtwoOrderBusinessStatistics statistics : businessStatistics){ | ||||
| statistics.setBusinessName(statistics.getBusinessId() == null?"其他":bussinessMap.get(statistics.getBusinessId()).getTitle()); | statistics.setBusinessName(statistics.getBusinessId() == null?"其他":bussinessMap.get(statistics.getBusinessId()).getTitle()); | ||||
| statistics.setMoneyRatio(statistics.getSumMoney().divide(totalMoney,4, RoundingMode.HALF_UP).doubleValue()); | |||||
| statistics.setMoneyRatio(statistics.getOrderMoney().divide(totalMoney,4, RoundingMode.HALF_UP).doubleValue()); | |||||
| statistics.setCountRatio(new BigDecimal(statistics.getBusinessCount()).divide(new BigDecimal(totalCount),4, RoundingMode.HALF_UP).doubleValue()); | statistics.setCountRatio(new BigDecimal(statistics.getBusinessCount()).divide(new BigDecimal(totalCount),4, RoundingMode.HALF_UP).doubleValue()); | ||||
| } | } | ||||
| return businessStatistics.stream().sorted(Comparator.comparing(WxVtwoOrderBusinessStatistics::getMoneyRatio).reversed()).collect(Collectors.toList()); | return businessStatistics.stream().sorted(Comparator.comparing(WxVtwoOrderBusinessStatistics::getMoneyRatio).reversed()).collect(Collectors.toList()); | ||||
| @@ -188,7 +188,7 @@ | |||||
| <select id="getCountStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderCountStatistics"> | <select id="getCountStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderCountStatistics"> | ||||
| select count(DISTINCT cus_phone) userCount, | select count(DISTINCT cus_phone) userCount, | ||||
| count(1) orderCount, | count(1) orderCount, | ||||
| IFNULL(sum(order_money),0) sumMoney, | |||||
| IFNULL(sum(order_money),0) orderMoney, | |||||
| count(DISTINCT merchant_id) merchantCount | count(DISTINCT merchant_id) merchantCount | ||||
| from wx_vtwo_activity_order | from wx_vtwo_activity_order | ||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| @@ -197,7 +197,7 @@ | |||||
| select DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | select DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | ||||
| count(DISTINCT cus_phone) userCount, | count(DISTINCT cus_phone) userCount, | ||||
| count(1) orderCount, | count(1) orderCount, | ||||
| IFNULL(sum(order_money),0) sumMoney, | |||||
| IFNULL(sum(order_money),0) orderMoney, | |||||
| count(DISTINCT merchant_id) merchantCount | count(DISTINCT merchant_id) merchantCount | ||||
| from wx_vtwo_activity_order | from wx_vtwo_activity_order | ||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| @@ -206,7 +206,7 @@ | |||||
| <select id="getBusinessStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderBusinessStatistics"> | <select id="getBusinessStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityOrder" resultType="com.iformall.domain.vo.WxVtwoOrderBusinessStatistics"> | ||||
| select business_id businessId, | select business_id businessId, | ||||
| count(1) businessCount, | count(1) businessCount, | ||||
| IFNULL(sum(order_money),0) sumMoney | |||||
| IFNULL(sum(order_money),0) orderMoney | |||||
| from wx_vtwo_activity_order | from wx_vtwo_activity_order | ||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| group by business_id | group by business_id | ||||