add 商户kyc进度

master
luoyang 5 years ago
parent 0b7616f212
commit 6daa0cf640

@ -0,0 +1,67 @@
package au.com.royalpay.payment.manage.kyc.bean;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
/**
* Created by yishuqian on 8/30/16.
*/
public class KycPartnersQuery {
private String clientMoniker;
private String status;
private int page = 1;
private int limit = 10;
private boolean onlyMe = false;
public String getClientMoniker() {
return clientMoniker;
}
public void setClientMoniker(String title) {
this.clientMoniker = title;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public boolean isOnlyMe() {
return onlyMe;
}
public void setOnlyMe(boolean onlyMe) {
this.onlyMe = onlyMe;
}
public JSONObject toJsonParam() {
JSONObject param = new JSONObject();
if (StringUtils.isNotBlank(clientMoniker)) {
param.put("clientMoniker", getClientMoniker());
}
if (StringUtils.isNotBlank(status)) {
param.put("status", getStatus());
}
return param;
}
}

@ -0,0 +1,16 @@
package au.com.royalpay.payment.manage.kyc.core;
import au.com.royalpay.payment.manage.kyc.bean.KycPartnersQuery;
import com.alibaba.fastjson.JSONObject;
import java.util.List;
public interface KycManage {
JSONObject listProgressClients(JSONObject manager, KycPartnersQuery query);
JSONObject listCompletedClients(JSONObject manager, KycPartnersQuery query);
List<JSONObject> listNeedHelpClients(JSONObject manager, KycPartnersQuery query);
}

@ -0,0 +1,73 @@
package au.com.royalpay.payment.manage.kyc.core.impls;
import au.com.royalpay.payment.manage.kyc.bean.KycPartnersQuery;
import au.com.royalpay.payment.manage.kyc.core.KycManage;
import au.com.royalpay.payment.manage.mappers.financial.FinancialBDConfigMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientComplianceCompanyMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import au.com.royalpay.payment.tools.utils.PageListUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.Order;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class KycManageImpl implements KycManage {
@Resource
private ClientMapper clientMapper;
@Resource
private FinancialBDConfigMapper financialBDConfigMapper;
@Resource
private ClientComplianceCompanyMapper clientComplianceCompanyMapper;
@Override
public JSONObject listProgressClients(JSONObject manager, KycPartnersQuery query) {
JSONObject params = query.toJsonParam();
checkManagerPermission(manager, params, query);
PageList<JSONObject> progressClients = clientComplianceCompanyMapper.listKycProgressClients(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc")));
return PageListUtils.buildPageListResult(progressClients);
}
@Override
public JSONObject listCompletedClients(JSONObject manager, KycPartnersQuery query) {
JSONObject params = query.toJsonParam();
checkManagerPermission(manager, params, query);
PageList<JSONObject> completedClients = clientMapper.listCompletedContractKycClients(params, new PageBounds(query.getPage(), query.getLimit(), Order.formString("create_time.desc")));
return PageListUtils.buildPageListResult(completedClients);
}
@Override
public List<JSONObject> listNeedHelpClients(JSONObject manager, KycPartnersQuery query) {
JSONObject params = query.toJsonParam();
checkManagerPermission(manager, params, query);
return clientComplianceCompanyMapper.listNeedHelpClients(params);
}
private void checkManagerPermission(JSONObject manager, JSONObject params, KycPartnersQuery query) {
if (ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))) {
JSONObject bdConfig = financialBDConfigMapper.getBdConfig(manager.getString("manager_id"));
if (bdConfig != null) {
params.put("bd_group", bdConfig.getString("bd_group"));
List<JSONObject> listGroupBds = financialBDConfigMapper.listGroupBds(bdConfig.getString("bd_group"));
List<String> bdUserId = listGroupBds.stream().map(groupBd -> groupBd.getString("manager_id")).collect(Collectors.toList());
if (params.containsKey("bd_user")) {
if (!bdUserId.contains(params.getString("bd_user"))) {
params.remove("bd_user");
}
}
}
if (query.isOnlyMe()) {
params.put("bd_user", manager.getString("manager_id"));
if (params.containsKey("bd_group")) {
params.remove("bd_group");
}
}
}
}
}

