master
AlanFenng 4 years ago
commit ac23588913

@ -0,0 +1,68 @@
package au.com.royalpay.payment.manage.merchants.core.impls;
import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Optional;
/**
* @Description
* @title:
* @Date 2021/1/28 11:15
* @author: zhangTao
*/
@Component
public class AlipayChannelsConfig {
@Resource
private ClientConfigMapper clientConfigMapper;
public boolean isMandatoryAlipayOnline(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = getClientConfig(clientId);
if (optionalClientConfigInfo.isPresent()){
JSONObject clientConfigInfo = optionalClientConfigInfo.get();
if (clientConfigInfo.getBooleanValue("mandatory_alipay_online")){
return true;
}
}
return false;
}
public void modifyMandatoryAlipayOnline(int clientId ,boolean mandatoryAlipayOnlineStatus){
JSONObject mandatoryAlipayOnlineConfig = new JSONObject();
mandatoryAlipayOnlineConfig.put("client_id",clientId);
mandatoryAlipayOnlineConfig.put("mandatory_alipay_online",mandatoryAlipayOnlineStatus);
clientConfigMapper.update(mandatoryAlipayOnlineConfig);
}
public boolean isAlipayPlus(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = getClientConfig(clientId);
if (optionalClientConfigInfo.isPresent()){
JSONObject clientConfigInfo = optionalClientConfigInfo.get();
if (clientConfigInfo.getBooleanValue("alipay_payment_channels")){
return true;
}
}
return false;
}
public void modifyAlipayPaymentChannels(int clientId ,boolean alipayPaymentChannelsStatus){
JSONObject mandatoryAlipayOnlineConfig = new JSONObject();
mandatoryAlipayOnlineConfig.put("client_id",clientId);
mandatoryAlipayOnlineConfig.put("alipay_payment_channels",alipayPaymentChannelsStatus);
clientConfigMapper.update(mandatoryAlipayOnlineConfig);
}
private Optional<JSONObject> getClientConfig(int clientId) {
Optional<JSONObject> optionalClientConfigInfo = Optional.of(clientConfigMapper.find(clientId));
return optionalClientConfigInfo;
}
}

