master
yuan 8 years ago
parent 24191f31db
commit f114f89dd2

@ -36,6 +36,7 @@ public class AnalysisBean {
private String amount_from; private String amount_from;
private String amount_to; private String amount_to;
private String bd_name; private String bd_name;
private boolean recent_client = false;
public JSONObject toParams(String timezone) { public JSONObject toParams(String timezone) {
JSONObject params = new JSONObject(); JSONObject params = new JSONObject();
if (timezone != null) { if (timezone != null) {
@ -94,6 +95,14 @@ public class AnalysisBean {
return params; return params;
} }
public boolean isRecent_client() {
return recent_client;
}
public void setRecent_client(boolean recent_client) {
this.recent_client = recent_client;
}
public String getBegin() { public String getBegin() {
return begin; return begin;
} }

@ -79,6 +79,9 @@ public class PartnersAnalysisController {
params.put("bd_group_bd",analysis.getGroup_bd()); params.put("bd_group_bd",analysis.getGroup_bd());
} }
} }
if (analysis.isRecent_client()){
params.put("recent_client",true);
}
return partnersAnalysisService.getPartnersSettlementAnalysis(params); return partnersAnalysisService.getPartnersSettlementAnalysis(params);
} }
} }

@ -157,14 +157,13 @@
THEN 'T+2' THEN 'T+2'
WHEN 3 WHEN 3
THEN 'T+3' THEN 'T+3'
END AS settlement_cycle END AS clean_days
FROM sys_clients c FROM sys_clients c
<where> <where>
c.client_id IS not null AND c.merchant_id IS NOT NULL c.client_id IS not null AND (c.approve_result = 1 OR c.approve_result= 2) AND c.is_valid = 1
AND (c.approve_result = 1 OR c.approve_result= 2) AND c.is_valid = 1
<if test="org_id!=null and org_ids==null">and org_id=#{org_id}</if> <if test="org_id!=null and org_ids==null">and org_id=#{org_id}</if>
<if test="org_ids!=null">and org_id in <if test="org_ids!=null">and org_id in
<foreach collection="org_ids" item="org_id" open="(" close=")" separator=",">#{org_id}</foreach></if> <foreach collection="org_ids" item="org_id" open="(" close=")" separator=",">#{org_id}</foreach></if>
<if test="bd_group!=null">and c.client_id in <if test="bd_group!=null">and c.client_id in
(SELECT b.client_id FROM sys_client_bd b (SELECT b.client_id FROM sys_client_bd b
INNER JOIN financial_bd_config c ON c.manager_id=b.bd_id INNER JOIN financial_bd_config c ON c.manager_id=b.bd_id
@ -173,9 +172,8 @@
<if test="bd_group_bd">and c.manager_id=#{bd_group_bd}</if>) <if test="bd_group_bd">and c.manager_id=#{bd_group_bd}</if>)
</if> </if>
<if test="recent_client!=null"> <if test="recent_client!=null">
c.client_id in AND c.client_id in (SELECT p.client_id FROM sys_clients p INNER JOIN statistics_customer_order o ON o.client_id = p.client_id AND o.client_id !=0
(SELECT p.client_id FROM sys_clients p INNER JOIN statistics_customer_order o ON o.client_id = p.client_id AND o.client_id !=0 WHERE datediff(now(), o.date) <![CDATA[ <= ]]>230 AND p.client_id is not null GROUP BY p.client_id)
WHERE datediff(now(), o.date) <![CDATA[ <= ]]>30 AND p.client_id is not null GROUP BY p.client_id)
</if> </if>
</where> </where>
GROUP by c.clean_days GROUP by c.clean_days

@ -23,6 +23,7 @@ define(['angular', 'uiBootstrap', 'uiRouter', 'angularEcharts','./transaction/an
if (!$scope.params.onlyGroup){ if (!$scope.params.onlyGroup){
$scope.loadPartnersInTypes(); $scope.loadPartnersInTypes();
$scope.doAnalysis(); $scope.doAnalysis();
$scope.loadTradePartnersBySettlementCycle();
return; return;
} }
if (groupBD == 'all') { if (groupBD == 'all') {
@ -36,6 +37,7 @@ define(['angular', 'uiBootstrap', 'uiRouter', 'angularEcharts','./transaction/an
} }
$scope.loadPartnersInTypes(); $scope.loadPartnersInTypes();
$scope.doAnalysis(); $scope.doAnalysis();
$scope.loadTradePartnersBySettlementCycle();
}; };
$scope.loadRoyalpayindustry = function () { $scope.loadRoyalpayindustry = function () {
$http.get('/static/data/royalpayindustry.json').then(function (resp) { $http.get('/static/data/royalpayindustry.json').then(function (resp) {
@ -177,42 +179,47 @@ define(['angular', 'uiBootstrap', 'uiRouter', 'angularEcharts','./transaction/an
} }
}; };
$scope.loadTradePartnersBySettlementCycle = function () { $scope.loadTradePartnersBySettlementCycle = function () {
var partnersBySettlementCycle = { var params = angular.copy($scope.params);
chart: { $http.get('/analysis/partners/settlement', {params:params}).then(function (resp) {
tooltip: {
trigger: 'item',
formatter :"{a} {b} : {c} ({d}%)"
},
color: colors
},
series: [{
basic: {
name: '周期', type: 'pie',
radius: '60%',
center: ['50%', '40%'],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
},
normal : {
label : {
position : 'outer',
formatter :"{a} {b} : {c} ({d}%)"
}
}
}
},
column: {key: 'client_count', name: 'settlement_cycle'}
}]
};
$http.get('/analysis/partners/settlement', {params:{}}).then(function (resp) {
$scope.settlementCycle = resp.data; $scope.settlementCycle = resp.data;
$scope.partners_settlement_chart = chartParser.parse(partnersBySettlementCycle, resp.data); $scope.partners_settlement_chart = chartParser.parse(partnersBySettlementCycle, resp.data);
}); });
}; };
$scope.loadTradePartnersBySettlementCycle(); $scope.loadTradePartnersBySettlementCycle();
$scope.chooseThirtyDays = function () {
$scope.params.recent_client = true;
$scope.loadTradePartnersBySettlementCycle();
};
var partnersBySettlementCycle = {
chart: {
tooltip: {
trigger: 'item',
formatter :"{a} {b} : {c} ({d}%)"
},
color: colors
},
series: [{
basic: {
name: '周期', type: 'pie',
radius: '60%',
center: ['50%', '40%'],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
},
normal : {
label : {
position : 'outer',
formatter :"{a} {b} : {c} ({d}%)"
}
}
}
},
column: {key: 'client_count', name: 'clean_days'}
}]
};
/*var partnerTypesConfig = function (legend) { /*var partnerTypesConfig = function (legend) {
return { return {
chart: { chart: {

@ -61,8 +61,8 @@
<div class="box box-warning"> <div class="box box-warning">
<div class="box-header pull-right"> <div class="box-header pull-right">
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<button type="button" class="btn btn-info" ng-click="showIndustry();display=false" ng-class="{'active':!display}">行业</button> <button type="button" class="btn btn-info" ng-click="display=false" ng-class="{'active':!display}">行业</button>
<button type="button" class="btn btn-info" ng-click="showCycle();display=true" ng-class="{'active':display}">周期</button> <button type="button" class="btn btn-info" ng-click="display=true" ng-class="{'active':display}">周期</button>
</div> </div>
</div> </div>
<div class="box-body" ng-if="!display"> <div class="box-body" ng-if="!display">
@ -101,8 +101,13 @@
<div class="box-body" ng-if="display"> <div class="box-body" ng-if="display">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="col-sm-6 col-xs-12"> <div class="col-sm-6 col-xs-12">
<p class="text-center">商户结算周期分布</p> <p class="text-center">商户结算周期分布
<div class="chart" style="height: 400px" echarts="partners_settlement_chart" <span class="btn-group" role="group">
<button type="button" class="btn btn-primary btn-xs" ng-click="loadTradePartnersBySettlementCycle();choose=false" ng-class="{'active':!choose}">All</button>
<button type="button" class="btn btn-primary btn-xs" ng-click="chooseThirtyDays();choose=true" ng-class="{'active':choose}">recent 30 days</button>
</span>
</p>
<div class="chart" style="height: 300px" echarts="partners_settlement_chart"
chart-setter="partner_type_chart($chart)" chart-setter="partner_type_chart($chart)"
ng-class="{nodata:partners_settlement_chart.nodata}"></div> ng-class="{nodata:partners_settlement_chart.nodata}"></div>
</div> </div>
@ -117,7 +122,7 @@
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="cycle in settlementCycle"> <tr ng-repeat="cycle in settlementCycle">
<td ng-bind="cycle.settlement_cycle"></td> <td ng-bind="cycle.clean_days"></td>
<td ng-bind="cycle.client_count"></td> <td ng-bind="cycle.client_count"></td>
</tr> </tr>
</tbody> </tbody>

Loading…
Cancel
Save