@ -0,0 +1,38 @@
package au.com.royalpay.payment.manage.kyc.web;
import au.com.royalpay.payment.manage.kyc.bean.KycPartnersQuery;
import au.com.royalpay.payment.manage.kyc.core.KycManage;
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/sys/kyc/manage")
public class KycManageController {
@Resource
private KycManage kycManage;
@ManagerMapping(value = "/partner/progressing", method = RequestMethod.GET, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
public JSONObject listProgressClients(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, KycPartnersQuery query) {
return kycManage.listProgressClients(manager, query);
}
@ManagerMapping(value = "/partner/completed", method = RequestMethod.GET, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
public JSONObject listCompletedClients(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, KycPartnersQuery query) {
return kycManage.listCompletedClients(manager, query);
}
@ManagerMapping(value = "/partner/need_help", method = RequestMethod.GET, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
public List<JSONObject> listNeedHelpClients(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, KycPartnersQuery query) {
return kycManage.listNeedHelpClients(manager, query);
}
}

@ -1,6 +1,5 @@
package au.com.royalpay.payment.manage.mappers.system;
import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect;
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper;
import cn.yixblog.support.mybatis.autosql.annotations.AutoSql;
import cn.yixblog.support.mybatis.autosql.annotations.SqlType;
@ -27,4 +26,8 @@ public interface ClientComplianceCompanyMapper {
PageList<JSONObject> listClientCompliances(JSONObject params, PageBounds pageBounds);
List<JSONObject> listNeedHelpClients(JSONObject params);
PageList<JSONObject> listKycProgressClients(JSONObject params, PageBounds pageBounds);
}

@ -4,7 +4,6 @@ import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect;
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper;
import cn.yixblog.support.mybatis.autosql.annotations.AutoSql;
import cn.yixblog.support.mybatis.autosql.annotations.SqlType;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
@ -141,4 +140,5 @@ public interface ClientMapper {
List<Integer> listUseAlipayMerchant(@Param("start") int start, @Param("end") int end);
PageList<JSONObject> listCompletedContractKycClients(JSONObject params, PageBounds pageBounds);
}

@ -2,15 +2,69 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="au.com.royalpay.payment.manage.mappers.system.ClientComplianceCompanyMapper">
<select id="listClientCompliances" resultType="com.alibaba.fastjson.JSONObject">
SELECT c.client_moniker,c.short_name,c.create_time,c.bd_user_name,c.approve_result,c.approve_time,c.open_status,
c.source as client_source,c.refuse_remark,a.* FROM client_authfile_compliance a INNER JOIN sys_clients c on c.client_id = a.client_id
<where>
<if test="client_moniker!=null">
and c.client_moniker = #{client_moniker}
</if>
<if test="status!=null">
and a.status = #{status}
</if>
</where>
</select>
<select id="listNeedHelpClients" resultType="com.alibaba.fastjson.JSONObject">
SELECT c.client_moniker,c.short_name,c.create_time,c.bd_user_name,c.approve_result,c.approve_time,c.open_status,
c.source as client_source,c.refuse_remark,a.* FROM client_authfile_compliance a INNER JOIN sys_clients c on c.client_id = a.client_id
<where>
and a.type = 2
and a.need_help = 1
<if test="client_moniker!=null">
and c.client_moniker = #{client_moniker}
</if>
<if test="status!=null">
and a.status = #{status}
</if>
<if test="bd_user!=null">
INNER JOIN sys_client_bd d ON a.client_id = d.client_id AND d.bd_id = #{bd_user} and
date(d.start_date)&lt;= date(now()) and (d.end_date is null or date(d.end_date)&gt;= date(now())) and
d.is_valid=1
</if>
<if test="bd_group!=null">and a.client_id in
(SELECT b.client_id FROM sys_client_bd b
INNER JOIN financial_bd_config fb ON fb.manager_id=b.bd_id
where b.is_valid=1 and b.start_date&lt;=now() and (b.end_date is null or b.end_date &gt;= now())
AND (fb.bd_group=#{bd_group} or fb.manager_id=#{bd_group})
)
</if>
</where>
order by a.submit_time desc
</select>
<select id="listKycProgressClients" resultType="com.alibaba.fastjson.JSONObject">
SELECT c.client_moniker,c.short_name,c.create_time,c.bd_user_name,c.approve_result,c.approve_time,c.open_status,
c.source as client_source,a.* FROM client_authfile_compliance a INNER JOIN sys_clients c on c.client_id = a.client_id
<where>
and a.type = 2
<if test="client_moniker!=null">
and c.client_moniker = #{client_moniker}
</if>
<if test="status!=null">
and a.status = #{status}
</if>
<if test="bd_user!=null">
INNER JOIN sys_client_bd d ON a.client_id = d.client_id AND d.bd_id = #{bd_user} and
date(d.start_date)&lt;= date(now()) and (d.end_date is null or date(d.end_date)&gt;= date(now())) and
d.is_valid=1
</if>
<if test="bd_group!=null">and a.client_id in
(SELECT b.client_id FROM sys_client_bd b
INNER JOIN financial_bd_config fb ON fb.manager_id=b.bd_id
where b.is_valid=1 and b.start_date&lt;=now() and (b.end_date is null or b.end_date &gt;= now())
AND (fb.bd_group=#{bd_group} or fb.manager_id=#{bd_group})
)
</if>
</where>
</select>
</mapper>

@ -770,5 +770,32 @@
and client_id &lt; #{end}
</select>
<select id="listCompletedContractKycClients" resultType="com.alibaba.fastjson.JSONObject">
SELECT c.client_moniker,c.short_name,c.create_time,c.bd_user_name,c.approve_result,c.approve_time,c.open_status,
c.source AS client_source,c.refuse_remark,a.* FROM sys_clients c LEFT JOIN client_authfile_compliance a ON c.client_id = a.client_id AND a.type=2
<where>
and c.is_valid=1 and (a.is_valid is null or a.status = 2)
<if test="client_moniker!=null">
and c.client_moniker = #{client_moniker}
</if>
<if test="status==3">
and a.is_valid is null
</if>
<if test="status==2">
and a.status = 2
</if>
<if test="bd_user!=null">
INNER JOIN sys_client_bd d ON a.client_id = d.client_id AND d.bd_id = #{bd_user} and
date(d.start_date)&lt;= date(now()) and (d.end_date is null or date(d.end_date)&gt;= date(now())) and
d.is_valid=1
</if>
<if test="bd_group!=null">and a.client_id in
(SELECT b.client_id FROM sys_client_bd b
INNER JOIN financial_bd_config fb ON fb.manager_id=b.bd_id
where b.is_valid=1 and b.start_date&lt;=now() and (b.end_date is null or b.end_date &gt;= now())
AND (fb.bd_group=#{bd_group} or fb.manager_id=#{bd_group})
)
</if>
</where>
</select>
</mapper>

File diff suppressed because one or more lines are too long

@ -31,7 +31,8 @@
</div>
</div>
</div>
--> <a role="button" style="float: right;line-height: 46px" ui-sref="home" ng-click="headerCopyDisplay()"><i class="fa fa-reply"></i> 返回</a>
-->
<a role="button" style="float: right;line-height: 46px" ui-sref="home" ng-click="headerCopyDisplay()"><i class="fa fa-reply"></i> 返回</a>
<div class="list-group" ng-if="role!=null && role!='administrator' && role!='developer' && 'partners'|withModule">
<div class="row">
<div class="col-sm-2 col-lg-2 col-xs-6" id="partners">
@ -61,6 +62,16 @@
</div>
</a>
</div>
<div ng-if="'110'|withRole" class="col-sm-2 col-xs-6">
<a ui-sref="partnerKYCProgress" ui-sref-opts="{reload:true}">
<div class="description-block">
<img src="/static/images/main_menu/merchant_info.png"/>
<div class="description-text">
<span class="description-text">商户KYC认证进度</span>
</div>
</div>
</a>
</div>
<!--<div ng-if="'log'|withModule" class="col-sm-2 col-xs-6">-->
<!--<a ui-sref="logview.config_operation" ui-sref-opts="{reload:true}">-->
<!--<div class="description-block">-->

@ -0,0 +1,84 @@
define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiSelect'], function (angular) {
'use strict';
var app = angular.module('kycManageApp', ['ui.bootstrap', 'ui.router', 'frapontillo.bootstrap-switch', 'ngFileUpload', 'ui.select']);
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('partnerKYCProgress', {
url: '/partners/partnerKYCProgress',
templateUrl: 'static/payment/kyc/templates/partner_kyc_progress.html',
controller: 'partnerKYCProgressCtrl'
})
}]);
app.controller('partnerKYCProgressCtrl', ['$scope', '$sce', '$http','$uibModal',
function ($scope, $sce, $http, $uibModal) {
$scope.ctrl = {
plusShow1: false,
plusShow2: false,
plusShow3: false
};
$scope.progressPagination = {};
$scope.completedPagination = {};
$scope.params = {};
$scope.loadClientProgressing = function (page,status) {
var params = angular.copy($scope.params);
params.status = status;
params.page = page || $scope.progressPagination.page || 1;
$http.get('/sys/kyc/manage/partner/progressing', {params: params}).then(function (resp) {
$scope.approving = resp.data.data;
$scope.progressPagination = resp.data.pagination;
});
};
$scope.loadClientCompleted = function (page) {
var params = angular.copy($scope.params);
params.page = page || $scope.completedPagination.page || 1;
$http.get('/sys/kyc/manage/partner/completed', {params: params}).then(function (resp) {
$scope.completed_contract = resp.data.data;
$scope.completedPagination = resp.data.pagination;
});
};
$scope.loadClientNeedHelp = function () {
var params = angular.copy($scope.params);
$http.get('/sys/kyc/manage/partner/need_help', {params: params}).then(function (resp) {
$scope.need_help = resp.data;
});
};
$scope.loadClientNeedHelp();
$scope.loadClientCompleted();
$scope.loadClientProgressing();
$scope.statusSelected = function (arr) {
return $scope.params.status != null && $scope.params.status.filter(function (status) {
return arr.indexOf(status) >= 0
}).length > 0 || $scope.status != null && $scope.status.filter(function (status) {
return arr.indexOf(status) >= 0
}).length > 0
};
$scope.addHandleLog = function (info) {
debugger
$uibModal.open({
templateUrl: '/static/payment/partner/templates/add_handle_log.html',
controller: 'addHandleDetailCtrl',
resolve:{
compliance_id:function () {
return info.compliance_id;
}}
}).result.then(function () {
commonDialog.alert({title: 'Success', type: 'success'});
})
};
}]);
app.controller('addHandleDetailCtrl', [ '$scope', '$http', '$state', 'compliance_id', 'commonDialog',function ($scope, $http, $state, compliance_id, commonDialog) {
$scope.handleDetail = {compliance_id:compliance_id};
$scope.addHandleLog = function () {
$http.put('/register/manage', $scope.handleDetail).then(function (resp) {
$scope.$close();
},function (resp) {
});
}
}]);
return app;
});

@ -0,0 +1,375 @@
<script src="static/commons/services/circleChart.min.js"></script>
<style>
.btn-box-tool {
color: #97a0b3
}
</style>
<script>
$(".circleChart1").circleChart({
value: Math.random()*100,
redraw: false,
startAngle: 50,
text: 0 + '%',
onDraw: function(el, circle){
$(".circleChart_text", el).html(Math.round(circle.value) + '%');
}
});
$(".circleChart2").circleChart({
value: Math.random()*100,
redraw: false,
startAngle: 50,
text:true,
onDraw: function(el, circle){
$(".circleChart_text", el).html(Math.round(circle.value) + '%');
}
});
$(".circleChart3").circleChart({
value: Math.random()*100,
redraw: false,
startAngle: 50,
text: 0 + '%',
onDraw: function(el, circle){
$(".circleChart_text", el).html(Math.round(circle.value) + '%');
}
});
</script>
<section class="content-header" style="margin-bottom: 30px">
<h1>商户KYC认证进度</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-sitemap"></i> Partner Manage
</li>
<li class="active">商户KYC认证进度</li>
</ol>
</section>
<div class="row">
<div class="col-lg-4 col-6">
<!-- small card -->
<div class="small-box bg-info">
<div class="inner">
<h3>44</h3>
<p>User Registrations</p>
</div>
<div class="icon">
<div class="circleChart1"></div>
</div>
</div>
</div>
<div class="col-lg-4 col-6">
<!-- small card -->
<div class="small-box bg-info">
<div class="inner">
<h3>44</h3>
<p>User Registrations</p>
</div>
<div class="icon">
<div class="circleChart2"></div>
</div>
</div>
</div>
<div class="col-lg-4 col-6">
<!-- small card -->
<div class="small-box bg-info">
<div class="inner">
<h3>44</h3>
<p>User Registrations</p>
</div>
<div class="icon">
<div class="circleChart3"></div>
</div>
</div>
</div>
</div>
<div class="box box-warning">
<div class="box-header">待处理需要帮助的商户({{need_help.length}}家):
<div class="box-tools pull-right">
<button type="button" ng-if="!ctrl.plusShow1" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#need-help" ng-click="ctrl.plusShow1=true">
<i class="fa fa-minus"></i>
</button>
<button type="button" ng-if="ctrl.plusShow1" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#need-help" ng-click="ctrl.plusShow1=false">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body table-responsive collapse in" id="need-help">
<table class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>Client Moniker</th>
<th>Short Name</th>
<th>Compliance Status</th>
<th>Register Time</th>
<th>Submit Time</th>
<th>Source</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="client in need_help">
<td>
{{client.client_moniker}}
</td>
<td ng-bind="client.short_name"></td>
<td ng-class="{'bg-green':(client.approve_result==2 && (client.client_source==1 || client.client_source==2)),'bg-red':((client.open_status==1||client.open_status==2||client.open_status==4) && client.approve_result!=3)||(client.approve_result==3 && (!client.open_status || client.open_status==1 || client.open_status == 4))||(client.approve_result==4 && !client.open_status)||(client.open_status==10)}">
<span ng-if="client.approve_result==1 && client.approve_time">通过({{client.approve_time}})</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source!=4">资料完善中</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source==4">(自助开通)资料完善中</span>
<span ng-if="!client.open_status && client.approve_result==2 && client.approve_time">自助开通试用中({{client.approve_time}}~{{client.expiry_time}})</span>
<span ng-if="client.approve_result==0 && client.approve_time">不通过({{client.approve_time}})</span>
<span ng-if="client.approve_result==5 && client.approve_time && client.refuse_remark">申请打回({{client.refuse_remark|limitTo:15}})</span>
<span ng-if="(client.open_status==1||client.open_status==4) && client.approve_result!=3"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
<span ng-if="client.approve_result==3 && (!client.open_status || client.open_status==4)">自助开通(等待合规)</span>
<span ng-if="client.open_status==2">合同制作完成</span>
<span ng-if="client.open_status==3 && client.approve_result!=5">等待BD上传材料审核</span>
<span ng-if="client.open_status==10">绿色通道申请中</span>
<span ng-if="client.approve_result==4 && !client.open_status"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
</td>
<td ng-bind="client.create_time|date:'dd/MMM/yyyy'"></td>
<td ng-bind="client.submit_time|date:'dd/MMM/yyyy'"></td>
<td>
<span ng-if="client.source==1">App</span>
<span ng-if="client.source==2">Web</span>
</td>
<td>
<a class="text-primary" role="button" title="Detail"
ui-sref="partner_apply.apply_detail({client_pre_apply_id:apply.client_pre_apply_id})">
<i class="fa fa-search"></i> Detail
</a>|
<a class="text-primary" role="button" title="Detail" ng-click="addHandleLog(client)">Handle
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="box box-info" style="margin-top: 30px;">
<div class="box-header">已提交审核({{progressPagination.totalCount}}家):
<div class="box-tools pull-right">
<button type="button" ng-if="!ctrl.plusShow2" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#approving" ng-click="ctrl.plusShow2=true">
<i class="fa fa-minus"></i>
</button>
<button type="button" ng-if="ctrl.plusShow2" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#approving" ng-click="ctrl.plusShow2=false">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body table-responsive collapse in" id="approving">
<div class="row">
<div class="col-sm-12">
<div class="form-horizontal">
<div class="form-group col-xs-12">
<label class="col-xs-4 col-sm-2 control-label">Partner Code</label>
<div class="col-sm-5 col-xs-8">
<input class="form-control" placeholder="" ng-click="loadClientProgressing(1)"
ng-model="params.client_moniker">
</div>
</div>
<div class="form-group col-xs-12">
<label class="control-label col-xs-4 col-sm-2">审核状态:</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':status==null}"
ng-click="status=null;loadClientProgressing(1,status)">All</a> |
<a role="button" ng-class="{'bg-primary':statusSelected([0])}"
ng-click="status=[0];loadClientProgressing(1,status)">待审核</a>|
<a role="button" ng-class="{'bg-primary':statusSelected([1])}"
ng-click="status=[1];loadClientProgressing(1,status)">通过</a>
</p>
</div>
</div>
<button class="btn btn-success" type="button" ng-click="loadClientProgressing()">
<i class="fa fa-search"></i> Search
</button>
</div>
</div>
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>Client Moniker</th>
<th>Short Name</th>
<th>Compliance Status</th>
<th>Register Time</th>
<th>AuthFile Status</th>
<th>Submit Time</th>
<th>Source</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="client in approving">
<td ng-bind="client.client_moniker"></td>
<td ng-bind="client.short_name"></td>
<td ng-class="{'bg-green':(client.approve_result==2 && (client.client_source==1 || client.client_source==2)),'bg-red':((client.open_status==1||client.open_status==2||client.open_status==4) && client.approve_result!=3)||(client.approve_result==3 && (!client.open_status || client.open_status==1 || client.open_status == 4))||(client.approve_result==4 && !client.open_status)||(client.open_status==10)}">
<span ng-if="client.approve_result==1 && client.approve_time">通过({{client.approve_time}})</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source!=4">资料完善中</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source==4">(自助开通)资料完善中</span>
<span ng-if="!client.open_status && client.approve_result==2 && client.approve_time">自助开通试用中({{client.approve_time}}~{{client.expiry_time}})</span>
<span ng-if="client.approve_result==0 && client.approve_time">不通过({{client.approve_time}})</span>
<span ng-if="client.approve_result==5 && client.approve_time && client.refuse_remark">申请打回({{client.refuse_remark|limitTo:15}})</span>
<span ng-if="(client.open_status==1||client.open_status==4) && client.approve_result!=3"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
<span ng-if="client.approve_result==3 && (!client.open_status || client.open_status==4)">自助开通(等待合规)</span>
<span ng-if="client.open_status==2">合同制作完成</span>
<span ng-if="client.open_status==3 && client.approve_result!=5">等待BD上传材料审核</span>
<span ng-if="client.open_status==10">绿色通道申请中</span>
<span ng-if="client.approve_result==4 && !client.open_status"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
</td>
<td ng-bind="client.create_time|date:'dd/MMM/yyyy'"></td>
<td>
<span ng-if="client.status==0">待审核</span>
<span ng-if="client.status==1">通过</span>
<span ng-if="client.status==2">打回</span>
</td>
<td ng-bind="client.submit_time|date:'dd/MMM/yyyy'"></td>
<td>
<span ng-if="client.source==1">App</span>
<span ng-if="client.source==2">Web</span>
</td>
<td><a class="text-primary" role="button" title="Detail"
ui-sref="compliance_detail({client_moniker:client.client_moniker})">
<i class="fa fa-search"></i> Detail
</a>
</td>
<!--({client_id:client.client_id})-->
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<uib-pagination ng-if="approving.length"
class="pagination"
total-items="progressPagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadClientProgressing()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="col-xs-12">Total Records:{{progressPagination.totalCount}};Total Pages:{{progressPagination.totalPages}}</div>
</div>
</div>
</div>
<div class="box box-danger" style="margin-top: 30px;">
<div class="box-header">未提交审核({{completedPagination.totalCount}}家):
<div class="box-tools pull-right">
<button type="button" ng-if="!ctrl.plusShow3" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#completed_contract" ng-click="ctrl.plusShow3=true">
<i class="fa fa-minus"></i>
</button>
<button type="button" ng-if="ctrl.plusShow3" class="btn btn-tool btn-box-tool" data-toggle="collapse" data-target="#completed_contract" ng-click="ctrl.plusShow3=false">
<i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body table-responsive collapse in" id="completed_contract">
<div class="row">
<div class="col-sm-12">
<div class="form-horizontal">
<div class="form-group col-xs-12">
<label class="col-xs-4 col-sm-2 control-label">Partner Code</label>
<div class="col-sm-5 col-xs-8">
<input class="form-control" placeholder="" ng-click="loadClientCompleted(1)"
ng-model="params.client_moniker">
</div>
</div>
<div class="form-group col-xs-12">
<label class="control-label col-xs-4 col-sm-2">审核状态:</label>
<div class="col-sm-10 col-xs-8">
<p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status==null}"
ng-click="params.status=null;loadClientCompleted(1)">All</a> |
<a role="button" ng-class="{'bg-primary':statusSelected([3])}"
ng-click="params.status=[3];loadClientCompleted(1)">未提交</a> |
<a role="button" ng-class="{'bg-primary':statusSelected([2])}"
ng-click="params.status=[2];loadClientCompleted(1)">打回</a>
</p>
</div>
</div>
<button class="btn btn-success" type="button" ng-click="loadClientCompleted()">
<i class="fa fa-search"></i> Search
</button>
</div>
</div>
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>Client Moniker</th>
<th>Short Name</th>
<th>Compliance Status</th>
<th>Register Time</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="client in completed_contract">
<td ng-bind="client.client_moniker"></td>
<td ng-bind="client.short_name"></td>
<td ng-class="{'bg-green':(client.approve_result==2 && (client.client_source==1 || client.client_source==2)),'bg-red':((client.open_status==1||client.open_status==2||client.open_status==4) && client.approve_result!=3)||(client.approve_result==3 && (!client.open_status || client.open_status==1 || client.open_status == 4))||(client.approve_result==4 && !client.open_status)||(client.open_status==10)}">
<span ng-if="client.approve_result==1 && client.approve_time">通过({{client.approve_time}})</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source!=4">资料完善中</span>
<span ng-if="!client.open_status && !client.approve_result && client.approve_result!=5 && client.client_source==4">(自助开通)资料完善中</span>
<span ng-if="!client.open_status && client.approve_result==2 && client.approve_time">自助开通试用中({{client.approve_time}}~{{client.expiry_time}})</span>
<span ng-if="client.approve_result==0 && client.approve_time">不通过({{client.approve_time}})</span>
<span ng-if="client.approve_result==5 && client.approve_time && client.refuse_remark">申请打回({{client.refuse_remark|limitTo:15}})</span>
<span ng-if="(client.open_status==1||client.open_status==4) && client.approve_result!=3"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
<span ng-if="client.approve_result==3 && (!client.open_status || client.open_status==4)">自助开通(等待合规)</span>
<span ng-if="client.open_status==2">合同制作完成</span>
<span ng-if="client.open_status==3 && client.approve_result!=5">等待BD上传材料审核</span>
<span ng-if="client.open_status==10">绿色通道申请中</span>
<span ng-if="client.approve_result==4 && !client.open_status"><i
ng-if="client.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
title="被打回重新提交"></i>等待合规</span>
</td>
<td ng-bind="client.create_time|date:'dd/MMM/yyyy'"></td>
<td><a class="text-primary" role="button" title="Detail"
ui-sref="compliance_detail({client_moniker:client.client_moniker})">
<i class="fa fa-search"></i> Detail
</a>
</td>
<!--({client_id:client.client_id})-->
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<uib-pagination ng-if="completed_contract.length"
class="pagination"
total-items="completedPagination.totalCount"
boundary-links="true"
ng-model="completedPagination.page"
items-per-page="completedPagination.limit"
max-size="10"
ng-change="loadClientCompleted()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="col-xs-12">Total Records:{{completedPagination.totalCount}};Total Pages:{{completedPagination.totalPages}}</div>
</div>
</div>
</div>
Loading…
Cancel
Save