@ -2,7 +2,6 @@ package au.com.royalpay.payment.manage.merchants.core.impls;
import au.com.royalpay.payment.channels.alipay.config.AlipayConfig; import au.com.royalpay.payment.channels.alipay.config.AlipayConfig;
import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment; import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayCommonApi;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayOnlineApi; import au.com.royalpay.payment.channels.alipay.runtime.AlipayOnlineApi;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayRetailApi; import au.com.royalpay.payment.channels.alipay.runtime.AlipayRetailApi;
import au.com.royalpay.payment.channels.alipay.runtime.entity.AlipayMerchantEntity; import au.com.royalpay.payment.channels.alipay.runtime.entity.AlipayMerchantEntity;
@ -21,16 +20,15 @@ import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegist
import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegisterLegacy; import au.com.royalpay.payment.channels.wechat.runtime.impls.WxPayMerchantRegisterLegacy;
import au.com.royalpay.payment.channels.wechat.runtime.mappers.PaymentChannelMccGoodMapper; import au.com.royalpay.payment.channels.wechat.runtime.mappers.PaymentChannelMccGoodMapper;
import au.com.royalpay.payment.channels.wechat.runtime.mappers.WxMerchantApplyMapper; import au.com.royalpay.payment.channels.wechat.runtime.mappers.WxMerchantApplyMapper;
import au.com.royalpay.payment.core.ChannelMerchantApplicationService;
import au.com.royalpay.payment.core.PaymentApi; import au.com.royalpay.payment.core.PaymentApi;
import au.com.royalpay.payment.core.PaymentChannelApi; import au.com.royalpay.payment.core.PaymentChannelApi;
import au.com.royalpay.payment.core.beans.ChannelMerchantInfo; import au.com.royalpay.payment.core.beans.ChannelMerchantInfo;
import au.com.royalpay.payment.core.beans.EmptyMerchantApplication; import au.com.royalpay.payment.core.beans.EmptyMerchantApplication;
import au.com.royalpay.payment.core.beans.MchChannelContract;
import au.com.royalpay.payment.core.beans.MerchantApplicationResult; import au.com.royalpay.payment.core.beans.MerchantApplicationResult;
import au.com.royalpay.payment.core.exceptions.EmailException; import au.com.royalpay.payment.core.exceptions.EmailException;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
import au.com.royalpay.payment.core.impls.MerchantChannelApplicationManager; import au.com.royalpay.payment.core.impls.MerchantChannelApplicationManager;
import au.com.royalpay.payment.core.impls.MerchantChannelPermissionManager;
import au.com.royalpay.payment.core.mappers.SysClientMapper; import au.com.royalpay.payment.core.mappers.SysClientMapper;
import au.com.royalpay.payment.core.utils.OrderExpiryRuleResolver; import au.com.royalpay.payment.core.utils.OrderExpiryRuleResolver;
import au.com.royalpay.payment.manage.analysis.mappers.TransactionAnalysisMapper; import au.com.royalpay.payment.manage.analysis.mappers.TransactionAnalysisMapper;
@ -99,6 +97,7 @@ import au.com.royalpay.payment.tools.lock.Locker;
import au.com.royalpay.payment.tools.mail.SendMail; import au.com.royalpay.payment.tools.mail.SendMail;
import au.com.royalpay.payment.tools.merchants.beans.QRCodeConfig; import au.com.royalpay.payment.tools.merchants.beans.QRCodeConfig;
import au.com.royalpay.payment.tools.merchants.beans.UpdateSurchargeDTO; import au.com.royalpay.payment.tools.merchants.beans.UpdateSurchargeDTO;
import au.com.royalpay.payment.tools.merchants.core.MerchantChannelPermissionResolver;
import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider; import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider;
import au.com.royalpay.payment.tools.merchants.qrboard.QRBoard; import au.com.royalpay.payment.tools.merchants.qrboard.QRBoard;
import au.com.royalpay.payment.tools.merchants.qrboard.QRBoardProvider; import au.com.royalpay.payment.tools.merchants.qrboard.QRBoardProvider;
@ -127,8 +126,6 @@ import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Font;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element; import org.dom4j.Element;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
@ -330,7 +327,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Resource @Resource
private SysClientUpayProfileMapper sysClientUpayProfileMapper; private SysClientUpayProfileMapper sysClientUpayProfileMapper;
@Resource @Resource
private PaymentApi paymentApi; private PaymentApi paymentApi;
@Resource
private MerchantChannelPermissionManager merchantChannelPermissionManager;
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMM yyyy"); DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMM yyyy");
@ -549,6 +549,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
if (wechatMcc != null) { if (wechatMcc != null) {
client.put("mc_code", wechatMcc.getIntValue("mc_code")); client.put("mc_code", wechatMcc.getIntValue("mc_code"));
} }
client.put("enable_alipayplus", false);
MerchantChannelPermissionResolver resolver = this.paymentApi.channelApi(PayChannel.ALIPAY_PLUS.getChannelCode()).getChannelPermissionResolver();
if(!Objects.isNull(resolver)) {
if (resolver.newOrderEnabled(client)) {
client.put("enable_alipayplus", true);
}
}
return client; return client;
} }
@ -1565,13 +1572,17 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Override @Override
public void switchChannelPermission(JSONObject manager, String clientMoniker, String channel, boolean allow) { public void switchChannelPermission(JSONObject manager, String clientMoniker, String channel, boolean allow) {
for (PaymentChannelApi channelApi : paymentApi.channels()) { for (PaymentChannelApi channelApi : paymentApi.channels()) {
if (channelApi.channel().equalsIgnoreCase(channel) || "CB_BankPay".equalsIgnoreCase(channel)) { if (channelApi.channel().equalsIgnoreCase(channel) ) {
JSONObject client = getClientInfoByMoniker(clientMoniker); JSONObject client = getClientInfoByMoniker(clientMoniker);
if (client == null) { if (client == null) {
throw new NotFoundException("Client Not Exists"); throw new NotFoundException("Client Not Exists");
} }
clientModifySupport.processClientConfigModify(new SwitchPermissionModify(manager, clientMoniker, "enable_" + channel.toLowerCase(), allow)); merchantChannelPermissionManager.switchMerchantChannelPermission(channelApi.getMetadata().payChannel(), client.getIntValue("client_id"), allow);
try {
clientModifySupport.processModify(new SwitchPermissionModify(manager, clientMoniker, "enable_" + channel.toLowerCase(), allow));
} catch (Exception e) {
logger.error("Failed to change channel switch:{}" ,channel);
}
logger.info("{}({}) switched client {} channel {} to {}", manager.getString("display_name"), manager.getString("manager_id"), clientMoniker, channel, allow); logger.info("{}({}) switched client {} channel {} to {}", manager.getString("display_name"), manager.getString("manager_id"), clientMoniker, channel, allow);
if (allow && (StringUtils.equalsAnyIgnoreCase("Wechat", channel) || StringUtils.equalsAnyIgnoreCase("Alipay", channel))) { if (allow && (StringUtils.equalsAnyIgnoreCase("Wechat", channel) || StringUtils.equalsAnyIgnoreCase("Alipay", channel))) {
int clientId = client.getIntValue("client_id"); int clientId = client.getIntValue("client_id");
@ -5748,10 +5759,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
WechatMerchantInfo info = Optional.ofNullable(merchantChannelApplicationManager.getRegister(WxPayMerchantRegister.class)) WechatMerchantInfo info = Optional.ofNullable(merchantChannelApplicationManager.getRegister(WxPayMerchantRegister.class))
.map(register -> register.findMerchant(client)) .map(register -> register.findMerchant(client))
.orElseThrow(() -> new ServerErrorException("No Register found for wechat")); .orElseThrow(() -> new ServerErrorException("No Register found for wechat"));
Element xml = info.getRawResponseXml(); Element elem = info.getRawResponseXml();
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("response_str", xml); object.put("response_str", info.getRawResponse());
object.put("apply_status", info.getRawResponse()); object.put("apply_status", elem.elementText("result_code"));
return object; return object;
} }

@ -0,0 +1,31 @@
package au.com.royalpay.payment.manage.merchants.web;
import au.com.royalpay.payment.manage.merchants.core.impls.AlipayChannelsConfig;
import org.springframework.web.bind.annotation.PathVariable;
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;
/**
* @Description
* @title:
* @Date 2021/2/1 9:42
* @author: zhangTao
*/
@RestController
@RequestMapping("/sys/partners")
public class AlipayConfigController {
@Resource
AlipayChannelsConfig alipayChannelsConfig;
@RequestMapping(method = RequestMethod.PUT,value = "/modifyAlipayPaymentChannels/{clientId}/{alipayPaymentChannelsStatus}")
public void modifyAlipayPaymentChannels(@PathVariable Integer clientId, @PathVariable Boolean alipayPaymentChannelsStatus) {
alipayChannelsConfig.modifyAlipayPaymentChannels(clientId,alipayPaymentChannelsStatus);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because it is too large Load Diff

@ -7,36 +7,37 @@
padding: 20px; padding: 20px;
border: 1px solid orange; border: 1px solid orange;
background-color: white; background-color: white;
z-index:1002; z-index: 1002;
overflow: auto; overflow: auto;
} }
.white_content::-webkit-scrollbar:vertical { .white_content::-webkit-scrollbar:vertical {
width: 11px; width: 11px;
} }
/*定义滚动条高宽及背景 /*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/ 高宽分别对应横竖滚动条的尺寸*/
.white_content::-webkit-scrollbar .white_content::-webkit-scrollbar {
{
-webkit-appearance: none; -webkit-appearance: none;
width:16px; width: 16px;
height:16px; height: 16px;
background-color:#F5F5F5; background-color: #F5F5F5;
} }
/*定义滚动条轨道 /*定义滚动条轨道
内阴影+圆角*/ 内阴影+圆角*/
.white_content::-webkit-scrollbar-track .white_content::-webkit-scrollbar-track {
{ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px;
border-radius:10px; background-color: #F5F5F5;
background-color:#F5F5F5;
} }
/*定义滑块 /*定义滑块
内阴影+圆角*/ 内阴影+圆角*/
.white_content::-webkit-scrollbar-thumb .white_content::-webkit-scrollbar-thumb {
{ border-radius: 10px;
border-radius:10px; -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3); background-color: #555;
background-color:#555;
} }
</style> </style>
<div class="row margin-bottom" ng-click="clickDisplayChoseDiv($event)"> <div class="row margin-bottom" ng-click="clickDisplayChoseDiv($event)">
@ -56,7 +57,7 @@
</label> </label>
<div class="col-sm-4 col-xs-8"> <div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword" ng-enter="loadTradeLogs(1)" <input class="form-control" placeholder="Keyword" ng-enter="loadTradeLogs(1)"
ng-model="params.searchText"> ng-model="params.searchText">
</div> </div>
</div> </div>
<div class="form-group col-xs-12"> <div class="form-group col-xs-12">
@ -64,15 +65,15 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> | ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}" <a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> | ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> |
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All Refund</a> | ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All Refund</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}" <a role="button" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial Refund</a> | ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial Refund</a> |
<a role="button" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}" <a role="button" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full Refund</a> | ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full Refund</a> |
</p> </p>
</div> </div>
</div> </div>
@ -81,53 +82,53 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}" <a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> | ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a> | ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> | ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> | ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> | ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> | ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> | ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party Gateway</a> | ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> | ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> | ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> | ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> | ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a> ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p> </p>
</div> </div>
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]"> ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label> <label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}" <a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> | ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}" ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a> ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}" ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a> ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}" ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a> ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}" ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a> ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p> </p>
</div> </div>
</div> </div>
@ -136,29 +137,31 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> | ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}" <a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> | ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> | ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> | ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> | ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}" <a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JDpay</a> | ng-click="params.channel='JD';loadTradeLogs(1)">JDpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}" <a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HFpay</a> | ng-click="params.channel='HF';loadTradeLogs(1)">HFpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> | ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> | ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> | ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> | ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a> ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
</p> </p>
</div> </div>
</div> </div>
@ -168,29 +171,24 @@
<div class="form-control-static form-inline"> <div class="form-control-static form-inline">
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-from-input" ng-model="params.datefrom" <input class="form-control" id="date-from-input" ng-model="params.datefrom"
uib-datepicker-popup size="10" placeholder="From" uib-datepicker-popup size="10" placeholder="From" is-open="dateBegin.open"
is-open="dateBegin.open" ng-click="dateBegin.open=true" ng-click="dateBegin.open=true" datepicker-options="{maxDate:params.dateto||today}">
datepicker-options="{maxDate:params.dateto||today}">
</div> </div>
~ ~
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-to-input" ng-model="params.dateto" <input class="form-control" id="date-to-input" ng-model="params.dateto" uib-datepicker-popup
uib-datepicker-popup size="10" placeholder="To" size="10" placeholder="To" is-open="dateTo.open" ng-click="dateTo.open=true"
is-open="dateTo.open" ng-click="dateTo.open=true" datepicker-options="{minDate:params.datefrom,maxDate:today}">
datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm" ng-click="chooseToday()">Today</a>
ng-click="chooseToday()">Today</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm" ng-click="chooseYesterday()">Yesterday</a>
ng-click="chooseYesterday()">Yesterday</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm" ng-click="chooseLast7Days()">Last 7
ng-click="chooseLast7Days()">Last 7
Days</a> Days</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
@ -213,25 +211,26 @@
<a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a> <a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a>
<label ng-repeat="sub in clients"> <label ng-repeat="sub in clients">
|&nbsp;<a role="button" ng-class="{'bg-primary':sub.client_id==chooseClientId}" |&nbsp;<a role="button" ng-class="{'bg-primary':sub.client_id==chooseClientId}"
ng-click="chooseClient(sub)">{{sub.short_name}}</a>&nbsp; ng-click="chooseClient(sub)">{{sub.short_name}}</a>&nbsp;
</label> </label>
</p> </p>
<p class="form-control-static" ng-if="clients.length>=20"> <p class="form-control-static" ng-if="clients.length>=20">
<a role="button" ng-class="{'bg-primary':isAll}" <a role="button" ng-class="{'bg-primary':isAll}" ng-click="chooseClient('all')">All</a>
ng-click="chooseClient('all')">All</a> <label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)"
<label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)" style="cursor: pointer;"> style="cursor: pointer;">
<input ng-model="choseSubClientNow" style="border:none;cursor: pointer;" readonly> <input ng-model="choseSubClientNow" style="border:none;cursor: pointer;" readonly>
</label> </label>
</p> </p>
<div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;" ng-click="choseDivStopPropagation($event)"> <div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;"
ng-click="choseDivStopPropagation($event)">
<div class="row"> <div class="row">
<div class="form-group col-xs-12"> <div class="form-group col-xs-12">
<div class="col-sm-8 col-xs-8"> <div class="col-sm-8 col-xs-8">
<input class="form-control" placeholder="Keyword" <input class="form-control" placeholder="Keyword" ng-model="subSearchText">
ng-model="subSearchText">
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<button class="btn btn-success" type="button" ng-click="searchSubClients(subSearchText,1)"> <button class="btn btn-success" type="button"
ng-click="searchSubClients(subSearchText,1)">
<i class="fa fa-search"></i> Search <i class="fa fa-search"></i> Search
</button> </button>
</div> </div>
@ -240,77 +239,75 @@
<div class="col-sm-6" style="padding: 0 2px"> <div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px"> <table class="table table-bordered table-striped table-hover" style="padding: 6px">
<thead> <thead>
<tr> <tr>
<th>Partner Code</th> <th>Partner Code</th>
<th>Partner Name</th> <th>Partner Name</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="subPartner in subClientTable1"> <tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer"> <td ng-click="showClient(subPartner); toShow = !toShow"
{{subPartner.client_moniker}} style="cursor:pointer">
</td> {{subPartner.client_moniker}}
<td ng-bind="subPartner.short_name"></td> </td>
<td> <td ng-bind="subPartner.short_name"></td>
<button role="button" class="btn btn-info" title="Add Search" <td>
<button role="button" class="btn btn-info" title="Add Search"
style="padding: 1px 6px;" style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)"> ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-sm-6" style="padding: 0 2px"> <div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px"> <table class="table table-bordered table-striped table-hover" style="padding: 6px">
<thead> <thead>
<tr> <tr>
<th>Partner Code</th> <th>Partner Code</th>
<th>Partner Name</th> <th>Partner Name</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="subPartner in subClientTable2"> <tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer"> <td ng-click="showClient(subPartner); toShow = !toShow"
{{subPartner.client_moniker}} style="cursor:pointer">
</td> {{subPartner.client_moniker}}
<td ng-bind="subPartner.short_name"></td> </td>
<td> <td ng-bind="subPartner.short_name"></td>
<button role="button" class="btn btn-info" title="Add Search" <td>
<button role="button" class="btn btn-info" title="Add Search"
style="padding: 1px 6px;" style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)"> ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div class="box-footer" ng-if="clients.length" style="float: right;"> <div class="box-footer" ng-if="clients.length" style="float: right;">
<uib-pagination class="pagination" <uib-pagination class="pagination" total-items="subClientPagination.totalCount"
total-items="subClientPagination.totalCount" boundary-links="true" ng-model="subClientPagination.page"
boundary-links="true" items-per-page="subClientPagination.limit" max-size="10"
ng-model="subClientPagination.page" ng-change="searchSubClients('',subClientPagination.page)" previous-text="&lsaquo;"
items-per-page="subClientPagination.limit" next-text="&rsaquo;" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
max-size="10"
ng-change="searchSubClients('',subClientPagination.page)"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
Total Records:{{subClientPagination.totalCount}};Total Pages:{{subClientPagination.totalPages}} Total Records:{{subClientPagination.totalCount}};Total
Pages:{{subClientPagination.totalPages}}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-danger" ng-click="checkSubClientChoseShow('')">Cancel</button> <button type="button" class="btn btn-danger"
ng-click="checkSubClientChoseShow('')">Cancel</button>
</div> </div>
</div> </div>
</div> </div>
@ -319,10 +316,12 @@
<label class="control-label col-xs-4 col-sm-2">Sub-Partner of sub-partners</label> <label class="control-label col-xs-4 col-sm-2">Sub-Partner of sub-partners</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isLevel3All}" ng-click="chooseLevel3Client('all')">All</a> <a role="button" ng-class="{'bg-primary':isLevel3All}"
ng-click="chooseLevel3Client('all')">All</a>
<label ng-repeat="sub in level3Clients"> <label ng-repeat="sub in level3Clients">
|&nbsp; |&nbsp;
<a role="button" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}" ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a> <a role="button" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}"
ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
&nbsp; &nbsp;
</label> </label>
</p> </p>
@ -337,84 +336,140 @@
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<h3 class="box-title" style="display: inherit">Orders <h3 class="box-title" style="display: inherit">Orders
<span class="small" ng-if="tradeLogs.length">(Found {{pagination.totalCount}} orders and {{analysis.order_count}} transactions worth of {{analysis.paid_fee|currency:'AUD'}})</span> <span class="small" ng-if="tradeLogs.length">(Found {{pagination.totalCount}} orders and
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop" aria-hidden="true" style="color: #fff2a5"></i></span> {{analysis.order_count}} transactions worth of {{analysis.paid_fee|currency:'AUD'}})</span>
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop" aria-hidden="true"
style="color: #fff2a5"></i></span>
</h3> </h3>
<div class="table-responsive col-sm-12"> <div class="table-responsive col-sm-12">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-hover table-striped">
<thead> <thead>
<tr> <tr>
<th>Client Order ID</th> <th>Client Order ID</th>
<th>Order ID</th> <th>Order ID</th>
<th>Amount</th> <th>Amount</th>
<th>Input Amount</th> <th>Input Amount</th>
<th>AUD Amount</th> <th>AUD Amount</th>
<th>Exchange Rate</th> <th>Exchange Rate</th>
<th>Status</th> <th>Status</th>
<th>Create Time</th> <th>Create Time</th>
<th>Gateway</th> <th>Gateway</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}"> <tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td> <td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td> <td>
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/> <img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/> ng-if="trade.channel=='rpaypmt_card'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/> <img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
<img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay" ng-if="trade.channel=='Wechat'"/> ng-if="trade.channel=='rpaypmt_dd'" />
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" ng-if="trade.channel=='Bestpay'"/> <img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" ng-if="trade.channel=='Alipay'"/> ng-if="trade.channel=='Znyoo'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/> <img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay"
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/> ng-if="trade.channel=='Wechat'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/> <img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay"
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+" ng-if="trade.channel=='Rpay'"/> ng-if="trade.channel=='Bestpay'" />
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/> <img src="/static/images/alipay_sign.png" uib-tooltip="Alipay"
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/> ng-if="trade.channel=='Alipay'" />
{{trade.order_id}} <img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
</td> ng-if="trade.channel=='AlipayOnline'" />
<td> <img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'" />
{{trade.total_amount|currency:trade.currency+' '}} <img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'" />
<a ng-if="trade.refund_fee" class="text-danger" role="button" <img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a> ng-if="trade.channel=='Rpay'" />
</td> <img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
<td ng-bind="trade.display_amount|currency:trade.currency"></td> ng-if="trade.channel=='Yeepay'" />
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td> <img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
<td> ng-if="trade.channel=='LakalaPay'" />
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')" ng-bind="trade.exchange_rate"></span> <img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay CN"
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')" > - </span> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
</td>
<td ng-bind="trade.status|tradeStatus"></td> <img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay SG"
<td ng-bind="trade.create_time"></td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
<td ng-bind="trade.gateway|tradeGateway"></td>
<td> <img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay MO"
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail"> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<i class="fa fa-list-alt"></i>
</a> <img src="/static/images/alipay-hk.png" style="height: 20px" uib-tooltip="Alipay HK/支付宝香港"
<a role="button" ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)" ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
class="text-bold text-danger"
ng-click="newRefund(trade.order_id)" title="Refund"> <img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay LU"
<i class="fa fa-undo"></i> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
</a>
</td> <img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay GB"
</tr> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
<img src="/static/images/alipay_sign.png" style="height: 20px" uib-tooltip="Alipay US"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
<img src="/static/images/paytm-logo.png" style="height: 20px" uib-tooltip="Patytm Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
<img src="/static/images/kakaopay.png" style="height: 20px" uib-tooltip="Kakao Pay"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<img src="/static/images/truemoney-logo.png" style="height: 20px" uib-tooltip="TrueMoney"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<img src="/static/images/ezlink-logo.png" style="height: 20px" uib-tooltip="EZLINK"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px" uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px" uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px" uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px" uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px" uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{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 ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
class="text-bold text-danger" ng-click="newRefund(trade.order_id)" title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<uib-pagination ng-if="tradeLogs.length" <uib-pagination ng-if="tradeLogs.length" class="pagination" total-items="pagination.totalCount"
class="pagination" boundary-links="true" ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
total-items="pagination.totalCount" ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;" first-text="&laquo;"
boundary-links="true" last-text="&raquo;"></uib-pagination>
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div> <div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
</div> </div>
</div> </div>

