From 57e46bc170a0e2d3acb150f83e32abbf04bb621d Mon Sep 17 00:00:00 2001 From: luoyang Date: Wed, 25 Mar 2020 16:32:49 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=95=86=E6=88=B7=E7=B1=BB=E5=88=AB?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E8=B6=8B=E5=8A=BF=E5=A2=9E=E5=8A=A0=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E5=95=86=E6=88=B7=E6=95=B0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../mappers/ClientAnalysisMapper.java | 2 + .../core/DataAnalysisServiceImpl.java | 11 +- .../analysis/mappers/ClientAnalysisMapper.xml | 19 ++- .../mappers/TransactionAnalysisMapper.xml | 4 + .../transaction/analysis-transaction.js | 118 +++++++++++++++++- .../industry_analysis_transaction.html | 3 + 7 files changed, 153 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 978a1b3df..2963cc568 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.4.13 + 1.4.14 UTF-8 1.8.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java index d2c05d82d..a806cdc69 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.java @@ -27,6 +27,8 @@ public interface ClientAnalysisMapper { // 统计所有的商户,包括禁用的 int countClientsAll(JSONObject params); + int countValidClientsAll(@Param("industry") String industry); + // 统计一段时期新增的商户数 List listNewClients(JSONObject params); diff --git a/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java index bd1784484..bb30e94cf 100644 --- a/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/dataAnalysis/core/DataAnalysisServiceImpl.java @@ -11,6 +11,8 @@ import org.apache.commons.lang3.time.DateUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.util.Date; import java.util.List; @@ -70,7 +72,14 @@ public class DataAnalysisServiceImpl implements DataAnalysisService { @Override public List getRpIndustryEchartsData(String from, String to, String industry, String managerId) throws ParseException { Date modifyTo = DateUtils.addDays(DateUtils.parseDate(to, "yyyy-MM-dd"), 1); - return transactionAnalysisMapper.getRpIndustryEchartsData(from, DateFormatUtils.format(modifyTo, "yyyy-MM-dd HH:mm:ss"), industry, managerId); + List data = transactionAnalysisMapper.getRpIndustryEchartsData(from, DateFormatUtils.format(modifyTo, "yyyy-MM-dd HH:mm:ss"), industry, managerId); + BigDecimal totalClients = new BigDecimal(clientAnalysisMapper.countValidClientsAll(industry)); + for (JSONObject detail : data) { + BigDecimal industryClients = detail.getBigDecimal("industry_trans_clients"); + detail.put("total_client", totalClients.setScale(0, RoundingMode.DOWN)); + detail.put("in_total_pcent", industryClients.divide(totalClients, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); + } + return data; } @Override diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml index 5356906fb..7177f3d33 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/ClientAnalysisMapper.xml @@ -53,6 +53,21 @@ #{org_id} + + + - + - \ No newline at end of file + diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml index 58d305856..068a5c177 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml @@ -1112,12 +1112,14 @@ sum(so.total) as total_amount, sum(so.orders) as orders, + count(Distinct IF((c.royalpayindustry =1 or c.royalpayindustry like '100%'), so.client_id,0)) as industry_trans_clients, SUM(IF((c.royalpayindustry =1 or c.royalpayindustry like '100%'),so.total,0)) as industry_total_amount, SUM(IF((c.royalpayindustry =1 or c.royalpayindustry like '100%'),so.orders,0)) as industry_orders, convert(SUM(IF((c.royalpayindustry =1 or c.royalpayindustry like '100%'),so.total,0))/sum( so.total )*100,decimal(15,2)) as amount_pcent, convert(SUM(IF((c.royalpayindustry =1 or c.royalpayindustry like '100%'),so.orders,0))/sum( so.orders )*100,decimal(15,2)) as order_pcent, + count(Distinct so.client_id) as industry_trans_clients, sum(so.total) as industry_total_amount, sum(so.orders) as industry_orders, 100 as amount_pcent, @@ -1125,6 +1127,7 @@ + count(Distinct IF(c.royalpayindustry like #{industry}, so.client_id,0)) as industry_trans_clients, SUM(IF(c.royalpayindustry like #{industry},so.total,0)) as industry_total_amount, SUM(IF(c.royalpayindustry like #{industry},so.orders,0)) as industry_orders, convert(SUM(IF(c.royalpayindustry like #{industry},so.total,0))/sum( so.total )*100,decimal(15,2)) as amount_pcent, @@ -1148,6 +1151,7 @@ order by trans_date asc +