parent
d6074bc055
commit
fbf83fcb35
@ -0,0 +1,25 @@
|
||||
package au.com.royalpay.payment.manage.mappers.payment;
|
||||
|
||||
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.JSONObject;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by liuxinxin on 2019-11-12.
|
||||
*/
|
||||
@AutoMapper(tablename = "sys_client_incremental", pkName = "incremental_id")
|
||||
public interface SysClientIncrementalMapper {
|
||||
|
||||
@Select("SELECT incremental_rate_value FROM sys_client_incremental WHERE channel = #{channel} AND client_id = #{client_id} ")
|
||||
String findByChannelAndClientId(@Param("client_id") String clientId,@Param("channel") String channel);
|
||||
|
||||
@AutoSql(type = SqlType.SELECT)
|
||||
List<JSONObject> find(@Param("client_id") String clientId);
|
||||
|
||||
|
||||
}
|
After Width: | Height: | Size: 415 B |
After Width: | Height: | Size: 432 B |
@ -0,0 +1,436 @@
|
||||
<style>
|
||||
.box-icon_small {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
font-size: 30px;
|
||||
line-height: 70px
|
||||
}
|
||||
|
||||
.info_box_bottom {
|
||||
min-height: 70px;
|
||||
margin-bottom: 0px
|
||||
}
|
||||
|
||||
.box-content_left {
|
||||
margin-left: 70px
|
||||
}
|
||||
|
||||
.box-number_font {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.line_height {
|
||||
line-height: 14px
|
||||
}
|
||||
|
||||
.line_height_ {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.col-xs-1-5,
|
||||
.col-sm-1-5,
|
||||
.col-md-1-5,
|
||||
.col-lg-1-5 {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.col-xs-1-5 {
|
||||
width: 20%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.col-sm-1-5 {
|
||||
width: 20%;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.col-md-1-5 {
|
||||
width: 20%;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.col-lg-1-5 {
|
||||
width: 20%;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<section class="content-header">
|
||||
<h1>Trade Logs</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-list-alt"></i> Transaction
|
||||
</li>
|
||||
<li class="active">Trade Logs</li>
|
||||
</ol>
|
||||
</section>
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="box-solid">
|
||||
<div class="box box-warning">
|
||||
<div class="box-header">
|
||||
<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">
|
||||
<select class="form-control" ng-model="params.textType">
|
||||
<option value="all">ALL</option>
|
||||
<option value="client_moniker">Partner Code</option>
|
||||
<option value="client_name">Partner Name</option>
|
||||
<option value="sys_trans_id">Platform Transaction ID</option>
|
||||
<option value="channel">Channel</option>
|
||||
<option value="order_id">Order ID</option>
|
||||
<option value="remark">Remark</option>
|
||||
</select>
|
||||
</label>
|
||||
<div class="col-sm-4 col-xs-8">
|
||||
<input class="form-control" placeholder="Keyword"
|
||||
ng-enter="loadTradeLogs(1)"
|
||||
ng-model="params.searchText">
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 col-xs-8">
|
||||
<div ng-if="orgs" class="col-sm-6">
|
||||
<select id="org-clild" class="form-control" ng-model="params.org_id"
|
||||
ng-options="org.org_id as org.name group by org.type for org in orgs"
|
||||
ng-change="params.org_id2 = '';loadOrgs();loadTradeLogs(1)">
|
||||
<option value="">ALL Organizations</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div ng-if="((orgs_child.length > 1) && ('1000011'|withRole))&¶ms.org_id || ((orgs_child.length > 0) && ('1000000000000'|withRole))"
|
||||
class="col-sm-6">
|
||||
<select id="org-select" class="form-control" ng-model="params.org_id2"
|
||||
ng-options="org.org_id as org.name group by org.org_type for org in orgs_child"
|
||||
ng-change="loadTradeLogs(1)">
|
||||
<option value="">{{org2}}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Status</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
|
||||
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
|
||||
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
|
||||
|
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
|
||||
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
|
||||
Refund</a> |
|
||||
<a role="button"
|
||||
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
|
||||
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
|
||||
Refund</a> |
|
||||
<a role="button"
|
||||
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
|
||||
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
|
||||
Refund</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Channel</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
|
||||
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
|
||||
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
|
||||
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
|
||||
<a role="button"
|
||||
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
|
||||
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
||||
|
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
|
||||
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
|
||||
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
|
||||
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
|
||||
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
|
||||
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
|
||||
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Date Range</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<div class="form-control-static form-inline">
|
||||
<div style="display: inline-block">
|
||||
<input class="form-control" id="date-from-input"
|
||||
ng-model="params.datefrom"
|
||||
uib-datepicker-popup size="10" placeholder="From"
|
||||
is-open="dateBegin.open" ng-click="dateBegin.open=true"
|
||||
datepicker-options="{maxDate:params.dateto||today}">
|
||||
</div>
|
||||
~
|
||||
<div style="display: inline-block">
|
||||
<input class="form-control" id="date-to-input"
|
||||
ng-model="params.dateto"
|
||||
uib-datepicker-popup size="10" placeholder="To"
|
||||
is-open="dateTo.open" ng-click="dateTo.open=true"
|
||||
datepicker-options="{minDate:params.datefrom,maxDate:today}">
|
||||
</div>
|
||||
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseToday()">Today</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseYesterday()">Yesterday</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseLast7Days()">Last 7 Days</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="thisMonth()">This Month</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="lastMonth()">Last Month</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group col-xs-12" ng-if="'1000000000'|withRole">
|
||||
<label class="control-label col-xs-4 col-sm-2">My Group</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':isAll}"
|
||||
ng-click="chooseBD('all')">All</a>
|
||||
<label ng-repeat="sub in bd_group_bds">
|
||||
| <a role="button"
|
||||
ng-class="{'bg-primary':sub.manager_id==chooseBDId}"
|
||||
ng-click="chooseBD(sub.manager_id)">{{sub.bd_name}}</a>
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button class="btn btn-success" type="button" ng-click="loadTradeLogs(1)">
|
||||
<i class="fa fa-search"></i> Search
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<div class="row">
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i
|
||||
class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Transaction Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.paid_fee|currency:'AUD'"></span>
|
||||
<span class="small">( {{analysis.order_count}} Orders )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12" ng-if="!analysis.cny_display_amount">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i
|
||||
class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Input Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.display_amount|currency:'AUD '"></span>
|
||||
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount">
|
||||
<div class="info-box info_box_bottom"
|
||||
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i
|
||||
class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Input Amount</span>
|
||||
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
|
||||
ng-class="{line_height_:!analysis.pre_display_amount}"
|
||||
ng-bind="analysis.display_amount|currency:'AUD '"></span>
|
||||
<span style="font-size: 8px;line-height: 8px"
|
||||
ng-if="analysis.pre_display_amount">
|
||||
( {{analysis.pre_display_amount | currency:'pre authorization '}} )
|
||||
</span>
|
||||
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
|
||||
ng-if="analysis.cny_display_amount"
|
||||
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
|
||||
<span style="font-size: 8px;line-height: 8px"
|
||||
ng-if="analysis.pre_cny_display_amount">
|
||||
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-red box-icon_small"><i
|
||||
class="ion ion-android-warning"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Refund Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
|
||||
<span class=small" ng-if="analysis.pre_refund_fee">
|
||||
({{analysis.pre_refund_fee|currency:'pre authorization '}})
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-yellow box-icon_small"><i
|
||||
class="ion ion-ios-people"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Merchants</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.clients"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1-5 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-yellow box-icon_small"><i
|
||||
class="ion ion-ios-people"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Incremental Surcharge</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.incremental_surcharge|currency:'AUD '"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title" style="display: inherit">Trade Orders
|
||||
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop"
|
||||
aria-hidden="true"
|
||||
style="color: #fff2a5"></i></span>
|
||||
</h3>
|
||||
<a hidden class="pull-right text-bold" ng-if="'manual_refund_check'|withFunc" role="button"
|
||||
ng-click="confirmOrders()">Manual Confirm Orders</a>
|
||||
</div>
|
||||
<div class="box-body table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Partner</th>
|
||||
<th>Order ID</th>
|
||||
<th>Amount</th>
|
||||
<th>Input Amount</th>
|
||||
<th>System Rate</th>
|
||||
<th>System Profit</th>
|
||||
<th>YangMaTou Rate</th>
|
||||
<th>YangMaTou Profit</th>
|
||||
<th>Status</th>
|
||||
<th>Create Time</th>
|
||||
<th>Operation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
|
||||
<td>
|
||||
<a role="button" ui-sref="partners.detail({clientMoniker:trade.client_moniker})">
|
||||
{{trade.short_name}}({{trade.client_moniker}})
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<img src="/static/images/royalpay_sign_s.png"
|
||||
uib-tooltip="RoyalPay" ng-if="trade.source=='system'"/>
|
||||
<img src="/static/images/yangmatou_sign.png"
|
||||
uib-tooltip="YangMaTou" ng-if="trade.source=='yangmatou'"/>
|
||||
<img src="/static/images/wechatpay_sign.png"
|
||||
uib-tooltip="WechatPay" ng-if="trade.channel=='Wechat'"/>
|
||||
<img src="/static/images/wechatpay_sign.png"
|
||||
uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/>
|
||||
<img src="/static/images/bestpay_sign.png"
|
||||
uib-tooltip="BestPay" ng-if="trade.channel=='Bestpay'"/>
|
||||
<img src="/static/images/alipay_sign.png"
|
||||
uib-tooltip="Alipay" ng-if="trade.channel=='Alipay'"/>
|
||||
<img src="/static/images/alipay_sign.png"
|
||||
uib-tooltip="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/>
|
||||
<img src="/static/images/jd_sign.png"
|
||||
uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/>
|
||||
<img src="/static/images/hf_sign.png"
|
||||
uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/>
|
||||
<img src="/static/images/rpayplus_sign.png"
|
||||
uib-tooltip="Royal Pay" ng-if="trade.channel=='Rpay'"/>
|
||||
<img src="/static/images/yeepay_sign.png"
|
||||
uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/>
|
||||
<img src="/static/images/lakalapay_sign.png"
|
||||
uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/>
|
||||
{{trade.order_id}}
|
||||
</td>
|
||||
<td>
|
||||
{{trade.total_amount|currency:trade.currency}}
|
||||
<a ng-if="trade.refund_fee" class="text-danger" role="button"
|
||||
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
|
||||
</td>
|
||||
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
|
||||
<td><span ng-if="trade.surcharge_rate">{{(trade.surcharge_rate * 100 - trade.rate_value)| number : 2}}%</span></td>
|
||||
<td>{{(trade.total_surcharge-trade.incremental_surcharge) | number : 2 | currency:trade.currency}}</td>
|
||||
<td><span ng-if="trade.rate_value">{{trade.source}}:{{(trade.rate_value) | number : 2}}%</span></td>
|
||||
<td><span ng-if="trade.incremental_surcharge">{{trade.source}}:{{trade.incremental_surcharge | currency:trade.currency}}</span></td>
|
||||
<td ng-bind="trade.status|tradeStatus"></td>
|
||||
<td ng-bind="trade.create_time"></td>
|
||||
<td>
|
||||
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
|
||||
<i class="fa fa-list-alt"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="box-body" ng-if="tradeLogs.length">
|
||||
<uib-pagination class="pagination"
|
||||
total-items="pagination.totalCount"
|
||||
boundary-links="true"
|
||||
ng-model="pagination.page"
|
||||
items-per-page="pagination.limit"
|
||||
max-size="10"
|
||||
ng-change="loadTradeLogs()"
|
||||
previous-text="‹"
|
||||
next-text="›"
|
||||
first-text="«"
|
||||
last-text="»"></uib-pagination>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
|
||||
Pages:{{pagination.totalPages}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,387 @@
|
||||
<style>
|
||||
.cursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.div-display {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.i-rotate_90 {
|
||||
animation: rotate_90 1s forwards;
|
||||
-webkit-animation: rotate_90 1s forwards; /* Safari and Chrome */
|
||||
}
|
||||
|
||||
@keyframes rotate_90 {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotate_90 /* Safari and Chrome */
|
||||
{
|
||||
from {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
.popover-color{
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
color: black;
|
||||
}
|
||||
.popover-content button{
|
||||
display: inline-block;
|
||||
}
|
||||
.position_re{
|
||||
position: relative;
|
||||
}
|
||||
.position_re .position_ab{
|
||||
position: absolute;
|
||||
top: 90%;
|
||||
left: 90%;
|
||||
}
|
||||
|
||||
.box-icon_small{
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
font-size: 30px;
|
||||
line-height: 70px
|
||||
}
|
||||
.info_box_bottom{
|
||||
min-height:70px;
|
||||
margin-bottom:0px
|
||||
}
|
||||
.box-content_left{
|
||||
margin-left:70px
|
||||
}
|
||||
.box-number_font{
|
||||
font-size:14px;
|
||||
}
|
||||
.line_height{
|
||||
line-height: 14px
|
||||
}
|
||||
.line_height_{
|
||||
line-height: 22px;
|
||||
}
|
||||
</style>
|
||||
<section class="content-header">
|
||||
<h1>Incremental Orders</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-comments-o"></i> Payment
|
||||
</li>
|
||||
<li class="active">Incremental Orders</li>
|
||||
</ol>
|
||||
</section>
|
||||
<div class="content">
|
||||
<div class="callout callout-info" ng-repeat="order in alerts">
|
||||
<h4><span style="font-size: 22px">{{order.display_amount|currency:order.currency+' '}}</span> Paid
|
||||
Success!</h4>
|
||||
<p>Pay Time:{{order.pay_time_local}}</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="box-solid">
|
||||
<div class="box box-warning">
|
||||
<div class="box-header">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="form-horizontal">
|
||||
<!--<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Source</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.source=='ALL'}"
|
||||
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.source=='system'}"
|
||||
ng-click="params.source='system';loadTradeLogs(1)">System</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.source=='yangmatou'}"
|
||||
ng-click="params.source='yangmatou';loadTradeLogs(1)">YangMaTou2</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Status</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
|
||||
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
|
||||
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
|
||||
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All Refund</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
|
||||
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial Refund</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
|
||||
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full Refund</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Channel</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
|
||||
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
|
||||
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
|
||||
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
|
||||
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
|
||||
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
|
||||
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
|
||||
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
|
||||
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
|
||||
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
|
||||
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
|
||||
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">Date Range</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<div class="form-control-static form-inline">
|
||||
<div style="display: inline-block">
|
||||
<input class="form-control" id="date-from-input"
|
||||
ng-model="params.datefrom"
|
||||
uib-datepicker-popup size="10" placeholder="From"
|
||||
is-open="dateBegin.open" ng-click="dateBegin.open=true"
|
||||
datepicker-options="{maxDate:params.dateto||today}">
|
||||
</div>
|
||||
~
|
||||
<div style="display: inline-block">
|
||||
<input class="form-control" id="date-to-input"
|
||||
ng-model="params.dateto"
|
||||
uib-datepicker-popup size="10" placeholder="To"
|
||||
is-open="dateTo.open" ng-click="dateTo.open=true"
|
||||
datepicker-options="{minDate:params.datefrom,maxDate:today}">
|
||||
</div>
|
||||
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseToday()">Today</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseYesterday()">Yesterday</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="chooseLast7Days()">Last 7 Days</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="thisMonth()">This Month</a>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a role="button" class="btn btn-default btn-sm"
|
||||
ng-click="lastMonth()">Last Month</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-group col-xs-12" ng-if="currentUser.client.has_children">
|
||||
<label class="control-label col-xs-4 col-sm-2">Sub Partner</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a>
|
||||
<label ng-repeat="sub in clients">
|
||||
|
|
||||
<a role="button" ng-class="{'bg-primary':sub.client_id==chooseClientId}" ng-click="chooseClient(sub)">{{sub.short_name}}</a>
|
||||
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12" ng-if="level3Clients && showLevel3Clients">
|
||||
<label class="control-label col-xs-4 col-sm-2">Sub-Partner of sub-partners</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':isLevel3All}" ng-click="chooseLevel3Client('all')">All</a>
|
||||
<label ng-repeat="sub in level3Clients">
|
||||
|
|
||||
<a role="button" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}" ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
|
||||
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-success" type="button" ng-click="loadTradeLogs(1)">
|
||||
<i class="fa fa-search"></i> Search
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<div class="row">
|
||||
<div class="col-md-3 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Transaction Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.paid_fee|currency:'AUD '"></span>
|
||||
<span class="small">( {{analysis.order_count}} Orders )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="!analysis.cny_display_amount">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Input Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.display_amount|currency:'AUD '"></span>
|
||||
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount">
|
||||
<div class="info-box info_box_bottom" ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
|
||||
<span class="info-box-icon bg-aqua box-icon_small"><i class="ion ion-social-usd"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text" >Input Amount</span>
|
||||
<span class="info-box-number box-number_font" style="margin-bottom: -3px;" ng-class="{line_height_:!analysis.pre_display_amount}"
|
||||
ng-bind="analysis.display_amount|currency:'AUD '"></span>
|
||||
<span style="font-size: 10px;line-height: 10px" ng-if="analysis.pre_display_amount">
|
||||
( {{analysis.pre_display_amount | currency:'pre authorization '}} )
|
||||
</span>
|
||||
<span class="info-box-number box-number_font" style="margin-bottom: -3px;"
|
||||
ng-if="analysis.cny_display_amount"
|
||||
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
|
||||
<span style="font-size: 10px;line-height: 10px" ng-if="analysis.pre_cny_display_amount">
|
||||
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-red box-icon_small"><i class="ion ion-android-warning"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Refund Amount</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.refund_fee|currency:'AUD '"></span>
|
||||
<span class=small" ng-if="analysis.pre_refund_fee">
|
||||
({{analysis.pre_refund_fee|currency:'pre authorization '}})
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-6 col-xs-12">
|
||||
<div class="info-box info_box_bottom">
|
||||
<span class="info-box-icon bg-yellow box-icon_small"><i class="ion ion-ios-people"></i></span>
|
||||
<div class="info-box-content box-content_left">
|
||||
<span class="info-box-text">Incremental Surcharge</span>
|
||||
<span class="info-box-number box-number_font"
|
||||
ng-bind="analysis.incremental_surcharge|currency:'AUD '">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title" style="display: inherit">Orders</h3>
|
||||
</div>
|
||||
<div class="box-body table-responsive">
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Client Order ID</th>
|
||||
<th>Order ID</th>
|
||||
<th>Amount</th>
|
||||
<th>Input Amount</th>
|
||||
<th>System Rate</th>
|
||||
<th>System Profit</th>
|
||||
<th>Incremental Rate</th>
|
||||
<th>Incremental Profit</th>
|
||||
<th>Status</th>
|
||||
<th>Create Time</th>
|
||||
<th>Operation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
|
||||
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
|
||||
<td>
|
||||
<img src="/static/images/clearing-icon.png" uib-tooltip="clearing" ng-if="trade.clearing_status=='1'"/>
|
||||
<i class="fa fa-check-circle-o text-danger" uib-tooltip="Refund Audition Required" ng-if="trade.audition"></i>
|
||||
<img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay" ng-if="trade.source=='system'"/>
|
||||
<img src="/static/images/yangmatou_sign.png" uib-tooltip="YangMaTou" ng-if="trade.source=='yangmatou'"/>
|
||||
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/>
|
||||
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Wechat Pay" ng-if="trade.channel=='Wechat'"/>
|
||||
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" alt="BestPay" ng-if="trade.channel=='Bestpay'"/>
|
||||
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" alt="Alipay" ng-if="trade.channel=='Alipay'"/>
|
||||
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline" alt="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/>
|
||||
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/>
|
||||
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/>
|
||||
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+" ng-if="trade.channel=='Rpay'"/>
|
||||
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/>
|
||||
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/>
|
||||
{{trade.order_id}}
|
||||
</td>
|
||||
<td>
|
||||
{{trade.total_amount|currency:trade.currency+' '}}
|
||||
<a ng-if="trade.refund_fee" class="text-danger" role="button">(-{{trade.refund_fee}})</a>
|
||||
</td>
|
||||
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
|
||||
<td>{{(trade.surcharge_rate * 100 - trade.rate_value)| number : 2}}<span ng-if="trade.surcharge_rate">%</span></td>
|
||||
<td>{{(trade.total_surcharge-trade.incremental_surcharge) | number : 2 | currency:trade.currency}}</td>
|
||||
<td><span ng-if="trade.rate_value">{{trade.source}}:{{(trade.rate_value) | number : 2}}%</span></td>
|
||||
<td>{{trade.source}}:<span ng-if="trade.incremental_surcharge">{{trade.incremental_surcharge | currency:trade.currency}}</span><span ng-if="!trade.incremental_surcharge">{{0.00 | currency:trade.currency}}</span></td>
|
||||
<td ng-bind="trade.status|tradeStatus"></td>
|
||||
<td ng-bind="trade.create_time"></td>
|
||||
<td>
|
||||
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
|
||||
<i class="fa fa-list-alt"></i>
|
||||
</a>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="box-footer" ng-if="tradeLogs.length">
|
||||
<uib-pagination class="pagination"
|
||||
total-items="pagination.totalCount"
|
||||
boundary-links="true"
|
||||
ng-model="pagination.page"
|
||||
items-per-page="pagination.limit"
|
||||
max-size="10"
|
||||
ng-change="loadTradeLogs()"
|
||||
previous-text="‹"
|
||||
next-text="›"
|
||||
first-text="«"
|
||||
last-text="»"></uib-pagination>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in new issue