@ -218,21 +218,21 @@
<label class="col-xs-6 control-label">Alipay|支付宝</label> <label class="col-xs-6 control-label">Alipay|支付宝</label>
<div class="col-xs-6"> <div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_alipay" bs-switch <input type="checkbox" ng-model="paymentInfo.enable_alipay" bs-switch
switch-change="toggleChannel('alipay')"> ng-change="toggleChannel('alipay')">
</div> </div>
</div> </div>
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<label class="col-xs-6 control-label">WeChat|微信</label> <label class="col-xs-6 control-label">WeChat|微信</label>
<div class="col-xs-6"> <div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_wechat" bs-switch <input type="checkbox" ng-model="paymentInfo.enable_wechat" bs-switch
switch-change="toggleChannel('wechat')"> ng-change="toggleChannel('wechat')">
</div> </div>
</div> </div>
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<label class="col-xs-6 control-label">CB BankPay|快捷支付</label> <label class="col-xs-6 control-label">CB BankPay|快捷支付</label>
<div class="col-xs-6"> <div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_cb_bankpay" bs-switch <input type="checkbox" ng-model="paymentInfo.enable_cb_bankpay" bs-switch
switch-change="toggleChannel('cb_bankpay')"> ng-change="toggleChannel('cb_bankpay')">
</div> </div>
</div> </div>
@ -240,17 +240,23 @@
<label class="col-xs-6 control-label">Card Payment|银行卡支付</label> <label class="col-xs-6 control-label">Card Payment|银行卡支付</label>
<div class="col-xs-6"> <div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_card" bs-switch <input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_card" bs-switch
switch-change="toggleChannel('rpaypmt_card')"> ng-change="toggleChannel('rpaypmt_card')">
</div> </div>
</div> </div>
<div class="form-group col-sm-4"> <div class="form-group col-sm-4">
<label class="col-xs-6 control-label">Direct Debit|银行账户支付</label> <label class="col-xs-6 control-label">Direct Debit|银行账户支付</label>
<div class="col-xs-6"> <div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_dd" bs-switch <input type="checkbox" ng-model="paymentInfo.enable_rpaypmt_dd" bs-switch
switch-change="toggleChannel('rpaypmt_dd')"> ng-change="toggleChannel('rpaypmt_dd')">
</div>
</div>
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">Alipay+|支付宝</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.enable_alipayplus" bs-switch
ng-change="toggleChannel('alipayplus')">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -370,6 +376,14 @@
</p> </p>
</div> </div>
</div> </div>
<div class="form-group" ng-if="paymentInfo.enable_alipayplus">
<label class="col-sm-2 control-label">Alipay Channel</label>
<div class="col-sm-10">
<input type="checkbox" ng-model="paymentInfo.alipay_payment_channels" bs-switch
data-on-text="Alipay+" data-off-text="Alipay" data-off-color="primary"
ng-change="setAlipayChannel()">
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Gateway Credential</label> <label class="control-label col-sm-2">Gateway Credential</label>
<div class="col-sm-10"> <div class="col-sm-10">

@ -9,23 +9,28 @@
.i-rotate_90 { .i-rotate_90 {
animation: rotate_90 1s forwards; animation: rotate_90 1s forwards;
-webkit-animation: rotate_90 1s forwards; /* Safari and Chrome */ -webkit-animation: rotate_90 1s forwards;
/* Safari and Chrome */
} }
@keyframes rotate_90 { @keyframes rotate_90 {
from { from {
transform: rotate(0deg); transform: rotate(0deg);
} }
to { to {
transform: rotate(90deg); transform: rotate(90deg);
} }
} }
@-webkit-keyframes rotate_90 /* Safari and Chrome */ @-webkit-keyframes rotate_90
{
/* Safari and Chrome */
{
from { from {
-webkit-transform: rotate(0deg); -webkit-transform: rotate(0deg);
} }
to { to {
-webkit-transform: rotate(90deg); -webkit-transform: rotate(90deg);
} }
@ -78,6 +83,7 @@
.line_height_ { .line_height_ {
line-height: 22px; line-height: 22px;
} }
.white_content { .white_content {
display: none; display: none;
position: absolute; position: absolute;
@ -86,36 +92,37 @@
padding: 20px; padding: 20px;
border: 1px solid orange; border: 1px solid orange;
background-color: white; background-color: white;
z-index:1002; z-index: 1002;
overflow: auto; overflow: auto;
} }
.white_content::-webkit-scrollbar:vertical { .white_content::-webkit-scrollbar:vertical {
width: 11px; width: 11px;
} }
/*定义滚动条高宽及背景 /*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/ 高宽分别对应横竖滚动条的尺寸*/
.white_content::-webkit-scrollbar .white_content::-webkit-scrollbar {
{
-webkit-appearance: none; -webkit-appearance: none;
width:16px; width: 16px;
height:16px; height: 16px;
background-color:#F5F5F5; background-color: #F5F5F5;
} }
/*定义滚动条轨道 /*定义滚动条轨道
内阴影+圆角*/ 内阴影+圆角*/
.white_content::-webkit-scrollbar-track .white_content::-webkit-scrollbar-track {
{ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3); border-radius: 10px;
border-radius:10px; background-color: #F5F5F5;
background-color:#F5F5F5;
} }
/*定义滑块 /*定义滑块
内阴影+圆角*/ 内阴影+圆角*/
.white_content::-webkit-scrollbar-thumb .white_content::-webkit-scrollbar-thumb {
{ border-radius: 10px;
border-radius:10px; -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3); background-color: #555;
background-color:#555;
} }
</style> </style>
<section class="content-header"> <section class="content-header">
@ -154,8 +161,7 @@
</label> </label>
<div class="col-sm-4 col-xs-8"> <div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword" <input class="form-control" placeholder="Keyword"
ng-enter="loadTradeLogs(1)" ng-enter="loadTradeLogs(1)" ng-model="params.searchText">
ng-model="params.searchText">
</div> </div>
</div> </div>
<div class="form-group col-xs-12"> <div class="form-group col-xs-12">
@ -163,11 +169,11 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.source=='ALL'}" <a role="button" ng-class="{'bg-primary':params.source=='ALL'}"
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> | ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.source=='system'}" <a role="button" ng-class="{'bg-primary':params.source=='system'}"
ng-click="params.source='system';loadTradeLogs(1)">System</a> | ng-click="params.source='system';loadTradeLogs(1)">System</a> |
<a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}" <a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}"
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a> ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
</p> </p>
</div> </div>
</div> </div>
@ -176,20 +182,20 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> | ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}" <a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
| |
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
Refund</a> | Refund</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
Refund</a> | Refund</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
Refund</a> Refund</a>
</p> </p>
</div> </div>
@ -199,21 +205,27 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> | ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}" <a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> | ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> | ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a>
| |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> | ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}" <a role="button"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> | ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card
Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a> ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct
Debit</a>
</p> </p>
</div> </div>
</div> </div>
@ -222,55 +234,55 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}" <a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> | ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail ng-click="params.gateway=[0,1];initGatewayChild()">Retail
In-Store</a> | In-Store</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> | ng-click="params.gateway=[5,6];initGatewayChild()">Retail API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> | ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> | ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> | ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> | ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
Gateway</a> | Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> | ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> | ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> | ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> | ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a> ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p> </p>
</div> </div>
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]"> ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label> <label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}" <a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> | ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}" ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a> ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}" ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a> ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}" ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a> ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}" ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a> ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p> </p>
</div> </div>
</div> </div>
@ -280,39 +292,39 @@
<div class="form-control-static form-inline"> <div class="form-control-static form-inline">
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-from-input" <input class="form-control" id="date-from-input"
ng-model="params.datefrom" ng-model="params.datefrom" uib-datepicker-popup size="10"
uib-datepicker-popup size="10" placeholder="From" placeholder="From" is-open="dateBegin.open"
is-open="dateBegin.open" ng-click="dateBegin.open=true" ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}"> datepicker-options="{maxDate:params.dateto||today}">
</div> </div>
~ ~
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-to-input" <input class="form-control" id="date-to-input"
ng-model="params.dateto" ng-model="params.dateto" uib-datepicker-popup size="10"
uib-datepicker-popup size="10" placeholder="To" placeholder="To" is-open="dateTo.open"
is-open="dateTo.open" ng-click="dateTo.open=true" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}"> datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseToday()">Today</a> ng-click="chooseToday()">Today</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseYesterday()">Yesterday</a> ng-click="chooseYesterday()">Yesterday</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseLast7Days()">Last 7 Days</a> ng-click="chooseLast7Days()">Last 7 Days</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="thisMonth()">This Month</a> ng-click="thisMonth()">This Month</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="lastMonth()">Last Month</a> ng-click="lastMonth()">Last Month</a>
</div> </div>
</div> </div>
@ -320,148 +332,160 @@
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="currentUser.client.has_children && !currentUser.client.hide_sub_mch"> ng-if="currentUser.client.has_children && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Sub Partner</label> <label class="control-label col-xs-4 col-sm-2">Sub Partner</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static" ng-if="clients.length<20"> <p class="form-control-static" ng-if="clients.length<20">
<a role="button" ng-class="{'bg-primary':isAll}" <a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseClient('all')">All</a> ng-click="chooseClient('all')">All</a>
<label ng-repeat="sub in clients"> <label ng-repeat="sub in clients">
|&nbsp; |&nbsp;
<a role="button" <a role="button"
ng-class="{'bg-primary':sub.client_id==chooseClientId}" ng-class="{'bg-primary':sub.client_id==chooseClientId}"
ng-click="chooseClient(sub)">{{sub.short_name}}</a> ng-click="chooseClient(sub)">{{sub.short_name}}</a>
&nbsp; &nbsp;
</label> </label>
</p> </p>
<p class="form-control-static" ng-if="clients.length>=20"> <p class="form-control-static" ng-if="clients.length>=20">
<a role="button" ng-class="{'bg-primary':isAll}" <a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseClient('all')">All</a> ng-click="chooseClient('all')">All</a>
<label ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)" style="cursor: pointer;"> <label
<input ng-model="choseSubClientNow" style="border:none;cursor: pointer;" readonly> ng-click="checkSubClientChoseShow('');choseDivStopPropagation($event)"
style="cursor: pointer;">
<input ng-model="choseSubClientNow"
style="border:none;cursor: pointer;" readonly>
</label> </label>
</p> </p>
<div id="light" class="white_content" ng-if="more20ChoseSubClient" style="display: block;" ng-click="choseDivStopPropagation($event)"> <div id="light" class="white_content" ng-if="more20ChoseSubClient"
style="display: block;" ng-click="choseDivStopPropagation($event)">
<div class="row"> <div class="row">
<div class="form-group col-xs-12"> <div class="form-group col-xs-12">
<div class="col-sm-8 col-xs-8"> <div class="col-sm-8 col-xs-8">
<input class="form-control" placeholder="Keyword" <input class="form-control" placeholder="Keyword"
ng-model="subSearchText"> ng-model="subSearchText">
</div> </div>
<div class="col-sm-3"> <div class="col-sm-3">
<button class="btn btn-success" type="button" ng-click="searchSubClients(subSearchText,1)"> <button class="btn btn-success" type="button"
ng-click="searchSubClients(subSearchText,1)">
<i class="fa fa-search"></i> Search <i class="fa fa-search"></i> Search
</button> </button>
</div> </div>
</div> </div>
<div class="col-sm-12 table-responsive"> <div class="col-sm-12 table-responsive">
<div class="col-sm-6" style="padding: 0 2px"> <div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px"> <table
class="table table-bordered table-striped table-hover"
style="padding: 6px">
<thead> <thead>
<tr> <tr>
<th>Partner Code</th> <th>Partner Code</th>
<th>Partner Name</th> <th>Partner Name</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="subPartner in subClientTable1"> <tr ng-repeat="subPartner in subClientTable1">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer"> <td ng-click="showClient(subPartner); toShow = !toShow"
{{subPartner.client_moniker}} style="cursor:pointer">
</td> {{subPartner.client_moniker}}
<td ng-bind="subPartner.short_name"></td> </td>
<td> <td ng-bind="subPartner.short_name"></td>
<button role="button" class="btn btn-info" title="Add Search" <td>
<button role="button" class="btn btn-info"
title="Add Search"
style="padding: 1px 6px;" style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)"> ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-sm-6" style="padding: 0 2px"> <div class="col-sm-6" style="padding: 0 2px">
<table class="table table-bordered table-striped table-hover" style="padding: 6px"> <table
class="table table-bordered table-striped table-hover"
style="padding: 6px">
<thead> <thead>
<tr> <tr>
<th>Partner Code</th> <th>Partner Code</th>
<th>Partner Name</th> <th>Partner Name</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="subPartner in subClientTable2"> <tr ng-repeat="subPartner in subClientTable2">
<td ng-click="showClient(subPartner); toShow = !toShow" style="cursor:pointer"> <td ng-click="showClient(subPartner); toShow = !toShow"
{{subPartner.client_moniker}} style="cursor:pointer">
</td> {{subPartner.client_moniker}}
<td ng-bind="subPartner.short_name"></td> </td>
<td> <td ng-bind="subPartner.short_name"></td>
<button role="button" class="btn btn-info" title="Add Search" <td>
<button role="button" class="btn btn-info"
title="Add Search"
style="padding: 1px 6px;" style="padding: 1px 6px;"
ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)"> ng-click="chooseClient(subPartner);checkSubClientChoseShow(subPartner)">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<div class="box-footer" ng-if="clients.length" style="float: right;"> <div class="box-footer" ng-if="clients.length"
style="float: right;">
<uib-pagination class="pagination" <uib-pagination class="pagination"
total-items="subClientPagination.totalCount" total-items="subClientPagination.totalCount"
boundary-links="true" boundary-links="true" ng-model="subClientPagination.page"
ng-model="subClientPagination.page" items-per-page="subClientPagination.limit" max-size="10"
items-per-page="subClientPagination.limit" ng-change="searchSubClients('',subClientPagination.page)"
max-size="10" previous-text="&lsaquo;" next-text="&rsaquo;"
ng-change="searchSubClients('',subClientPagination.page)" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
Total Records:{{subClientPagination.totalCount}};Total Pages:{{subClientPagination.totalPages}} Total Records:{{subClientPagination.totalCount}};Total
Pages:{{subClientPagination.totalPages}}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-danger" ng-click="checkSubClientChoseShow('')">Cancel</button> <button type="button" class="btn btn-danger"
ng-click="checkSubClientChoseShow('')">Cancel</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="level3Clients && showLevel3Clients && !currentUser.client.hide_sub_mch"> ng-if="level3Clients && showLevel3Clients && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Sub-Partner of <label class="control-label col-xs-4 col-sm-2">Sub-Partner of
sub-partners</label> sub-partners</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isLevel3All}" <a role="button" ng-class="{'bg-primary':isLevel3All}"
ng-click="chooseLevel3Client('all')">All</a> ng-click="chooseLevel3Client('all')">All</a>
<label ng-repeat="sub in level3Clients"> <label ng-repeat="sub in level3Clients">
|&nbsp; |&nbsp;
<a role="button" <a role="button"
ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}" ng-class="{'bg-primary':sub.client_id==chooseLevel3ClientId}"
ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a> ng-click="chooseLevel3Client(sub)">{{sub.short_name}}</a>
&nbsp; &nbsp;
</label> </label>
</p> </p>
</div> </div>
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="deviceIds.length && !currentUser.client.hide_sub_mch"> ng-if="deviceIds.length && !currentUser.client.hide_sub_mch">
<label class="control-label col-xs-4 col-sm-2">Third Device</label> <label class="control-label col-xs-4 col-sm-2">Third Device</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':order_device_isAll}" <a role="button" ng-class="{'bg-primary':order_device_isAll}"
ng-click="chooseDeviceIds('all')">All</a> ng-click="chooseDeviceIds('all')">All</a>
<label ng-repeat="dev in deviceIds"> <label ng-repeat="dev in deviceIds">
|&nbsp;<a role="button" |&nbsp;<a role="button"
ng-class="{'bg-primary':dev.dev_id==choose_order_device_id}" ng-class="{'bg-primary':dev.dev_id==choose_order_device_id}"
ng-click="chooseDeviceIds(dev.dev_id)">{{dev.dev_id}}</a>&nbsp; ng-click="chooseDeviceIds(dev.dev_id)">{{dev.dev_id}}</a>&nbsp;
</label> </label>
</p> </p>
</div> </div>
@ -471,11 +495,11 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':device_isAll}" <a role="button" ng-class="{'bg-primary':device_isAll}"
ng-click="chooseDevices('all')">All</a> ng-click="chooseDevices('all')">All</a>
<label ng-repeat="device in devices"> <label ng-repeat="device in devices">
|&nbsp;<a role="button" |&nbsp;<a role="button"
ng-class="{'bg-primary':device.dev_id==chooseDevice_id}" ng-class="{'bg-primary':device.dev_id==chooseDevice_id}"
ng-click="chooseDevices(device.dev_id)">{{device.remark}}</a>&nbsp; ng-click="chooseDevices(device.dev_id)">{{device.remark}}</a>&nbsp;
</label> </label>
</p> </p>
</div> </div>
@ -498,7 +522,7 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Transaction Amount</span> <span class="info-box-text">Transaction Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.paid_fee|currency:'AUD '"></span> ng-bind="analysis.paid_fee|currency:'AUD '"></span>
<span class="small">( {{analysis.order_count}} Orders )</span> <span class="small">( {{analysis.order_count}} Orders )</span>
</div> </div>
</div> </div>
@ -511,30 +535,31 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span> <span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.display_amount|currency:'AUD '"></span> ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span> <span class="small"> ( {{analysis.pre_display_amount | currency:'pre
authorization '}} )</span>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-3 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount"> <div class="col-md-3 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount">
<div class="info-box info_box_bottom" <div class="info-box info_box_bottom"
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}"> ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
<span class="info-box-icon bg-aqua box-icon_small"><i <span class="info-box-icon bg-aqua box-icon_small"><i
class="ion ion-social-usd"></i></span> class="ion ion-social-usd"></i></span>
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span> <span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;" <span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-class="{line_height_:!analysis.pre_display_amount}" ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span> ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span style="font-size: 10px;line-height: 10px" <span style="font-size: 10px;line-height: 10px"
ng-if="analysis.pre_display_amount"> ng-if="analysis.pre_display_amount">
( {{analysis.pre_display_amount | currency:'pre authorization '}} ) ( {{analysis.pre_display_amount | currency:'pre authorization '}} )
</span> </span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;" <span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-if="analysis.cny_display_amount" ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span> ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
<span style="font-size: 10px;line-height: 10px" <span style="font-size: 10px;line-height: 10px"
ng-if="analysis.pre_cny_display_amount"> ng-if="analysis.pre_cny_display_amount">
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} ) ( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
</span> </span>
</div> </div>
@ -547,9 +572,9 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Refund Amount</span> <span class="info-box-text">Refund Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.refund_fee|currency:'AUD '"></span> ng-bind="analysis.refund_fee|currency:'AUD '"></span>
<span class=small" ng-if="analysis.pre_refund_fee"> <span class=small" ng-if="analysis.pre_refund_fee">
({{analysis.pre_refund_fee|currency:'pre authorization '}}) ({{analysis.pre_refund_fee|currency:'pre authorization '}})
</span> </span>
</div> </div>
</div> </div>
@ -561,7 +586,7 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">CUSTOMERS</span> <span class="info-box-text">CUSTOMERS</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.customers"></span> ng-bind="analysis.customers"></span>
</div> </div>
</div> </div>
</div> </div>
@ -572,132 +597,194 @@
<div class="box-header"> <div class="box-header">
<h3 class="box-title" style="display: inherit">Orders <h3 class="box-title" style="display: inherit">Orders
<span style="float: right;font-size: 14px;"> <span style="float: right;font-size: 14px;">
<span>Pre Authorization:<i class="fa fa-stop" aria-hidden="true" <span>Pre Authorization:<i class="fa fa-stop" aria-hidden="true"
style="color: #fff2a5"></i></span> style="color: #fff2a5"></i></span>
<span ng-if="currentUser.role == 2 || currentUser.role == 1"> <span ng-if="currentUser.role == 2 || currentUser.role == 1">
<button class="btn btn-warning btn-sm" type="button" <button class="btn btn-warning btn-sm" type="button"
ng-click="fullReleasePreAuth()">Release All Pre-Auth</button> ng-click="fullReleasePreAuth()">Release All Pre-Auth</button>
</span> </span>
</span> </span>
</h3> </h3>
</div> </div>
<div class="box-body table-responsive"> <div class="box-body table-responsive">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-hover table-striped">
<thead> <thead>
<tr> <tr>
<th>Client Moniker</th> <th>Client Moniker</th>
<th>Short Name</th> <th>Short Name</th>
<th>Client Order ID</th> <th>Client Order ID</th>
<th>Order ID</th> <th>Order ID</th>
<th>Amount</th> <th>Amount</th>
<th>Input Amount</th> <th>Input Amount</th>
<th>AUD Amount</th> <th>AUD Amount</th>
<th style="min-width: 90px">Settle Amount</th> <th style="min-width: 90px">Settle Amount</th>
<th>Exchange Rate</th> <th>Exchange Rate</th>
<th>Status</th> <th>Status</th>
<th>Create Time</th> <th>Create Time</th>
<th>Gateway</th> <th>Gateway</th>
<th>Order Detail</th> <th>Order Detail</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}"> <tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td ng-bind="trade.client_moniker"></td> <td ng-bind="trade.client_moniker"></td>
<td ng-bind="trade.short_name"></td> <td ng-bind="trade.short_name"></td>
<td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td> <td ng-bind="trade.client_order_id||'NOT PROVIDED'"></td>
<td> <td>
<img src="/static/images/clearing-icon.png" uib-tooltip="clearing" <img src="/static/images/clearing-icon.png" uib-tooltip="clearing"
ng-if="trade.clearing_status=='1'"/> ng-if="trade.clearing_status=='1'" />
<i class="fa fa-check-circle-o text-danger" uib-tooltip="Refund Audition Required" <i class="fa fa-check-circle-o text-danger"
ng-if="trade.audition"></i> uib-tooltip="Refund Audition Required" ng-if="trade.audition"></i>
<img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay" <img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay"
ng-if="trade.source=='system'"/> ng-if="trade.source=='system'" />
<img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城" <img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城"
ng-if="trade.source=='RP跨境商城'"/> ng-if="trade.source=='RP跨境商城'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo" <img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
ng-if="trade.channel=='Znyoo'"/> ng-if="trade.channel=='Znyoo'" />
<img src="/static/images/wechatpay_sign.png" uib-tooltip="Wechat Pay" <img src="/static/images/wechatpay_sign.png" uib-tooltip="Wechat Pay"
ng-if="trade.channel=='Wechat'"/> ng-if="trade.channel=='Wechat'" />
<img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" alt="BestPay" <img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay" alt="BestPay"
ng-if="trade.channel=='Bestpay'"/> ng-if="trade.channel=='Bestpay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" alt="Alipay" <img src="/static/images/alipay_sign.png" uib-tooltip="Alipay" alt="Alipay"
ng-if="trade.channel=='Alipay'"/> ng-if="trade.channel=='Alipay'" />
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline" <img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
alt="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/> alt="AlipayOnline" ng-if="trade.channel=='AlipayOnline'" />
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" <img src="/static/images/jd_sign.png" uib-tooltip="JD Pay"
ng-if="trade.channel=='jd'"/> ng-if="trade.channel=='jd'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" <img src="/static/images/hf_sign.png" uib-tooltip="HF Pay"
ng-if="trade.channel=='hf'"/> ng-if="trade.channel=='hf'" />
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+" <img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"
ng-if="trade.channel=='Rpay'"/> ng-if="trade.channel=='Rpay'" />
<img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay" <img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
ng-if="trade.channel=='Yeepay'"/> ng-if="trade.channel=='Yeepay'" />
<img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay" <img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
ng-if="trade.channel=='LakalaPay'"/> ng-if="trade.channel=='LakalaPay'" />
<img src="/static/images/card_payment_sign.png" <img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/> ng-if="trade.channel=='rpaypmt_card'" />
<img src="/static/images/direct_debit_sign.png" <img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/> ng-if="trade.channel=='rpaypmt_dd'" />
{{trade.order_id}}<span <img src="/static/images/alipay_sign.png" style="height: 20px"
ng-if="trade.source!='system' && trade.source!=null && trade.incremental_surcharge != null"><i uib-tooltip="Alipay CN"
class="fa fa-question-circle-o" uib-tooltip-html="trade.htmlTooltip"></i></span> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
</td>
<td> <img src="/static/images/alipay_sign.png" style="height: 20px"
{{trade.total_amount|currency:trade.currency+' '}} uib-tooltip="Alipay SG"
<a ng-if="trade.refund_fee" class="text-danger" role="button" ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
ng-click="showPRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<td ng-bind="trade.display_amount|currency:trade.currency"></td> uib-tooltip="Alipay MO"
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<td ng-bind="trade.settle_amount|currency:'AUD '"></td>
<td> <img src="/static/images/alipay-hk.png" style="height: 20px"
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')" uib-tooltip="Alipay HK/支付宝香港"
ng-bind="trade.exchange_rate"></span> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<td ng-bind="trade.status|tradeStatus"></td> uib-tooltip="Alipay LU"
<td ng-bind="trade.create_time"></td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
<td ng-bind="trade.gateway|tradeGateway"></td>
<td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<span ng-bind="(trade.order_detail||'-')|limitToWithEllipsis" uib-tooltip="Alipay GB"
uib-tooltip="{{trade.order_detail}}" ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
uib-tooltip-enable="{{trade.order_detail}}"></span>
</td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<td> uib-tooltip="Alipay US"
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail"> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
<i class="fa fa-list-alt"></i>
</a> <img src="/static/images/paytm-logo.png" style="height: 20px"
<a role="button" uib-tooltip="Patytm Wallet"
ng-if="trade.clearing_status==2 && trade.client_id==currentUser.client_id" ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
class="text-bold text-primary"
ng-click="releasePreAuth(trade.order_id)" title="Release Pre-Authorization"> <img src="/static/images/kakaopay.png" style="height: 20px"
<i class="fa fa-unlock-alt"></i> uib-tooltip="Kakao Pay"
</a> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && currentUser.client.enable_refund" <img src="/static/images/truemoney-logo.png" style="height: 20px"
class="text-bold text-danger" ng-click="newPRefund(trade.order_id)" uib-tooltip="TrueMoney"
title="Refund"> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<i class="fa fa-undo"></i>
</a> <img src="/static/images/ezlink-logo.png" style="height: 20px"
</td> uib-tooltip="EZLINK"
</tr> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px"
uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px"
uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px"
uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px"
uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px"
uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{trade.order_id}}<span
ng-if="trade.source!='system' && trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o"
uib-tooltip-html="trade.htmlTooltip"></i></span>
</td>
<td>
{{trade.total_amount|currency:trade.currency+' '}}
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showPRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a>
</td>
<td ng-bind="trade.display_amount|currency:trade.currency"></td>
<td ng-bind="trade.clearing_amount|currency:'AUD '"></td>
<td ng-bind="trade.settle_amount|currency:'AUD '"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<span ng-bind="(trade.order_detail||'-')|limitToWithEllipsis"
uib-tooltip="{{trade.order_detail}}"
uib-tooltip-enable="{{trade.order_detail}}"></span>
</td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)"
title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.clearing_status==2 && trade.client_id==currentUser.client_id"
class="text-bold text-primary" ng-click="releasePreAuth(trade.order_id)"
title="Release Pre-Authorization">
<i class="fa fa-unlock-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && currentUser.client.enable_refund"
class="text-bold text-danger" ng-click="newPRefund(trade.order_id)"
title="Refund">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="box-footer" ng-if="tradeLogs.length"> <div class="box-footer" ng-if="tradeLogs.length">
<uib-pagination class="pagination" <uib-pagination class="pagination" total-items="pagination.totalCount" boundary-links="true"
total-items="pagination.totalCount" ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
boundary-links="true" ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;"
ng-model="pagination.page" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row"> <div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total <div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
Pages:{{pagination.totalPages}} Pages:{{pagination.totalPages}}

@ -95,24 +95,23 @@
</label> </label>
<div class="col-sm-4 col-xs-8"> <div class="col-sm-4 col-xs-8">
<input class="form-control" placeholder="Keyword" <input class="form-control" placeholder="Keyword"
ng-enter="loadTradeLogs(1)" ng-enter="loadTradeLogs(1)" ng-model="params.searchText">
ng-model="params.searchText">
</div> </div>
<div class="col-sm-6 col-xs-8"> <div class="col-sm-6 col-xs-8">
<div ng-if="orgs" class="col-sm-6"> <div ng-if="orgs" class="col-sm-6">
<select id="org-clild" class="form-control" ng-model="params.org_id" <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-options="org.org_id as org.name group by org.type for org in orgs"
ng-change="params.org_id2 = '';loadOrgs();loadTradeLogs(1)"> ng-change="params.org_id2 = '';loadOrgs();loadTradeLogs(1)">
<option value="">ALL Organizations</option> <option value="">ALL Organizations</option>
</select> </select>
</div> </div>
<div ng-if="((orgs_child.length > 1) && ('1000011'|withRole))&&params.org_id || ((orgs_child.length > 0) && ('1000000000000'|withRole))" <div ng-if="((orgs_child.length > 1) && ('1000011'|withRole))&&params.org_id || ((orgs_child.length > 0) && ('1000000000000'|withRole))"
class="col-sm-6"> class="col-sm-6">
<select id="org-select" class="form-control" ng-model="params.org_id2" <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-options="org.org_id as org.name group by org.org_type for org in orgs_child"
ng-change="loadTradeLogs(1)"> ng-change="loadTradeLogs(1)">
<option value="">{{org2}}</option> <option value="">{{org2}}</option>
</select> </select>
</div> </div>
@ -147,11 +146,11 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.source=='ALL'}" <a role="button" ng-class="{'bg-primary':params.source=='ALL'}"
ng-click="params.source='ALL';loadTradeLogs(1)">All</a> | ng-click="params.source='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.source=='system'}" <a role="button" ng-class="{'bg-primary':params.source=='system'}"
ng-click="params.source='system';loadTradeLogs(1)">System</a> | ng-click="params.source='system';loadTradeLogs(1)">System</a> |
<a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}" <a role="button" ng-class="{'bg-primary':params.source=='RP跨境商城'}"
ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a> ng-click="params.source='RP跨境商城';loadTradeLogs(1)">RP跨境商城</a>
</p> </p>
</div> </div>
</div> </div>
@ -160,20 +159,20 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.status=='ALL'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL'}"
ng-click="params.status='ALL';loadTradeLogs(1)">All</a> | ng-click="params.status='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.status=='PAID'}" <a role="button" ng-class="{'bg-primary':params.status=='PAID'}"
ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a> ng-click="params.status='PAID';loadTradeLogs(1)">Payment Success</a>
| |
<a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}" <a role="button" ng-class="{'bg-primary':params.status=='ALL_REFUNDED'}"
ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All ng-click="params.status='ALL_REFUNDED';loadTradeLogs(1)">All
Refund</a> | Refund</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}" ng-class="{'bg-primary':params.status=='PARTIAL_REFUNDED'}"
ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial ng-click="params.status='PARTIAL_REFUNDED';loadTradeLogs(1)">Partial
Refund</a> | Refund</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}" ng-class="{'bg-primary':params.status=='FULL_REFUNDED'}"
ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full ng-click="params.status='FULL_REFUNDED';loadTradeLogs(1)">Full
Refund</a> Refund</a>
</p> </p>
</div> </div>
@ -183,31 +182,38 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.channel=='ALL'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALL'}"
ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> | ng-click="params.channel='ALL';loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}" <a role="button" ng-class="{'bg-primary':params.channel=='WECHAT'}"
ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> | ng-click="params.channel='WECHAT';loadTradeLogs(1)">Wechat Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='ALIPAY'}"
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> | ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" <a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPLUS'}"
ng-click="params.channel='ALIPAYPLUS';loadTradeLogs(1)">Alipay+</a>
| |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> | ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}" <a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> | ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}" <a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> | ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> | ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> | ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}" <a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> | ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a>
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}" |
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> | <a role="button"
ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card
Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}" <a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a> ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct
Debit</a>
</p> </p>
</div> </div>
</div> </div>
@ -216,55 +222,57 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gateway==null}" <a role="button" ng-class="{'bg-primary':params.gateway==null}"
ng-click="params.gateway=null;loadTradeLogs(1)">All</a> | ng-click="params.gateway=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([0,1])}"
ng-click="params.gateway=[0,1];initGatewayChild()">Retail In-Store</a> ng-click="params.gateway=[0,1];initGatewayChild()">Retail
In-Store</a>
| |
<a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([5,6])}"
ng-click="params.gateway=[5,6];loadTradeLogs(1);initGatewayChild()">Retail API</a> | ng-click="params.gateway=[5,6];loadTradeLogs(1);initGatewayChild()">Retail
API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([2,7])}"
ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> | ng-click="params.gateway=[2,7];loadTradeLogs(1)">QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([3])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([3])}"
ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> | ng-click="params.gateway=[3];loadTradeLogs(1)">Online API</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([4])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([4])}"
ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> | ng-click="params.gateway=[4];loadTradeLogs(1)">WeChat HTML5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([8])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([8])}"
ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> | ng-click="params.gateway=[8];loadTradeLogs(1)">Mobile H5</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([9])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([9])}"
ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party ng-click="params.gateway=[9];loadTradeLogs(1)">Third Party
Gateway</a> | Gateway</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([10])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([10])}"
ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> | ng-click="params.gateway=[10];loadTradeLogs(1)">APP</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([11])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([11])}"
ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> | ng-click="params.gateway=[11];loadTradeLogs(1)">Share Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([12])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([12])}"
ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> | ng-click="params.gateway=[12];loadTradeLogs(1)">MiniProgram</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([13])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([13])}"
ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> | ng-click="params.gateway=[13];loadTradeLogs(1)">Native QR Code</a> |
<a role="button" ng-class="{'bg-primary':gatewaySelected([14])}" <a role="button" ng-class="{'bg-primary':gatewaySelected([14])}"
ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a> ng-click="params.gateway=[14];loadTradeLogs(1)">Share Link</a>
</p> </p>
</div> </div>
</div> </div>
<div class="form-group col-xs-12" <div class="form-group col-xs-12"
ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]"> ng-if="params.gateway.sort().toString()==[0,1] || params.gateway.sort().toString()==[5,6]">
<label class="control-label col-xs-4 col-sm-2">Type of payment</label> <label class="control-label col-xs-4 col-sm-2">Type of payment</label>
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':params.gatewayChild==null}" <a role="button" ng-class="{'bg-primary':params.gatewayChild==null}"
ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> | ng-click="params.gatewayChild=null;loadTradeLogs(1)">All</a> |
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==1}" ng-class="{'bg-primary':params.gatewayChild==1}"
ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a> ng-click="params.gatewayChild=1;loadTradeLogs(1)">线下B端二维码 |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[0,1]" <a role="button" ng-if="params.gateway.sort().toString()==[0,1]"
ng-class="{'bg-primary':params.gatewayChild==0}" ng-class="{'bg-primary':params.gatewayChild==0}"
ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a> ng-click="params.gatewayChild=0;loadTradeLogs(1)">线下C端支付码</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==6}" ng-class="{'bg-primary':params.gatewayChild==6}"
ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a> ng-click="params.gatewayChild=6;loadTradeLogs(1)">线下网关(B端二维码) |</a>
<a role="button" ng-if="params.gateway.sort().toString()==[5,6]" <a role="button" ng-if="params.gateway.sort().toString()==[5,6]"
ng-class="{'bg-primary':params.gatewayChild==5}" ng-class="{'bg-primary':params.gatewayChild==5}"
ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a> ng-click="params.gatewayChild=5;loadTradeLogs(1)">线下网关(C端支付码)</a>
</p> </p>
</div> </div>
</div> </div>
@ -274,39 +282,39 @@
<div class="form-control-static form-inline"> <div class="form-control-static form-inline">
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-from-input" <input class="form-control" id="date-from-input"
ng-model="params.datefrom" ng-model="params.datefrom" uib-datepicker-popup size="10"
uib-datepicker-popup size="10" placeholder="From" placeholder="From" is-open="dateBegin.open"
is-open="dateBegin.open" ng-click="dateBegin.open=true" ng-click="dateBegin.open=true"
datepicker-options="{maxDate:params.dateto||today}"> datepicker-options="{maxDate:params.dateto||today}">
</div> </div>
~ ~
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" id="date-to-input" <input class="form-control" id="date-to-input"
ng-model="params.dateto" ng-model="params.dateto" uib-datepicker-popup size="10"
uib-datepicker-popup size="10" placeholder="To" placeholder="To" is-open="dateTo.open"
is-open="dateTo.open" ng-click="dateTo.open=true" ng-click="dateTo.open=true"
datepicker-options="{minDate:params.datefrom,maxDate:today}"> datepicker-options="{minDate:params.datefrom,maxDate:today}">
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseToday()">Today</a> ng-click="chooseToday()">Today</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseYesterday()">Yesterday</a> ng-click="chooseYesterday()">Yesterday</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="chooseLast7Days()">Last 7 Days</a> ng-click="chooseLast7Days()">Last 7 Days</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="thisMonth()">This Month</a> ng-click="thisMonth()">This Month</a>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a role="button" class="btn btn-default btn-sm" <a role="button" class="btn btn-default btn-sm"
ng-click="lastMonth()">Last Month</a> ng-click="lastMonth()">Last Month</a>
</div> </div>
</div> </div>
@ -316,11 +324,11 @@
<div class="col-sm-10 col-xs-8"> <div class="col-sm-10 col-xs-8">
<p class="form-control-static"> <p class="form-control-static">
<a role="button" ng-class="{'bg-primary':isAll}" <a role="button" ng-class="{'bg-primary':isAll}"
ng-click="chooseBD('all')">All</a> ng-click="chooseBD('all')">All</a>
<label ng-repeat="sub in bd_group_bds"> <label ng-repeat="sub in bd_group_bds">
|&nbsp;<a role="button" |&nbsp;<a role="button"
ng-class="{'bg-primary':sub.manager_id==chooseBDId}" ng-class="{'bg-primary':sub.manager_id==chooseBDId}"
ng-click="chooseBD(sub.manager_id)">{{sub.bd_name}}</a>&nbsp; ng-click="chooseBD(sub.manager_id)">{{sub.bd_name}}</a>&nbsp;
</label> </label>
</p> </p>
</div> </div>
@ -351,7 +359,7 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Transaction Amount</span> <span class="info-box-text">Transaction Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.paid_fee|currency:'AUD'"></span> ng-bind="analysis.paid_fee|currency:'AUD'"></span>
<span class="small">( {{analysis.order_count}} Orders )</span> <span class="small">( {{analysis.order_count}} Orders )</span>
</div> </div>
</div> </div>
@ -363,30 +371,31 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span> <span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.display_amount|currency:'AUD '"></span> ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span class="small"> ( {{analysis.pre_display_amount | currency:'pre authorization '}} )</span> <span class="small"> ( {{analysis.pre_display_amount | currency:'pre
authorization '}} )</span>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-1-5 col-sm-6 col-xs-12" ng-if="analysis.cny_display_amount"> <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" <div class="info-box info_box_bottom"
ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}"> ng-class="{'line_height':analysis.pre_display_amount||analysis.pre_cny_display_amount}">
<span class="info-box-icon bg-aqua box-icon_small"><i <span class="info-box-icon bg-aqua box-icon_small"><i
class="ion ion-social-usd"></i></span> class="ion ion-social-usd"></i></span>
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Input Amount</span> <span class="info-box-text">Input Amount</span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;" <span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-class="{line_height_:!analysis.pre_display_amount}" ng-class="{line_height_:!analysis.pre_display_amount}"
ng-bind="analysis.display_amount|currency:'AUD '"></span> ng-bind="analysis.display_amount|currency:'AUD '"></span>
<span style="font-size: 8px;line-height: 8px" <span style="font-size: 8px;line-height: 8px"
ng-if="analysis.pre_display_amount"> ng-if="analysis.pre_display_amount">
( {{analysis.pre_display_amount | currency:'pre authorization '}} ) ( {{analysis.pre_display_amount | currency:'pre authorization '}} )
</span> </span>
<span class="info-box-number box-number_font" style="margin-bottom: -3px;" <span class="info-box-number box-number_font" style="margin-bottom: -3px;"
ng-if="analysis.cny_display_amount" ng-if="analysis.cny_display_amount"
ng-bind="analysis.cny_display_amount|currency:'CNY '"></span> ng-bind="analysis.cny_display_amount|currency:'CNY '"></span>
<span style="font-size: 8px;line-height: 8px" <span style="font-size: 8px;line-height: 8px"
ng-if="analysis.pre_cny_display_amount"> ng-if="analysis.pre_cny_display_amount">
( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} ) ( {{analysis.pre_cny_display_amount | currency:'pre authorization '}} )
</span> </span>
</div> </div>
@ -399,9 +408,9 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Refund Amount</span> <span class="info-box-text">Refund Amount</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.refund_fee|currency:'AUD '"></span> ng-bind="analysis.refund_fee|currency:'AUD '"></span>
<span class=small" ng-if="analysis.pre_refund_fee"> <span class=small" ng-if="analysis.pre_refund_fee">
({{analysis.pre_refund_fee|currency:'pre authorization '}}) ({{analysis.pre_refund_fee|currency:'pre authorization '}})
</span> </span>
</div> </div>
</div> </div>
@ -412,8 +421,7 @@
class="ion ion-ios-people"></i></span> class="ion ion-ios-people"></i></span>
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">Merchants</span> <span class="info-box-text">Merchants</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font" ng-bind="analysis.clients"></span>
ng-bind="analysis.clients"></span>
</span> </span>
</div> </div>
</div> </div>
@ -425,7 +433,7 @@
<div class="info-box-content box-content_left"> <div class="info-box-content box-content_left">
<span class="info-box-text">CUSTOMERS</span> <span class="info-box-text">CUSTOMERS</span>
<span class="info-box-number box-number_font" <span class="info-box-number box-number_font"
ng-bind="analysis.customers"></span> ng-bind="analysis.customers"></span>
</div> </div>
</div> </div>
</div> </div>
@ -436,109 +444,173 @@
<div class="box-header"> <div class="box-header">
<h3 class="box-title" style="display: inherit">Trade Orders <h3 class="box-title" style="display: inherit">Trade Orders
<span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop" <span style="float: right;font-size: 14px;">Pre Authorization:<i class="fa fa-stop"
aria-hidden="true" aria-hidden="true" style="color: #fff2a5"></i></span>
style="color: #fff2a5"></i></span>
</h3> </h3>
<a hidden class="pull-right text-bold" ng-if="'manual_refund_check'|withFunc" role="button" <a hidden class="pull-right text-bold" ng-if="'manual_refund_check'|withFunc" role="button"
ng-click="confirmOrders()">Manual Confirm Orders</a> ng-click="confirmOrders()">Manual Confirm Orders</a>
</div> </div>
<div class="box-body table-responsive"> <div class="box-body table-responsive">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-hover table-striped">
<thead> <thead>
<tr> <tr>
<th>Partner</th> <th>Partner</th>
<th>Order ID</th> <th>Order ID</th>
<th>Amount</th> <th>Amount</th>
<th>Input Amount</th> <th>Input Amount</th>
<th>AUD Amount</th> <th>AUD Amount</th>
<th>Exchange Rate</th> <th>Exchange Rate</th>
<th>Status</th> <th>Status</th>
<th>Create Time</th> <th>Create Time</th>
<th>Gateway</th> <th>Gateway</th>
<th>Operation</th> <th>Operation</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}"> <tr ng-repeat="trade in tradeLogs" ng-class="{warning:trade.clearing_status==2}">
<td> <td>
<a role="button" ui-sref="partners.detail({clientMoniker:trade.client_moniker})"> <a role="button"
{{trade.short_name}}({{trade.client_moniker}}) ui-sref="partners.detail({clientMoniker:trade.client_moniker})">
</a> {{trade.short_name}}({{trade.client_moniker}})
</td> </a>
<td> </td>
<img src="/static/images/royalpay_sign_s.png" <td>
uib-tooltip="RoyalPay" ng-if="trade.source=='system'"/> <img src="/static/images/royalpay_sign_s.png" uib-tooltip="RoyalPay"
<img src="/static/images/yangmaimai_sign.png" ng-if="trade.source=='system'" />
uib-tooltip="RP跨境商城" ng-if="trade.source=='RP跨境商城'"/> <img src="/static/images/yangmaimai_sign.png" uib-tooltip="RP跨境商城"
<img src="/static/images/wechatpay_sign.png" ng-if="trade.source=='RP跨境商城'" />
uib-tooltip="WechatPay" ng-if="trade.channel=='Wechat'"/> <img src="/static/images/wechatpay_sign.png" uib-tooltip="WechatPay"
<img src="/static/images/wechatpay_sign.png" ng-if="trade.channel=='Wechat'" />
uib-tooltip="Znyoo" ng-if="trade.channel=='Znyoo'"/> <img src="/static/images/wechatpay_sign.png" uib-tooltip="Znyoo"
<img src="/static/images/bestpay_sign.png" ng-if="trade.channel=='Znyoo'" />
uib-tooltip="BestPay" ng-if="trade.channel=='Bestpay'"/> <img src="/static/images/bestpay_sign.png" uib-tooltip="BestPay"
<img src="/static/images/alipay_sign.png" ng-if="trade.channel=='Bestpay'" />
uib-tooltip="Alipay" ng-if="trade.channel=='Alipay'"/> <img src="/static/images/alipay_sign.png" uib-tooltip="Alipay"
<img src="/static/images/alipay_sign.png" ng-if="trade.channel=='Alipay'" />
uib-tooltip="AlipayOnline" ng-if="trade.channel=='AlipayOnline'"/> <img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
<img src="/static/images/jd_sign.png" ng-if="trade.channel=='AlipayOnline'" />
uib-tooltip="JD Pay" ng-if="trade.channel=='jd'"/> <img src="/static/images/jd_sign.png" uib-tooltip="JD Pay"
<img src="/static/images/hf_sign.png" ng-if="trade.channel=='jd'" />
uib-tooltip="HF Pay" ng-if="trade.channel=='hf'"/> <img src="/static/images/hf_sign.png" uib-tooltip="HF Pay"
<img src="/static/images/rpayplus_sign.png" ng-if="trade.channel=='hf'" />
uib-tooltip="Royal Pay" ng-if="trade.channel=='Rpay'"/> <img src="/static/images/rpayplus_sign.png" uib-tooltip="Royal Pay"
<img src="/static/images/yeepay_sign.png" ng-if="trade.channel=='Rpay'" />
uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/> <img src="/static/images/yeepay_sign.png" uib-tooltip="Yeepay"
<img src="/static/images/lakalapay_sign.png" ng-if="trade.channel=='Yeepay'" />
uib-tooltip="LakalaPay" ng-if="trade.channel=='LakalaPay'"/> <img src="/static/images/lakalapay_sign.png" uib-tooltip="LakalaPay"
<img src="/static/images/card_payment_sign.png" ng-if="trade.channel=='LakalaPay'" />
uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/> <img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment"
<img src="/static/images/direct_debit_sign.png" ng-if="trade.channel=='rpaypmt_card'" />
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/> <img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit"
{{trade.order_id}}<span ng-if="trade.source!='system'&& trade.source!=null && trade.incremental_surcharge != null"><i class="fa fa-question-circle-o" uib-tooltip-html="trade.htmlTooltip"></i></span> ng-if="trade.channel=='rpaypmt_dd'" />
</td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<td> uib-tooltip="Alipay CN"
{{trade.total_amount|currency:trade.currency}} ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />
<a ng-if="trade.refund_fee" class="text-danger" role="button"
ng-click="showRefundLog(trade.order_id)">(-{{trade.refund_fee}})</a> <img src="/static/images/alipay_sign.png" style="height: 20px"
</td> uib-tooltip="Alipay SG"
<td ng-bind="trade.display_amount|currency:trade.currency"></td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_sg'" />
<td ng-bind="trade.clearing_amount|currency:'AUD'"></td>
<td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')" uib-tooltip="Alipay MO"
ng-bind="trade.exchange_rate"></span> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_mo'" />
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td> <img src="/static/images/alipay-hk.png" style="height: 20px"
<td ng-bind="trade.status|tradeStatus"></td> uib-tooltip="Alipay HK/支付宝香港"
<td ng-bind="trade.create_time"></td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_hk'" />
<td ng-bind="trade.gateway|tradeGateway"></td>
<td> <img src="/static/images/alipay_sign.png" style="height: 20px"
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)" title="Detail"> uib-tooltip="Alipay LU"
<i class="fa fa-list-alt"></i> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_lu'" />
</a>
<a role="button" <img src="/static/images/alipay_sign.png" style="height: 20px"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)" uib-tooltip="Alipay GB"
title="Refund" ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_gb'" />
class="text-bold text-danger" ng-click="newRefund(trade.order_id)">
<i class="fa fa-undo"></i> <img src="/static/images/alipay_sign.png" style="height: 20px"
</a> uib-tooltip="Alipay US"
</td> ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_ac_us'" />
</tr>
<img src="/static/images/paytm-logo.png" style="height: 20px"
uib-tooltip="Patytm Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='paytm'" />
<img src="/static/images/kakaopay.png" style="height: 20px"
uib-tooltip="Kakao Pay"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='kakaopay'" />
<img src="/static/images/truemoney-logo.png" style="height: 20px"
uib-tooltip="TrueMoney"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='truemoney'" />
<img src="/static/images/ezlink-logo.png" style="height: 20px"
uib-tooltip="EZLINK"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='ezlink'" />
<img src="/static/images/gcash-logo.png" style="height: 20px"
uib-tooltip="GCash"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='gcash'" />
<img src="/static/images/TNGeWalletLogo.png" style="height: 20px"
uib-tooltip="TNG"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='tng'" />
<img src="/static/images/dana-wallet-logo.png" style="height: 20px"
uib-tooltip="Dana Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='dana'" />
<img src="/static/images/easypasia-logo.png" style="height: 20px"
uib-tooltip="EasyPasia"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='easy_paisa'" />
<img src="/static/images/bkash-logo.png" style="height: 20px"
uib-tooltip="bKash Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='bkash'" />
<img src="/static/images/lazada-logo.png" style="height: 20px"
uib-tooltip="Lazada Wallet"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
{{trade.order_id}}<span
ng-if="trade.source!='system'&& trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o"
uib-tooltip-html="trade.htmlTooltip"></i></span>
</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 ng-bind="trade.clearing_amount|currency:'AUD'"></td>
<td>
<span ng-if="(trade.channel!='hf') && (trade.channel!='Rpay')"
ng-bind="trade.exchange_rate"></span>
<span ng-if="(trade.channel=='hf') || (trade.channel=='Rpay')"> - </span>
</td>
<td ng-bind="trade.status|tradeStatus"></td>
<td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway|tradeGateway"></td>
<td>
<a role="button" class="text-bold" ng-click="showTradeDetail(trade)"
title="Detail">
<i class="fa fa-list-alt"></i>
</a>
<a role="button"
ng-if="trade.status>=5 && trade.confirm_time!=null && trade.clearing_status<2 && ('do_refund'|withFunc)"
title="Refund" class="text-bold text-danger"
ng-click="newRefund(trade.order_id)">
<i class="fa fa-undo"></i>
</a>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="box-body" ng-if="tradeLogs.length"> <div class="box-body" ng-if="tradeLogs.length">
<uib-pagination class="pagination" <uib-pagination class="pagination" total-items="pagination.totalCount" boundary-links="true"
total-items="pagination.totalCount" ng-model="pagination.page" items-per-page="pagination.limit" max-size="10"
boundary-links="true" ng-change="loadTradeLogs()" previous-text="&lsaquo;" next-text="&rsaquo;"
ng-model="pagination.page" first-text="&laquo;" last-text="&raquo;"></uib-pagination>
items-per-page="pagination.limit"
max-size="10"
ng-change="loadTradeLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row"> <div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total <div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
Pages:{{pagination.totalPages}} Pages:{{pagination.totalPages}}

@ -68,7 +68,7 @@ server {
} }
location ~ ^/api/v1.0/((alipay_connect)|(customs)|(alipay)|(rpay)|(yeepay)|(card_payment_view)|(lakala_pay)|(cb_bankpay)|(bestpay)|(hf)|(wechat_jsapi_gateway)|(h5_payment)|(gateway)|(hf_gateway)|(jd_gateway)|(micropay)|(retail_qrcode)|(jsapi_gateway)|(share_code)|(payment))/ { location ~ ^/api/v1.0/((alipay\w*)|(customs)|(rpay)|(yeepay)|(card_payment_view)|(lakala_pay)|(cb_bankpay)|(bestpay)|(hf)|(\w*gateway)|(micropay)|(retail_qrcode)|(share_code)|(payment)|(h5_payment))/ {
proxy_pass http://rppaycenter; proxy_pass http://rppaycenter;
proxy_http_version 1.1; proxy_http_version 1.1;

Loading…
Cancel
Save