Merge remote-tracking branch 'origin/alipayplus_aps' into alipayplus_aps

master
yixian 3 years ago
commit 732ec9f8e2

@ -41,7 +41,8 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService {
listChannel.add(putParam(params,"Wechat"));
listChannel.add(putParam(params,"Alipay"));
listChannel.add(putParam(params,"AlipayOnline"));
listChannel.add(putParam(params,"AlipayAps"));
listChannel.add(putParam(params,"ApsInStore"));
listChannel.add(putParam(params,"ApsCashier"));
listChannel.add(putParam(params,"Rpay"));
listChannel.add(putParam(params,"rpaypmt_card"));
listChannel.add(putParam(params,"rpaypmt_dd"));
@ -55,7 +56,7 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService {
}
List<JSONObject> list = new ArrayList<>();
Map<Date,JSONObject> analysisMap = new TreeMap<>();
String[] channels = {"Wechat","Alipay","AlipayOnline","Rpay","rpaypmt_card","rpaypmt_dd","AlipayAps"};
String[] channels = {"Wechat","Alipay","AlipayOnline","Rpay","rpaypmt_card","rpaypmt_dd","ApsCashier","ApsInStore"};
for (String channel:channels){
analysisChannelCustomers(params, analysisMap, channel);
}
@ -142,7 +143,10 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService {
enablePartners = customerAndOrdersStatisticsMapper.countEnableChannel(params);
params.remove("gateway_alipay_online");
}
else if("AlipayAps".equals(name)){
else if("ApsInStore".equals(name)){
enablePartners=mchChannelContractMapper.sumEnablePartners(name);
}
else if("ApsCashier".equals(name)){
enablePartners=mchChannelContractMapper.sumEnablePartners(name);
}
else {

@ -992,9 +992,6 @@ public class RetailAppServiceImp implements RetailAppService {
tradeDate = DateFormatUtils.format(calendar, "yyyy-MM-dd", calendar.getTimeZone());
tradeTime = DateFormatUtils.format(calendar, "HH:mm:ss", calendar.getTimeZone());
}
if("AlipayAps".equalsIgnoreCase(order.getString("channel"))){
order.put("channel","Alipay+");
}
order.put("trade_date", tradeDate);
order.put("trade_time", tradeTime);
// todo

@ -1,5 +1,7 @@
package au.com.royalpay.payment.manage.citypartner.core.impls;
import au.com.royalpay.payment.channels.alipay.config.AlipayConfig;
import au.com.royalpay.payment.channels.alipay.runtime.alipayplus.AlipayPlusRuleManager;
import au.com.royalpay.payment.manage.citypartner.beans.AgentCommissionAnalysis;
import au.com.royalpay.payment.manage.citypartner.beans.CityPartnerCommissionAnalysis;
import au.com.royalpay.payment.manage.citypartner.beans.ReferrerCommissionAnalysis;
@ -8,6 +10,8 @@ import au.com.royalpay.payment.manage.mappers.financial.*;
import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper;
import au.com.royalpay.payment.manage.mappers.system.OrgMapper;
import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.defines.PayChannel;
import au.com.royalpay.payment.tools.defines.TradeType;
import au.com.royalpay.payment.tools.env.SysConfigManager;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
@ -357,6 +361,11 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
BigDecimal wechatChargeRate = new BigDecimal("0.6");
BigDecimal jdChargeRate = new BigDecimal("0.9");
BigDecimal alipayonlineChargeRate = new BigDecimal("0.6");
BigDecimal retailInterchangeChargeRate = new BigDecimal("0.5");
BigDecimal retailServiceChargeRate = new BigDecimal("0.5");
BigDecimal onlineInterchangeChargeRate = new BigDecimal("0.5");
BigDecimal onlineServiceChargeRate = new BigDecimal("0.5");
if (sysConfig.getBigDecimal("Alipay_charge_rate") != null) {
alipayChargeRate = sysConfig.getBigDecimal("Alipay_charge_rate");
}
@ -369,11 +378,28 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
if (sysConfig.getBigDecimal("alipayonline_charge_rate") != null) {
alipayonlineChargeRate = sysConfig.getBigDecimal("alipayonline_charge_rate");
}
if (sysConfig.getBigDecimal("retail_interchange_charge_rate") != null) {
retailInterchangeChargeRate = sysConfig.getBigDecimal("retail_interchange_charge_rate");
}
if (sysConfig.getBigDecimal("retail_service_charge_rate") != null) {
retailServiceChargeRate = sysConfig.getBigDecimal("retail_service_charge_rate");
}
if (sysConfig.getBigDecimal("online_interchange_charge_rate") != null) {
onlineInterchangeChargeRate = sysConfig.getBigDecimal("online_interchange_charge_rate");
}
if (sysConfig.getBigDecimal("online_service_charge_rate") != null) {
onlineServiceChargeRate = sysConfig.getBigDecimal("online_service_charge_rate");
}
JSONObject channelCharge = new JSONObject();
channelCharge.put("alipayChargeRate", alipayChargeRate);
channelCharge.put("wechatChargeRate", wechatChargeRate);
channelCharge.put("jdChargeRate", jdChargeRate);
channelCharge.put("alipayonlineChargeRate", alipayonlineChargeRate);
channelCharge.put("retailInterchangeChargeRate", retailInterchangeChargeRate);
channelCharge.put("retailServiceChargeRate", retailServiceChargeRate);
channelCharge.put("onlineInterchangeChargeRate", onlineInterchangeChargeRate);
channelCharge.put("onlineServiceChargeRate", onlineServiceChargeRate);
List<JSONObject> transactionDetail = transactionMapper.listTransactionForCityPartnerCommissionByDate(year, month);
transactionDetail.forEach(item -> {
@ -451,13 +477,28 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
if (orgInfo.get("alipayonlinecn_rate_value") == null) {
throw new ServerErrorException(orgInfo.getString("name") + "组织下" + oneChannel.getKey() + "成本手续费未设置");
}
} else if (StringUtils.equals(channel.toLowerCase(), "apsinstore")) {
if (orgInfo.get("retail_interchange_fee_value") == null) {
throw new ServerErrorException(orgInfo.getString("name") + "组织下A+(Retail)的 Interchange Fee 成本手续费未设置");
}
if (orgInfo.get("retail_service_fee_value") == null) {
throw new ServerErrorException(orgInfo.getString("name") + "组织下A+(Retail)的 Service Fee 成本手续费未设置");
}
} else if (StringUtils.equals(channel.toLowerCase(), "apscashier")) {
if (orgInfo.get("online_interchange_fee_value") == null) {
throw new ServerErrorException(orgInfo.getString("name") + "组织下A+(Online)的 Interchange Fee 成本手续费未设置");
}
if (orgInfo.get("online_service_fee_value") == null) {
throw new ServerErrorException(orgInfo.getString("name") + "组织下A+(Online)的 Service Fee 成本手续费未设置");
}
} else {
throw new ServerErrorException(orgInfo.getString("name") + "组织下" + oneChannel.getKey() + "成本手续费未设置");
}
}
PayChannel payChannel = PayChannel.fromChannelCode(channel);
for (JSONObject params : oneChannel.getValue()) {
if (StringUtils.equals("rpaypmt_card", channel.toLowerCase())) {
if (payChannel == PayChannel.RPAY_CHANNEL_CARD) {
//rpaypmt_domestic_card
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("rpaypmt_domestic_card" + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
@ -489,7 +530,22 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
} else {
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
BigDecimal channelRate = null;
if (payChannel == PayChannel.ALIPAY_APS_IN_STORE) {
if ("alipay_cn".equalsIgnoreCase(params.getString("pay_type"))) {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("aliapy_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : ((orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))).divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else if (payChannel == PayChannel.ALIPAY_APS_CASHIER) {
if ("alipay_cn".equalsIgnoreCase(params.getString("pay_type"))) {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("alipayonline_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : ((orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))).divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
//增加transaction_fee为null异常
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
params.put("transaction_fee", BigDecimal.ZERO);
@ -514,7 +570,13 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
json.put("total_charge", total_surage);
json.put("transaction_fee", transaction_fee);
json.put("net_charge", net_surage);
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
if (payChannel == PayChannel.ALIPAY_APS_IN_STORE) {
json.put("org_rate", (orgInfo.getBigDecimal("retail_interchange_fee_value").add(orgInfo.getBigDecimal("retail_service_fee_value"))));
} else if (payChannel == PayChannel.ALIPAY_APS_CASHIER) {
json.put("org_rate", (orgInfo.getBigDecimal("online_interchange_fee_value").add(orgInfo.getBigDecimal("online_service_fee_value"))));
} else {
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
}
json.put("royalpay_charge", royalpay_surage);
json.put("org_charge", org_charge.signum() < 0 ? new BigDecimal(0) : org_charge);
json.put("commission_type", "1");
@ -539,7 +601,21 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
String channel = oneChannel.getKey();
for (JSONObject params : oneChannel.getValue()) {
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
BigDecimal channelRate;
if (StringUtils.equals("alipayaps", channel.toLowerCase())) {
if ("alipay_cn".equalsIgnoreCase(params.getString("pay_type"))) {
AlipayConfig.BizType bizType = AlipayPlusRuleManager.getRules().determineAmsBizType(TradeType.fromGatewayNumber(params.getInteger("gateway")));
if (bizType == AlipayConfig.BizType.RETAIL) {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("aliapy_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("alipayonline_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : ((orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))).divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
//增加transaction_fee为null异常
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
params.put("transaction_fee", BigDecimal.ZERO);
@ -565,7 +641,11 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
json.put("gross_amount", total);
json.put("total_charge", total_surage);
json.put("net_charge", net_surage);
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
if (StringUtils.equals("alipayaps", channel.toLowerCase())) {
json.put("org_rate", (orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))));
} else {
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
}
json.put("partner_charge", royalpay_surage);
json.put("share_charge", share_surage);
json.put("org_charge", org_charge);
@ -611,6 +691,7 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
rateChannel);
} catch (Exception e) {
}
PayChannel payChannel = PayChannel.fromChannelCode(channel);
for (JSONObject params : oneChannel.getValue()) {
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
if (StringUtils.equals(channel.toLowerCase() + "_rate_value", "rpaypmt_card_rate_value")) {
@ -659,7 +740,22 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
} else {
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
BigDecimal channelRate;
if (payChannel == PayChannel.ALIPAY_APS_IN_STORE) {
if ("alipay_cn".equalsIgnoreCase(params.getString("pay_type"))) {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("aliapy_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : ((orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))).divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else if (payChannel == PayChannel.ALIPAY_APS_CASHIER) {
if ("alipay_cn".equalsIgnoreCase(params.getString("pay_type"))) {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("alipayonline_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : ((orgInfo.getBigDecimal("interchange_fee_value").add(orgInfo.getBigDecimal("service_fee_value"))).divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
} else {
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
}
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge")
.subtract(params.getBigDecimal("surcharge_cashback"))
.subtract(params.getBigDecimal("transaction_fee"));
@ -705,7 +801,13 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
}
json.put("gross_amount", total);
json.put("total_charge", total_surage);
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
if (payChannel == PayChannel.ALIPAY_APS_IN_STORE) {
json.put("org_rate", (orgInfo.getBigDecimal("retail_interchange_fee_value").add(orgInfo.getBigDecimal("retail_service_fee_value"))));
} else if (payChannel == PayChannel.ALIPAY_APS_CASHIER) {
json.put("org_rate", (orgInfo.getBigDecimal("online_interchange_fee_value").add(orgInfo.getBigDecimal("online_service_fee_value"))));
} else {
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
}
json.put("royalpay_charge", royalpay_surage);
if (type == 1) {
json.put("net_charge", net_surage);

@ -554,9 +554,11 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
client.put("enable_alipayplus", true);
}
client.put("enable_alipayaps", false);
MerchantChannelPermissionResolver resolverAps = this.paymentApi.channelApi(PayChannel.ALIPAY_APS.getChannelCode()).getChannelPermissionResolver();
if (!Objects.isNull(resolver) &&
resolverAps.newOrderEnabled(client, null, PlatformEnvironment.getEnv().getForeignCurrency())) {
MerchantChannelPermissionResolver resolverApsInStore = this.paymentApi.channelApi(PayChannel.ALIPAY_APS_IN_STORE.getChannelCode()).getChannelPermissionResolver();
MerchantChannelPermissionResolver resolverApsCashier = this.paymentApi.channelApi(PayChannel.ALIPAY_APS_CASHIER.getChannelCode()).getChannelPermissionResolver();
if(!Objects.isNull(resolverApsInStore) && !Objects.isNull(resolverApsCashier) &&
(resolverApsInStore.newOrderEnabled(client, null, PlatformEnvironment.getEnv().getForeignCurrency()) ||
resolverApsCashier.newOrderEnabled(client, null, PlatformEnvironment.getEnv().getForeignCurrency()))){
client.put("enable_alipayaps", true);
}
ApsConfigData apsConfig = apsConfigService.getApsConfigByClientId(client.getString("client_id"));
@ -1587,6 +1589,20 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Override
public void switchChannelPermission(JSONObject manager, String clientMoniker, String channel, boolean allow) {
PayChannel payChannel = PayChannel.fromChannelCode(channel);
if(payChannel == PayChannel.ALIPAY_APS){
ArrayList<String> apsChannels = new ArrayList<>();
apsChannels.add(PayChannel.ALIPAY_APS_IN_STORE.getChannelCode());
apsChannels.add(PayChannel.ALIPAY_APS_CASHIER.getChannelCode());
apsChannels.forEach(apsChannel->{
extracted(manager, clientMoniker, apsChannel, allow);
});
}else {
extracted(manager, clientMoniker, channel, allow);
}
}
private void extracted(JSONObject manager, String clientMoniker, String channel, boolean allow) {
for (PaymentChannelApi channelApi : paymentApi.channels()) {
if (channelApi.channel().equalsIgnoreCase(channel)) {
JSONObject client = getClientInfoByMoniker(clientMoniker);
@ -2013,15 +2029,18 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
checkAddRate(config, "AlipayOnline", "alipayonline_rate_value", org, "min_alipayonline_rate");
checkAddRate(config, "Rpay", "Rpay_rate_value", org, "min_Rpay_rate");
checkAddRate(config, "CB_BankPay", "min_cb_bankpay_value", org, "min_cb_bankpay_rate");
checkAddRate(config, "AlipayAps Interchange Fee", "interchange_fee_value", org, "min_interchange_fee_rate");
checkAddRate(config, "AlipayAps Serivce Fee", "service_fee_value", org, "min_service_fee_rate");
checkAddRate(config, "AlipayAps Retail Interchange Fee", "retail_interchange_fee_value", org, "min_retail_interchange_fee_rate");
checkAddRate(config, "AlipayAps Retail Serivce Fee", "retail_service_fee_value", org, "min_retail_service_fee_rate");
checkAddRate(config, "AlipayAps Online Interchange Fee", "online_interchange_fee_value", org, "min_online_interchange_fee_rate");
checkAddRate(config, "AlipayAps Online Serivce Fee", "online_service_fee_value", org, "min_online_service_fee_rate");
configNewClientRate(config, clientId, "Wechat", "wechat_rate_value", org, "min_wechat_rate");
configNewClientRate(config, clientId, "Alipay", "alipay_rate_value", org, "min_alipay_rate");
configNewClientRate(config, clientId, "AlipayOnline", "alipayonline_rate_value", org, "min_alipayonline_rate");
configNewClientRate(config, clientId, "Rpay", "Rpay_rate_value", org, "min_Rpay_rate");
configNewClientRate(config, clientId, "CB_BankPay", "cb_bankpay_rate_value", org, "min_cb_bankpay_rate");
configNewClientRate(config, clientId, "AlipayAps", "interchange_fee_value", null, "");
configNewClientRate(config, clientId, "ApsInStore", "retail_interchange_fee_value", null, "");
configNewClientRate(config, clientId, "ApsCashier", "online_interchange_fee_value", null, "");
addAlipayPlusRateConfig(config, clientId, PayChannel.ALIPAY_PLUS.getChannelCode());
}
@ -2145,7 +2164,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
if (config.containsKey(rateKey)) {
if (org.containsKey(rateValueKey)) {
if (config.getBigDecimal(rateKey).compareTo(org.getBigDecimal(rateValueKey)) < 0) {
throw new ForbiddenException("费率参数小于旗下商户最低" + channel + "费率,请重新输入");
}
}

@ -31,7 +31,7 @@ public class OrgInfo {
private Double alipayonline_rate_value;
private Double alipayplus_rate_value;
private Double cb_bankpay_rate_value;
// private Double rpaypmt_card_rate_value;
// private Double rpaypmt_card_rate_value;
//卡支付-国内卡费率配置
private Double rpaypmt_domestic_card_rate_value;
//卡支付-国际卡费率配置
@ -57,11 +57,14 @@ public class OrgInfo {
private Double min_rpaypmt_dd_rate;
private String state;
private String senior_parent_org_id;
private Double interchange_fee_value;
private Double min_interchange_fee_value;
private Double service_fee_value;
private Double min_service_fee_value;
private Double retail_interchange_fee_value;
private Double min_retail_interchange_fee_value;
private Double retail_service_fee_value;
private Double min_retail_service_fee_value;
private Double online_interchange_fee_value;
private Double min_online_interchange_fee_value;
private Double online_service_fee_value;
private Double min_online_service_fee_value;
public JSONObject toJsonParam() {
@ -333,6 +336,7 @@ public class OrgInfo {
public void setState(String state) {
this.state = state;
}
public String getSenior_parent_org_id() {
return senior_parent_org_id;
}
@ -422,31 +426,67 @@ public class OrgInfo {
this.min_rpaypmt_overseas_card_rate = min_rpaypmt_overseas_card_rate;
}
public Double getInterchange_fee_value(){ return interchange_fee_value; }
public Double getRetail_interchange_fee_value() {
return retail_interchange_fee_value;
}
public void setRetail_interchange_fee_value(Double retail_interchange_fee_value) {
this.retail_interchange_fee_value = retail_interchange_fee_value;
}
public Double getMin_retail_interchange_fee_value() {
return min_retail_interchange_fee_value;
}
public void setMin_retail_interchange_fee_value(Double min_retail_interchange_fee_value) {
this.min_retail_interchange_fee_value = min_retail_interchange_fee_value;
}
public Double getRetail_service_fee_value() {
return retail_service_fee_value;
}
public void setRetail_service_fee_value(Double retail_service_fee_value) {
this.retail_service_fee_value = retail_service_fee_value;
}
public Double getMin_retail_service_fee_value() {
return min_retail_service_fee_value;
}
public void setInterchange_fee_value(Double interchange_fee_value){ this.interchange_fee_value = interchange_fee_value; }
public void setMin_retail_service_fee_value(Double min_retail_service_fee_value) {
this.min_retail_service_fee_value = min_retail_service_fee_value;
}
public Double getOnline_interchange_fee_value() {
return online_interchange_fee_value;
}
public void setOnline_interchange_fee_value(Double online_interchange_fee_value) {
this.online_interchange_fee_value = online_interchange_fee_value;
}
public Double getMin_interchange_fee_value() {
return min_interchange_fee_value;
public Double getMin_online_interchange_fee_value() {
return min_online_interchange_fee_value;
}
public void setMin_interchange_fee_value(Double min_interchange_fee_value) {
this.min_interchange_fee_value = min_interchange_fee_value;
public void setMin_online_interchange_fee_value(Double min_online_interchange_fee_value) {
this.min_online_interchange_fee_value = min_online_interchange_fee_value;
}
public Double getService_fee_value() {
return service_fee_value;
public Double getOnline_service_fee_value() {
return online_service_fee_value;
}
public void setService_fee_value(Double service_fee_value) {
this.service_fee_value = service_fee_value;
public void setOnline_service_fee_value(Double online_service_fee_value) {
this.online_service_fee_value = online_service_fee_value;
}
public Double getMin_service_fee_value() {
return min_service_fee_value;
public Double getMin_online_service_fee_value() {
return min_online_service_fee_value;
}
public void setMin_service_fee_value(Double min_service_fee_value) {
this.min_service_fee_value = min_service_fee_value;
public void setMin_online_service_fee_value(Double min_online_service_fee_value) {
this.min_online_service_fee_value = min_online_service_fee_value;
}
}

@ -7,11 +7,11 @@ spring:
schema-name: royalpay
username: rpaydev
slave:
host: 192.168.0.84:3306
host: 192.168.0.92:3306
jdbc-url: jdbc:mysql://${spring.datasource.slave.host}/${spring.datasource.slave.schema-name}?useUnicode=true&characterEncoding=utf8&useSSL=false
password: rpayplus123
password: SuTUUxyvzS0cLETi6Rzm
schema-name: royalpay
username: root
username: rpaydev
type: com.zaxxer.hikari.HikariDataSource
#spring:
# datasource:
@ -22,12 +22,11 @@ spring:
# schema-name: royalpay
# password: SuTUUxyvzS0cLETi6Rzm
# slave:
# host: 192.168.0.84:3306
# jdbc-url: jdbc:mysql://${spring.datasource.slave.host}/${spring.datasource.slave.schema-name}?useUnicode=true&characterEncoding=utf8&useSSL=false
# password: rpayplus123
# host: office.geekforbest.com:33306
# jdbc-url: jdbc:mysql://${spring.datasource.master.host}/${spring.datasource.master.schema-name}?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
# username: rpaydev_out
# schema-name: royalpay
# username: root
# type: com.zaxxer.hikari.HikariDataSource
# password: SuTUUxyvzS0cLETi6Rzm
#spring:
@ -60,24 +59,24 @@ spring:
# schema-name: royalpay_production
# username: readonly
# type: com.zaxxer.hikari.HikariDataSource
redis:
database: 1
host: 127.0.0.1
port: 6379
# redis:
# database: 1
# host: 192.168.0.84
# host: 127.0.0.1
# port: 6379
redis:
database: 1
host: 192.168.0.84
port: 6379
mail:
host: smtp.exmail.qq.com
port: 465
app:
run-tasks: false
host:
main: http://192.168.0.14:8888/
main: http://dalong-au.dev.rpaygroup.com/
regions:
au: http://192.168.0.14:8888/
cn: http://192.168.0.14:8888/
au: http://dalong-au.dev.rpaygroup.com/
cn: http://dalong-au.dev.rpaygroup.com/
mail:
appid: 1
host: https://dev.mailsupport.hcqtech.com

@ -344,9 +344,12 @@
ifnull(sum(CASE WHEN s.channel = 'AlipayOnline' THEN s.total ELSE 0 END),0) alipayonlineamount,
ifnull(sum(CASE WHEN s.channel = 'AlipayOnline' THEN s.orders ELSE 0 END),0) alipayonline_order_count,
ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'AlipayOnline',TRUE,NULL)),0) alipayonline_client_count,
ifnull(sum(CASE WHEN s.channel = 'AlipayAps' THEN s.total ELSE 0 END),0) alipayapsamount,
ifnull(sum(CASE WHEN s.channel = 'AlipayAps' THEN s.orders ELSE 0 END),0) alipayaps_order_count,
ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'AlipayAps',TRUE,NULL)),0) alipayaps_client_count,
ifnull(sum(CASE WHEN s.channel = 'ApsInStore' THEN s.total ELSE 0 END),0) apsinstoreamount,
ifnull(sum(CASE WHEN s.channel = 'ApsInStore' THEN s.orders ELSE 0 END),0) apsinstore_order_count,
ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'ApsInStore',TRUE,NULL)),0) apsinstore_client_count,
ifnull(sum(CASE WHEN s.channel = 'ApsCashier' THEN s.total ELSE 0 END),0) apscashieramount,
ifnull(sum(CASE WHEN s.channel = 'ApsCashier' THEN s.orders ELSE 0 END),0) apscashier_order_count,
ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'ApsCashier',TRUE,NULL)),0) apscashier_client_count,
ifnull(sum(CASE WHEN s.channel = 'hf' THEN s.total ELSE 0 END),0) hfamount,
ifnull(sum(CASE WHEN s.channel = 'hf' THEN s.orders ELSE 0 END),0) hf_order_count,
ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'hf',TRUE,NULL)),0) hf_client_count,

@ -173,7 +173,7 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
trigger: 'axis'
},
legend: {
data: ['Alipay交易金额','AlipayOnline交易金额', 'Bestpay交易金额','Wechat交易金额',"JD Pay交易金额","HF Pay交易金额","Yeepay交易金额","LakalaPay交易金额","Card Payment交易金额","Direct Debit交易金额","Alipay+交易金额"],
data: ['Alipay交易金额','AlipayOnline交易金额', 'Bestpay交易金额','Wechat交易金额',"JD Pay交易金额","HF Pay交易金额","Yeepay交易金额","LakalaPay交易金额","Card Payment交易金额","Direct Debit交易金额","Alipay+交易金额","Alipay+(Online)交易金额"],
bottom: 0,
height: '15%',
width: '80%',
@ -311,7 +311,18 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'AlipayAps.total'}
column: {key: 'ApsInStore.total'}
},
{
basic: {
name: 'Alipay+(Online)交易金额',
type: 'line',
label: {normal: {show: true}},
showAllSymbols: true,
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'ApsCashier.total'}
}
]
};
@ -322,7 +333,7 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
trigger: 'axis'
},
legend: {
data: ['Alipay交易订单','AlipayOnline交易订单', 'Bestpay交易订单','Wechat交易订单',"JD Pay交易订单","HF Pay交易订单","Yeepay交易订单","LakalaPay交易订单","Card Payment交易订单","Direct Debit交易订单","Alipay+交易订单"],
data: ['Alipay交易订单','AlipayOnline交易订单', 'Bestpay交易订单','Wechat交易订单',"JD Pay交易订单","HF Pay交易订单","Yeepay交易订单","LakalaPay交易订单","Card Payment交易订单","Direct Debit交易订单","Alipay+交易订单","Alipay+(Online)交易订单"],
bottom: 0,
height: '15%',
width: '80%',
@ -460,7 +471,18 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'AlipayAps.orders'}
column: {key: 'ApsInStore.orders'}
},
{
basic: {
name: 'Alipay+(Online)交易订单',
type: 'line',
label: {normal: {show: true}},
showAllSymbols: true,
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'ApsCashier.orders'}
}
]
};
@ -470,7 +492,7 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
trigger: 'axis'
},
legend: {
data: ['Alipay交易客单价','AlipayOnline交易客单价', 'Bestpay交易客单价','Wechat交易客单价',"JD Pay交易客单价","HF Pay交易客单价","Yeepay交易客单价","LakalaPay交易客单价","Card Payment交易客单价","Direct Debit交易客单价","Alipay+交易客单价"],
data: ['Alipay交易客单价','AlipayOnline交易客单价', 'Bestpay交易客单价','Wechat交易客单价',"JD Pay交易客单价","HF Pay交易客单价","Yeepay交易客单价","LakalaPay交易客单价","Card Payment交易客单价","Direct Debit交易客单价","Alipay+交易客单价","Alipay+(Online)交易客单价"],
bottom: 0,
},
yAxis: [
@ -605,7 +627,18 @@ define(['angular', 'static/commons/commons', 'static/commons/angular-ueditor', '
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'AlipayAps.single_amount'}
column: {key: 'ApsInStore.single_amount'}
},
{
basic: {
name: 'Alipay+(Online)交易客单价',
type: 'line',
label: {normal: {show: true}},
showAllSymbols: true,
showSymbol: true,
yAxisIndex: 0
},
column: {key: 'ApsCashier.single_amount'}
}
]
};

@ -140,10 +140,12 @@
</thead>
<tbody>
<tr ng-repeat="channels in countChannels |orderBy:'total':true">
<td style="text-align: center;font-style: italic;font-size: larger" ng-if="channels.channel!='AlipayAps'"
<td style="text-align: center;font-style: italic;font-size: larger" ng-if="channels.channel!='ApsCashier'&&channels.channel!='ApsInStore'"
ng-bind="channels.channel"></td>
<td style="text-align: center;font-style: italic;font-size: larger" ng-if="channels.channel=='AlipayAps'"
<td style="text-align: center;font-style: italic;font-size: larger" ng-if="channels.channel=='ApsInStore'"
>Alipay+</td>
<td style="text-align: center;font-style: italic;font-size: larger" ng-if="channels.channel=='ApsCashier'"
>Alipay+(Online)</td>
<td ng-bind="channels.total"></td>
<td ng-bind="channels.order"></td>
<td ng-bind="channels.transaction_partners"></td>

@ -85,24 +85,18 @@ Ye<style>
ng-click="params.channel='ALIPAY';doAnalysis(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayOnline'}"
ng-click="params.channel='AlipayOnline';doAnalysis(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayAps'}"
ng-click="params.channel='AlipayAps';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';doAnalysis(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='jd'}"
ng-click="params.channel='jd';doAnalysis(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='hf'}"
ng-click="params.channel='hf';doAnalysis(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';doAnalysis(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';doAnalysis(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='Yeepay'}"
ng-click="params.channel='YEEPAY';doAnalysis(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LakalaPay'}"
ng-click="params.channel='LAKALAPAY';doAnalysis(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';doAnalysis(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a>
</p>
</div>
</div>

@ -95,24 +95,16 @@
ng-click="params.channel='ALIPAY';doAnalysis(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayOnline'}"
ng-click="params.channel='AlipayOnline';doAnalysis(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayAps'}"
ng-click="params.channel='AlipayAps';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';doAnalysis(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='jd'}"
ng-click="params.channel='jd';doAnalysis(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';doAnalysis(1)">HF Pay</a>
<a role="button" ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';doAnalysis(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';doAnalysis(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';doAnalysis(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LakalaPay'}"
ng-click="params.channel='LAKALAPAY';doAnalysis(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';doAnalysis(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a>
</p>
</div>
</div>

@ -95,22 +95,14 @@
ng-click="params.channel='ALIPAY';doAnalysis(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayOnline'}"
ng-click="params.channel='AlipayOnline';doAnalysis(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayAps'}"
ng-click="params.channel='AlipayAps';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';doAnalysis(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='jd'}"
ng-click="params.channel='jd';doAnalysis(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='hf'}"
ng-click="params.channel='hf';doAnalysis(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';doAnalysis(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';doAnalysis(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';doAnalysis(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';doAnalysis(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a>
</p>
</div>
</div>

@ -97,24 +97,15 @@
ng-click="params.channel='ALIPAY';doAnalysis(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayOnline'}"
ng-click="params.channel='AlipayOnline';doAnalysis(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayAps'}"
ng-click="params.channel='AlipayAps';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';doAnalysis(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='jd'}"
ng-click="params.channel='jd';doAnalysis(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='hf'}"
ng-click="params.channel='hf';doAnalysis(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';doAnalysis(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';doAnalysis(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';doAnalysis(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';doAnalysis(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';doAnalysis(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';doAnalysis(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a>
</p>
</div>
</div>
@ -173,18 +164,7 @@
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><img src="/static/images/bestpay_sign.png"/>Bestpay</div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.bestpayamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.bestpay_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.bestpay_client_count }}</label>
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><img src="/static/images/alipay_sign.png"/>Alipay</div>
@ -209,32 +189,7 @@
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><img src="/static/images/jd_sign.png"/>JD Pay</div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.jdamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.jd_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.jd_client_count }}</label>
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><img src="/static/images/hf_sign.png"/>HF Pay</div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.hfamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.hf_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.hf_client_count }}</label>
</div>
</div>
</div>
</div>
<div class="row">
<!-- 显示Rpay+交易额分析-->
<div class="col-sm-2 col-xs-6">
<div class="description-block">
@ -247,28 +202,7 @@
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><img src="/static/images/yeepay_sign.png"/>Yeepay</div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.yeepayamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.yeepay_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.yeepay_client_count }}</label>
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><small><img src="/static/images/lakalapay_sign.png"/>LakalaPay</small></div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.lakalapayamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.lakala_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.lakala_client_count }}</label>
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><small><img src="/static/images/card_payment_sign.png"/>Card Payment</small></div>
@ -280,25 +214,31 @@
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><small><img src="/static/images/direct_debit_sign.png"/>Direct Debit</small></div>
<div class="description-header text-bold"><small><img src="/static/images/alipay_aps.jpg" style="height: 30px"/>Alipay+</small></div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.rpaypmt_ddamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.rpaypmt_dd_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.rpaypmt_dd_client_count }}</label>
ng-bind="totalChannelAmount.apsinstoreamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.apsinstore_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.apsinstore_client_count }}</label>
</div>
</div>
</div>
<div class="col-sm-2 col-xs-6">
<div class="description-block">
<div class="description-header text-bold"><small><img src="/static/images/alipay_aps.jpg" style="height: 30px"/>Alipay+</small></div>
<div class="description-header text-bold"><small><img src="/static/images/alipay_aps.jpg" style="height: 30px"/>Alipay+(Online)</small></div>
<div class="description-text">
<label class="description-text text-red"
ng-bind="totalChannelAmount.alipayapsamount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.alipayaps_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.alipayaps_client_count }}</label>
ng-bind="totalChannelAmount.apscashieramount|currency: ' $ '"></label></br>
<label class="description-text text-red">交易笔数:{{ totalChannelAmount.apscashier_order_count }}</label>
<label class="description-text text-red">交易商户数:{{ totalChannelAmount.apscashier_client_count }}</label>
</div>
</div>
</div>

@ -35,24 +35,17 @@
ng-click="params.channel='ALIPAY';loadTradeLogs()">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayOnline'}"
ng-click="params.channel='AlipayOnline';loadTradeLogs(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='AlipayAps'}"
ng-click="params.channel='AlipayAps';loadTradeLogs(1)">Alipay+</a>|
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs()">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='jd'}"
ng-click="params.channel='jd';loadTradeLogs()">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='hf'}"
ng-click="params.channel='hf';loadTradeLogs()">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';loadTradeLogs(1)">Alipay+</a>|
<a role="button" ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';loadTradeLogs(1)">Alipay+(Online)</a>|
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';doAnalysis(1)">LakalaPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_DD'}"
ng-click="params.channel='RPAYPMT_DD';doAnalysis(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';doAnalysis(1)">Card Payment</a>
</p>
</div>
</div>

@ -136,364 +136,6 @@
</div>
</div>
</div>
<div ng-if="org.commission_type == 1">
<div class="form-group"
ng-class="{'has-error':org_form.wechat_rate_value.$invalid && org_form.wechat_rate_value.$dirty}">
<label class="control-label col-sm-2" for="wechat_rate_value_input">Wechat Rate
*</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.wechat_rate_value"
id="wechat_rate_value_input"
name="wechat_rate_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.alipay_rate_value.$invalid && org_form.alipay_rate_value.$dirty}">
<label class="control-label col-sm-2" for="alipay_rate_value_input">Alipay Rate
*</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipay_rate_value"
id="alipay_rate_value_input"
name="alipay_rate_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- APS config-->
<div class="form-group">
<label class="control-label col-sm-2">A+(APS):</label>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.interchange_fee_value.$invalid && org_form.interchange_fee_value.$dirty}">
<label class="control-label col-sm-3" for="interchange_fee_value_input">
Interchange Fee *</label>
<div class="col-sm-7">
<input
class="form-control form-control-float"
type="number"
ng-model="org.interchange_fee_value"
id="interchange_fee_value_input"
name="interchange_fee_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.service_fee_value.$invalid && org_form.service_fee_value.$dirty}">
<label class="control-label col-sm-3" for="service_fee_value_input">
Service Fee *</label>
<div class="col-sm-7">
<input
class="form-control form-control-float"
type="number"
ng-model="org.service_fee_value"
id="service_fee_value_input"
name="service_fee_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_interchange_fee.$invalid && org_form.min_interchange_fee.$dirty}">
<label class="control-label col-sm-3" for="min_interchange_fee_input">Min
Interchange Fee</label>
<div class="col-sm-7">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_interchange_fee_value"
id="min_interchange_fee_input"
name="min_interchange_fee"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_service_fee.$invalid && org_form.min_service_fee.$dirty}">
<label class="control-label col-sm-3" for="min_service_fee_input">Min
Service Fee</label>
<div class="col-sm-7">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_service_fee_value"
id="min_service_fee_input"
name="min_service_fee"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- APS end-->
<div class="form-group"
ng-class="{'has-error':org_form.alipayonline_rate_value.$invalid && org_form.alipayonline_rate_value.$dirty}">
<label class="control-label col-sm-2" for="alipayonline_rate_value_input">AlipayOnline
Rate *</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipayonline_rate_value"
id="alipayonline_rate_value_input"
name="alipayonline_rate_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.cb_bankpay_rate_value.$invalid && org_form.cb_bankpay_rate_value.$dirty}">
<label class="control-label col-sm-2" for="cb_bankpay_rate_value_input">CB
BankPay Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.cb_bankpay_rate_value"
id="cb_bankpay_rate_value_input"
name="cb_bankpay_rate_value"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!--<div class="form-group" ng-class="{'has-error':org_form.rpaypmt_card_rate_value.$invalid && org_form.rpaypmt_card_rate_value.$dirty}">
<label class="control-label col-sm-2" for="rpaypmt_card_rate_value_input">Card Payment Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.rpaypmt_card_rate_value" id="rpaypmt_card_rate_value_input" name="rpaypmt_card_rate_value" max="100" min="0" required>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
<!-- 卡支付-国内卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_domestic_card_rate_value.$invalid && org_form.rpaypmt_domestic_card_rate_value.$dirty}">
<label class="control-label col-sm-2"
for="rpaypmt_domestic_card_rate_value_input">Domestic Card Payment Rate
*</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_domestic_card_rate_value"
id="rpaypmt_domestic_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- 卡支付-国际卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_overseas_card_rate_value.$invalid && org_form.rpaypmt_overseas_card_rate_value.$dirty}">
<label class="control-label col-sm-2"
for="rpaypmt_overseas_card_rate_value_input">International Card Payment
Rate *</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_overseas_card_rate_value"
id="rpaypmt_overseas_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_dd_rate_value.$invalid && org_form.rpaypmt_dd_rate_value.$dirty}">
<label class="control-label col-sm-2" for="rpaypmt_dd_rate_value_input">Direct
Debit Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_dd_rate_value"
id="rpaypmt_dd_rate_value_input"
name="rpaypmt_dd_rate_value"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div>
<div class="form-group"
ng-class="{'has-error':org_form.min_wechat_rate.$invalid && org_form.min_wechat_rate.$dirty}">
<label class="control-label col-sm-2" for="min_wechat_rate_input">Min Wechat
Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_wechat_rate"
id="min_wechat_rate_input"
name="min_wechat_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipay_rate.$invalid && org_form.min_alipay_rate.$dirty}">
<label class="control-label col-sm-2" for="min_alipay_rate_input">Min Alipay
Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipay_rate"
id="min_alipay_rate_input"
name="min_alipay_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipayonline_rate.$invalid && org_form.min_alipayonline_rate.$dirty}">
<label class="control-label col-sm-2" for="min_alipayonline_rate_input">Min
Alipayonline Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipayonline_rate"
id="min_alipayonline_rate_input"
name="min_alipayonline_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_cb_bankpay_rate.$invalid && org_form.min_cb_bankpay_rate.$dirty}">
<label class="control-label col-sm-2" for="min_cb_bankpay_rate_input">Min CB
BankPay Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_cb_bankpay_rate"
id="min_cb_bankpay_rate_input"
name="min_cb_bankpay_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- <div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_card_rate.$invalid && org_form.min_rpaypmt_card_rate.$dirty}">
<label class="control-label col-sm-2" for="min_rpaypmt_card_rate_input">Min Card Payment Rate</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_rpaypmt_card_rate"
id="min_rpaypmt_card_rate_input" name="min_rpaypmt_card_rate" max="100" min="0">
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_domestic_card_rate.$invalid && org_form.min_rpaypmt_domestic_card_rate.$dirty}">
<label class="control-label col-sm-2"
for="min_rpaypmt_domestic_card_rate_input">Min Domestic Card Payment
Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_domestic_card_rate"
id="min_rpaypmt_domestic_card_rate_input"
name="min_rpaypmt_domestic_card_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_overseas_card_rate.$invalid && org_form.min_rpaypmt_overseas_card_rate.$dirty}">
<label class="control-label col-sm-2"
for="min_rpaypmt_overseas_card_rate_input">Min International Card Payment
Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_overseas_card_rate"
id="min_rpaypmt_overseas_card_rate_input"
name="min_rpaypmt_overseas_card_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_dd_rate.$invalid && org_form.min_rpaypmt_dd_rate.$dirty}">
<label class="control-label col-sm-2" for="min_rpaypmt_dd_rate_input">Min Direct
Debit Rate</label>
<div class="col-sm-8">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_dd_rate"
id="min_rpaypmt_dd_rate_input"
name="min_rpaypmt_dd_rate"
max="100"
min="0"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
<div class="form-group"
@ -537,6 +179,533 @@
maxlength="500"></textarea>
</div>
</div>
<div ng-if="org.type == 0">
<div class="panel panel-default">
<div class="panel-heading">China Wallet</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<div class="form-group"
ng-class="{'has-error':org_form.wechat_rate_value.$invalid && org_form.wechat_rate_value.$dirty}">
<label class="control-label col-sm-5" for="wechat_rate_value_input">Wechat
Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.wechat_rate_value"
id="wechat_rate_value_input"
name="wechat_rate_value"
max="100"
min="0"
required
style="width: 100% !important"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.alipay_rate_value.$invalid && org_form.alipay_rate_value.$dirty}">
<label class="control-label col-sm-5" for="alipay_rate_value_input">Alipay
Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipay_rate_value"
id="alipay_rate_value_input"
name="alipay_rate_value"
max="100"
min="0"
required
style="width: 100% !important"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.alipayonline_rate_value.$invalid && org_form.alipayonline_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="alipayonline_rate_value_input">AlipayOnline
Rate *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipayonline_rate_value"
id="alipayonline_rate_value_input"
name="alipayonline_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.cb_bankpay_rate_value.$invalid && org_form.cb_bankpay_rate_value.$dirty}">
<label class="control-label col-sm-5" for="cb_bankpay_rate_value_input">CB
BankPay Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.cb_bankpay_rate_value"
id="cb_bankpay_rate_value_input"
name="cb_bankpay_rate_value"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!--<div class="form-group" ng-class="{'has-error':org_form.rpaypmt_card_rate_value.$invalid && org_form.rpaypmt_card_rate_value.$dirty}">
<label class="control-label col-sm-2" for="rpaypmt_card_rate_value_input">Card Payment Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.rpaypmt_card_rate_value" id="rpaypmt_card_rate_value_input" name="rpaypmt_card_rate_value" max="100" min="0" required>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
</div>
<div class="col-sm-6">
<div class="form-group"
ng-class="{'has-error':org_form.min_wechat_rate.$invalid && org_form.min_wechat_rate.$dirty}">
<label class="control-label col-sm-5" for="min_wechat_rate_input">Min
Wechat
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_wechat_rate"
id="min_wechat_rate_input"
name="min_wechat_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipay_rate.$invalid && org_form.min_alipay_rate.$dirty}">
<label class="control-label col-sm-5" for="min_alipay_rate_input">Min
Alipay
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipay_rate"
id="min_alipay_rate_input"
name="min_alipay_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipayonline_rate.$invalid && org_form.min_alipayonline_rate.$dirty}">
<label class="control-label col-sm-5" for="min_alipayonline_rate_input">Min
Alipayonline Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipayonline_rate"
id="min_alipayonline_rate_input"
name="min_alipayonline_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_cb_bankpay_rate.$invalid && org_form.min_cb_bankpay_rate.$dirty}">
<label class="control-label col-sm-5" for="min_cb_bankpay_rate_input">Min
CB
BankPay Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_cb_bankpay_rate"
id="min_cb_bankpay_rate_input"
name="min_cb_bankpay_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- <div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_card_rate.$invalid && org_form.min_rpaypmt_card_rate.$dirty}">
<label class="control-label col-sm-2" for="min_rpaypmt_card_rate_input">Min Card Payment Rate</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_rpaypmt_card_rate"
id="min_rpaypmt_card_rate_input" name="min_rpaypmt_card_rate" max="100" min="0">
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Card Payment Rate</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<!-- 卡支付-国内卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_domestic_card_rate_value.$invalid && org_form.rpaypmt_domestic_card_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="rpaypmt_domestic_card_rate_value_input">Domestic Card
Payment Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_domestic_card_rate_value"
id="rpaypmt_domestic_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- 卡支付-国际卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_overseas_card_rate_value.$invalid && org_form.rpaypmt_overseas_card_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="rpaypmt_overseas_card_rate_value_input">International Card
Payment
Rate *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_overseas_card_rate_value"
id="rpaypmt_overseas_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_dd_rate_value.$invalid && org_form.rpaypmt_dd_rate_value.$dirty}">
<label class="control-label col-sm-5" for="rpaypmt_dd_rate_value_input">Direct
Debit Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_dd_rate_value"
id="rpaypmt_dd_rate_value_input"
name="rpaypmt_dd_rate_value"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_domestic_card_rate.$invalid && org_form.min_rpaypmt_domestic_card_rate.$dirty}">
<label class="control-label col-sm-5"
for="min_rpaypmt_domestic_card_rate_input">Min Domestic Card
Payment
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_domestic_card_rate"
id="min_rpaypmt_domestic_card_rate_input"
name="min_rpaypmt_domestic_card_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_overseas_card_rate.$invalid && org_form.min_rpaypmt_overseas_card_rate.$dirty}">
<label class="control-label col-sm-5"
for="min_rpaypmt_overseas_card_rate_input">Min International Card
Payment
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_overseas_card_rate"
id="min_rpaypmt_overseas_card_rate_input"
name="min_rpaypmt_overseas_card_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_dd_rate.$invalid && org_form.min_rpaypmt_dd_rate.$dirty}">
<label class="control-label col-sm-5" for="min_rpaypmt_dd_rate_input">Min
Direct
Debit Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_dd_rate"
id="min_rpaypmt_dd_rate_input"
name="min_rpaypmt_dd_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">A+ Rate</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<div class="form-group"
ng-class="{'has-error':org_form.retail_interchange_fee_value.$invalid && org_form.retail_interchange_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="retail_interchange_fee_value_input">
Retail Interchange Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.retail_interchange_fee_value"
id="retail_interchange_fee_value_input"
name="retail_interchange_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.retail_service_fee_value.$invalid && org_form.retail_service_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="retail_service_fee_value_input">
Retail Service Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.retail_service_fee_value"
id="retail_service_fee_value_input"
name="retail_service_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.online_interchange_fee_value.$invalid && org_form.online_interchange_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="online_interchange_fee_value_input">
Online Interchange Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.online_interchange_fee_value"
id="online_interchange_fee_value_input"
name="online_interchange_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.online_service_fee_value.$invalid && org_form.online_service_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="online_service_fee_value_input">
Online Service Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.online_service_fee_value"
id="online_service_fee_value_input"
name="online_service_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group"
ng-class="{'has-error':org_form.min_retail_interchange_fee.$invalid && org_form.min_retail_interchange_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_retail_interchange_fee_input">Min Retail
Interchange Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_retail_interchange_fee_value"
id="min_retail_interchange_fee_input"
name="min_retail_interchange_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_retail_service_fee.$invalid && org_form.min_retail_service_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_retail_service_fee_input">Min Retail
Service Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_retail_service_fee_value"
id="min_retail_service_fee_input"
name="min_retail_service_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_online_interchange_fee.$invalid && org_form.min_online_interchange_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_online_interchange_fee_input">Min
Online Interchange Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_online_interchange_fee_value"
id="min_online_interchange_fee_input"
name="min_online_interchange_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_online_service_fee.$invalid && org_form.min_online_service_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_online_service_fee_input">Min
Online Service Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_online_service_fee_value"
id="min_online_service_fee_input"
name="min_online_service_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="btn-group margin-bottom margin-top">
<button class="btn btn-success" type="button" ng-click="update(org_form)">Save</button>

@ -104,149 +104,6 @@
</div>
</div>
</div>
<div ng-if="org.commission_type == 1">
<div class="form-group" ng-class="{'has-error':org_form.alipay_rate_value.$invalid && org_form.alipay_rate_value.$dirty}">
<label class="control-label col-sm-2" for="alipay_rate_value_input">Alipay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.alipay_rate_value" id="alipay_rate_value_input" name="alipay_rate_value" max="100" min="0"readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.wechat_rate_value.$invalid && org_form.wechat_rate_value.$dirty}">
<label class="control-label col-sm-2" for="wechat_rate_value_input">Wechat Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.wechat_rate_value" id="wechat_rate_value_input" name="wechat_rate_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- APS start -->
<div class="form-group">
<label class="control-label col-sm-2">A+(APS)</label>
</div>
<div class="form-group" ng-class="{'has-error':org_form.wechat_rate_value.$invalid && org_form.wechat_rate_value.$dirty}">
<label class="control-label col-sm-3" for="wechat_rate_value_input">Interchange Fee *</label>
<div class="col-sm-7">
<input class="form-control form-control-float" type="number" ng-model="org.interchange_fee_value" id="interchange_fee_value_input" name="interchange_fee_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.service_fee_value.$invalid && org_form.service_fee_value.$dirty}">
<label class="control-label col-sm-3" for="service_fee_value_input">Service Fee *</label>
<div class="col-sm-7">
<input class="form-control form-control-float" type="number" ng-model="org.service_fee_value" id="service_fee_value_input" name="service_fee_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.min_interchange_fee_value.$invalid && org_form.min_interchange_fee_value.$dirty}">
<label class="control-label col-sm-3" for="min_interchange_fee_value_input">Min Interchange Fee</label>
<div class="col-sm-7">
<input class="form-control form-control-float" type="number" ng-model="org.min_interchange_fee_value" id="min_interchange_fee_value_input" name="min_interchange_fee_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.min_service_fee_value.$invalid && org_form.min_service_fee_value.$dirty}">
<label class="control-label col-sm-3" for="min_service_fee_value_input">Min Service Fee</label>
<div class="col-sm-7">
<input class="form-control form-control-float" type="number" ng-model="org.min_service_fee_value" id="min_service_fee_value_input" name="min_service_fee_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<!-- APS end-->
<div class="form-group" ng-class="{'has-error':org_form.bestpay_rate_value.$invalid && org_form.bestpay_rate_value.$dirty}">
<label class="control-label col-sm-2" for="bestpay_rate_value_input">Bestpay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.bestpay_rate_value" id="bestpay_rate_value_input" name="bestpay_rate_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.jd_rate_value.$invalid && org_form.jd_rate_value.$dirty}">
<label class="control-label col-sm-2" for="jd_rate_value_input">JD Pay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.jd_rate_value" id="jd_rate_value_input" name="jd_rate_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.alipayonline_rate_value.$invalid && org_form.alipayonline_rate_value.$dirty}">
<label class="control-label col-sm-2" for="alipayonline_rate_value_input">AlipayOnline Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.alipayonline_rate_value" id="alipayonline_rate_value_input" name="alipayonline_rate_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group" ng-class="{'has-error':org_form.cb_bankpay_rate_value.$invalid && org_form.cb_bankpay_rate_value.$dirty}">
<label class="control-label col-sm-2" for="cb_bankpay_rate_value_input">CBBank Pay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.cb_bankpay_rate_value" id="cb_bankpay_rate_value_input" name="cb_bankpay_rate_value" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div>
<div class="form-group"
ng-class="{'has-error':org_form.min_wechat_rate.$invalid && org_form.min_wechat_rate.$dirty}">
<label class="control-label col-sm-2" for="min_wechat_rate_input">Min Wechat Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_wechat_rate"
id="min_wechat_rate_input" name="min_wechat_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipay_rate.$invalid && org_form.min_alipay_rate.$dirty}">
<label class="control-label col-sm-2" for="min_alipay_rate_input">Min Alipay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_alipay_rate"
id="min_alipay_rate_input" name="min_alipay_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_bestpay_rate.$invalid && org_form.min_bestpay_rate.$dirty}">
<label class="control-label col-sm-2" for="min_bestpay_rate_input">Min Bestpay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_bestpay_rate"
id="min_bestpay_rate_input" name="min_bestpay_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_jd_rate.$invalid && org_form.min_jd_rate.$dirty}">
<label class="control-label col-sm-2" for="min_jd_rate_input">Min Jd Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_jd_rate"
id="min_jd_rate_input" name="min_jd_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipayonline_rate.$invalid && org_form.min_alipayonline_rate.$dirty}">
<label class="control-label col-sm-2" for="min_alipayonline_rate_input">Min Alipayonline Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_alipayonline_rate"
id="min_alipayonline_rate_input" name="min_alipayonline_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_cb_bankpay_rate.$invalid && org_form.min_cb_bankpay_rate.$dirty}">
<label class="control-label col-sm-2" for="min_cb_bankpay_rate_input">Min CBBank Pay Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_cb_bankpay_rate"
id="min_cb_bankpay_rate_input" name="min_cb_bankpay_rate" max="100" min="0" readonly>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
@ -320,6 +177,533 @@
id="remark-input" maxlength="500"></textarea>
</div>
</div>
<div ng-if="org.type == 0">
<div class="panel panel-default">
<div class="panel-heading">China Wallet</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<div class="form-group"
ng-class="{'has-error':org_form.wechat_rate_value.$invalid && org_form.wechat_rate_value.$dirty}">
<label class="control-label col-sm-5" for="wechat_rate_value_input">Wechat
Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.wechat_rate_value"
id="wechat_rate_value_input"
name="wechat_rate_value"
max="100"
min="0"
required
style="width: 100% !important"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.alipay_rate_value.$invalid && org_form.alipay_rate_value.$dirty}">
<label class="control-label col-sm-5" for="alipay_rate_value_input">Alipay
Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipay_rate_value"
id="alipay_rate_value_input"
name="alipay_rate_value"
max="100"
min="0"
required
style="width: 100% !important"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.alipayonline_rate_value.$invalid && org_form.alipayonline_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="alipayonline_rate_value_input">AlipayOnline
Rate *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.alipayonline_rate_value"
id="alipayonline_rate_value_input"
name="alipayonline_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.cb_bankpay_rate_value.$invalid && org_form.cb_bankpay_rate_value.$dirty}">
<label class="control-label col-sm-5" for="cb_bankpay_rate_value_input">CB
BankPay Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.cb_bankpay_rate_value"
id="cb_bankpay_rate_value_input"
name="cb_bankpay_rate_value"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!--<div class="form-group" ng-class="{'has-error':org_form.rpaypmt_card_rate_value.$invalid && org_form.rpaypmt_card_rate_value.$dirty}">
<label class="control-label col-sm-2" for="rpaypmt_card_rate_value_input">Card Payment Rate *</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.rpaypmt_card_rate_value" id="rpaypmt_card_rate_value_input" name="rpaypmt_card_rate_value" max="100" min="0" required>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
</div>
<div class="col-sm-6">
<div class="form-group"
ng-class="{'has-error':org_form.min_wechat_rate.$invalid && org_form.min_wechat_rate.$dirty}">
<label class="control-label col-sm-5" for="min_wechat_rate_input">Min
Wechat
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_wechat_rate"
id="min_wechat_rate_input"
name="min_wechat_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipay_rate.$invalid && org_form.min_alipay_rate.$dirty}">
<label class="control-label col-sm-5" for="min_alipay_rate_input">Min
Alipay
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipay_rate"
id="min_alipay_rate_input"
name="min_alipay_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_alipayonline_rate.$invalid && org_form.min_alipayonline_rate.$dirty}">
<label class="control-label col-sm-5" for="min_alipayonline_rate_input">Min
Alipayonline Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_alipayonline_rate"
id="min_alipayonline_rate_input"
name="min_alipayonline_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_cb_bankpay_rate.$invalid && org_form.min_cb_bankpay_rate.$dirty}">
<label class="control-label col-sm-5" for="min_cb_bankpay_rate_input">Min
CB
BankPay Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_cb_bankpay_rate"
id="min_cb_bankpay_rate_input"
name="min_cb_bankpay_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- <div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_card_rate.$invalid && org_form.min_rpaypmt_card_rate.$dirty}">
<label class="control-label col-sm-2" for="min_rpaypmt_card_rate_input">Min Card Payment Rate</label>
<div class="col-sm-8">
<input class="form-control form-control-float" type="number" ng-model="org.min_rpaypmt_card_rate"
id="min_rpaypmt_card_rate_input" name="min_rpaypmt_card_rate" max="100" min="0">
<span class="input-group-addon form-control-span">%</span>
</div>
</div>-->
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Card Payment Rate</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<!-- 卡支付-国内卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_domestic_card_rate_value.$invalid && org_form.rpaypmt_domestic_card_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="rpaypmt_domestic_card_rate_value_input">Domestic Card
Payment Rate
*</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_domestic_card_rate_value"
id="rpaypmt_domestic_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- 卡支付-国际卡费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_overseas_card_rate_value.$invalid && org_form.rpaypmt_overseas_card_rate_value.$dirty}">
<label class="control-label col-sm-5"
for="rpaypmt_overseas_card_rate_value_input">International Card
Payment
Rate *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_overseas_card_rate_value"
id="rpaypmt_overseas_card_rate_value_input"
name="rpaypmt_card_rate_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.rpaypmt_dd_rate_value.$invalid && org_form.rpaypmt_dd_rate_value.$dirty}">
<label class="control-label col-sm-5" for="rpaypmt_dd_rate_value_input">Direct
Debit Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.rpaypmt_dd_rate_value"
id="rpaypmt_dd_rate_value_input"
name="rpaypmt_dd_rate_value"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_domestic_card_rate.$invalid && org_form.min_rpaypmt_domestic_card_rate.$dirty}">
<label class="control-label col-sm-5"
for="min_rpaypmt_domestic_card_rate_input">Min Domestic Card
Payment
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_domestic_card_rate"
id="min_rpaypmt_domestic_card_rate_input"
name="min_rpaypmt_domestic_card_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<!-- 卡支付-国内卡最小费率配置 -->
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_overseas_card_rate.$invalid && org_form.min_rpaypmt_overseas_card_rate.$dirty}">
<label class="control-label col-sm-5"
for="min_rpaypmt_overseas_card_rate_input">Min International Card
Payment
Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_overseas_card_rate"
id="min_rpaypmt_overseas_card_rate_input"
name="min_rpaypmt_overseas_card_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_rpaypmt_dd_rate.$invalid && org_form.min_rpaypmt_dd_rate.$dirty}">
<label class="control-label col-sm-5" for="min_rpaypmt_dd_rate_input">Min
Direct
Debit Rate</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_rpaypmt_dd_rate"
id="min_rpaypmt_dd_rate_input"
name="min_rpaypmt_dd_rate"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">A+ Rate</div>
<div class="panel-body">
<div class="col-sm-6" ng-if="org.commission_type == 1">
<div class="form-group"
ng-class="{'has-error':org_form.retail_interchange_fee_value.$invalid && org_form.retail_interchange_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="retail_interchange_fee_value_input">
Retail Interchange Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.retail_interchange_fee_value"
id="retail_interchange_fee_value_input"
name="retail_interchange_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.retail_service_fee_value.$invalid && org_form.retail_service_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="retail_service_fee_value_input">
Retail Service Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.retail_service_fee_value"
id="retail_service_fee_value_input"
name="retail_service_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.online_interchange_fee_value.$invalid && org_form.online_interchange_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="online_interchange_fee_value_input">
Online Interchange Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.online_interchange_fee_value"
id="online_interchange_fee_value_input"
name="online_interchange_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.online_service_fee_value.$invalid && org_form.online_service_fee_value.$dirty}">
<label class="control-label col-sm-5"
for="online_service_fee_value_input">
Online Service Fee *</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.online_service_fee_value"
id="online_service_fee_value_input"
name="online_service_fee_value"
max="100"
min="0"
required
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group"
ng-class="{'has-error':org_form.min_retail_interchange_fee.$invalid && org_form.min_retail_interchange_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_retail_interchange_fee_input">Min Retail
Interchange Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_retail_interchange_fee_value"
id="min_retail_interchange_fee_input"
name="min_retail_interchange_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_retail_service_fee.$invalid && org_form.min_retail_service_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_retail_service_fee_input">Min Retail
Service Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_retail_service_fee_value"
id="min_retail_service_fee_input"
name="min_retail_service_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_online_interchange_fee.$invalid && org_form.min_online_interchange_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_online_interchange_fee_input">Min
Online Interchange Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_online_interchange_fee_value"
id="min_online_interchange_fee_input"
name="min_online_interchange_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':org_form.min_online_service_fee.$invalid && org_form.min_online_service_fee.$dirty}">
<label class="control-label col-sm-5"
for="min_online_service_fee_input">Min
Online Service Fee</label>
<div class="col-sm-5">
<div class="input-group">
<input
class="form-control form-control-float"
type="number"
ng-model="org.min_online_service_fee_value"
id="min_online_service_fee_input"
name="min_online_service_fee"
max="100"
min="0"
style="width: 100% !important;"
/>
<span class="input-group-addon form-control-span">%</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="btn-group margin-bottom margin-top">
<button class="btn btn-success" type="button" ng-click="update(org_form)">Save

@ -3155,6 +3155,8 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
'$state',
function ($scope, $rootScope, $http, $uibModal, commonDialog, $sce, $state) {
$scope.bankCtrl = {edit: true, rate_name: 'Wechat', modify_min_settle: false}
$scope.cardBankCtrl = {edit: true, rate_name: 'rpaypmt_card', modify_min_settle: false}
$scope.apsBankCtrl = {edit: true, rate_name: 'ApsInStore', modify_min_settle: false}
$scope.init = {
skip_clearing: false,
tax_in_surcharge: false,
@ -3383,14 +3385,14 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
)
}
$scope.newAlipayApsRate = function () {
$scope.newAlipayApsRate = function (rateName) {
$uibModal
.open({
templateUrl: '/static/payment/partner/templates/partner_new_alipay_aps_rate.html',
controller: 'newAlipayApsRateDialogCtrl',
resolve: {
rate: function () {
return {rate_name: "AlipayAps", clean_days: 3}
return {rate_name: rateName, clean_days: 3}
},
sys_common_rate: function () {
return $http.get('/sys/partners/sys_rates')
@ -3745,18 +3747,24 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
if ($scope.rate.clean_days) {
switch ($scope.rate.clean_days) {
case '1': {
$scope.rate.interchange_fee_value = parseFloat($scope.sysRateConfig.t1.InterchangeFee)
$scope.rate.service_fee_value = parseFloat($scope.sysRateConfig.t1.ServiceFee)
$scope.rate.retail_interchange_fee_value = parseFloat($scope.sysRateConfig.t1.RetailInterchangeFee)
$scope.rate.retail_service_fee_value = parseFloat($scope.sysRateConfig.t1.RetailServiceFee)
$scope.rate.online_interchange_fee_value = parseFloat($scope.sysRateConfig.t1.OnlineInterchangeFee)
$scope.rate.online_service_fee_value = parseFloat($scope.sysRateConfig.t1.OnlineServiceFee)
break
}
case '2': {
$scope.rate.interchange_fee_value = parseFloat($scope.sysRateConfig.t2.InterchangeFee)
$scope.rate.service_fee_value = parseFloat($scope.sysRateConfig.t2.ServiceFee)
$scope.rate.retail_interchange_fee_value = parseFloat($scope.sysRateConfig.t2.RetailInterchangeFee)
$scope.rate.retail_service_fee_value = parseFloat($scope.sysRateConfig.t2.RetailServiceFee)
$scope.rate.online_interchange_fee_value = parseFloat($scope.sysRateConfig.t2.OnlineInterchangeFee)
$scope.rate.online_service_fee_value = parseFloat($scope.sysRateConfig.t2.OnlineServiceFee)
break
}
case '3': {
$scope.rate.interchange_fee_value = parseFloat($scope.sysRateConfig.t3.InterchangeFee)
$scope.rate.service_fee_value = parseFloat($scope.sysRateConfig.t3.ServiceFee)
$scope.rate.retail_interchange_fee_value = parseFloat($scope.sysRateConfig.t3.RetailInterchangeFee)
$scope.rate.retail_service_fee_value = parseFloat($scope.sysRateConfig.t3.RetailServiceFee)
$scope.rate.online_interchange_fee_value = parseFloat($scope.sysRateConfig.t3.OnlineInterchangeFee)
$scope.rate.online_service_fee_value = parseFloat($scope.sysRateConfig.t3.OnlineServiceFee)
break
}
}
@ -7392,8 +7400,8 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
if ($scope.subMerchantInfo.business_structure) {
$scope.subMerchantInfo.businessType = $scope.subMerchantInfo.business_structure != 'Registered body(Sole Trader)' ? 'ENTERPRISE' : 'INDIVIDUAL'
}
$scope.subMerchantInfo.shareholderName = $scope.subMerchantInfo.representativeInfo?$scope.subMerchantInfo.representativeInfo.representative_person:"";
$scope.subMerchantInfo.representativeName = $scope.subMerchantInfo.representativeInfo?$scope.subMerchantInfo.representativeInfo.representative_person:"";
$scope.subMerchantInfo.shareholderName = $scope.subMerchantInfo.representativeInfo ? $scope.subMerchantInfo.representativeInfo.representative_person : "";
$scope.subMerchantInfo.representativeName = $scope.subMerchantInfo.representativeInfo ? $scope.subMerchantInfo.representativeInfo.representative_person : "";
$scope.subMerchantInfo.storeAddress = $scope.subMerchantInfo.address;
$scope.subMerchantInfo.registrationNo = $scope.subMerchantInfo.acn ? $scope.subMerchantInfo.acn : $scope.subMerchantInfo.abn;
$scope.subMerchantInfo.storeMCC = $scope.subMerchantInfo.alipayindustry;

@ -236,11 +236,7 @@
</div>
<div class="panel panel-info">
<div class="panel-heading">
<h3>Rates <a class="text-success" role="button"
ng-if="partner.rate_editable && (('11'|withRole)||((!partner.approve_result||partner.approve_result>4) && ('111'|withRole)))"
ng-click="newRate()">
<i class="fa fa-plus"></i></a>
</h3>
<h3>China Wallet</h3>
</div>
<div class="panel-body">
<div class="row">
@ -255,9 +251,6 @@
<li role="presentation" ng-class="{active:bankCtrl.rate_name=='AlipayOnline'}"><a role="button"
ng-click="bankCtrl.rate_name='AlipayOnline'">Alipay(Online)</a>
</li>
<li role="presentation" ng-class="{active:bankCtrl.rate_name=='AlipayAps'}"><a role="button"
ng-click="bankCtrl.rate_name='AlipayAps'">A+(APS)</a>
</li>
<!-- <li role="presentation" ng-class="{active:bankCtrl.rate_name=='Bestpay'}"><a role="button"
ng-click="bankCtrl.rate_name='Bestpay'">Bestpay</a>
</li>
@ -273,36 +266,23 @@
ng-click="bankCtrl.rate_name='CB_BankPay'"
ng-if="sysconfig.active_channels.indexOf('CB_BankPay')!=-1">CB_BankPay</a>
</li>
<li role="presentation" ng-class="{active:bankCtrl.rate_name=='rpaypmt_card'}"><a role="button"
ng-click="bankCtrl.rate_name='rpaypmt_card'">Card
Payment</a></li>
<li role="presentation" ng-class="{active:bankCtrl.rate_name=='rpaypmt_dd'}"><a role="button"
ng-click="bankCtrl.rate_name='rpaypmt_dd'">Direct
Debit</a></li>
<a id="addCardPaymentRate" class="btn btn-warning" style="float: right" type="button"
ng-click="newCardPaymentRates()"
ng-if="(bankCtrl.rate_name=='rpaypmt_card'||bankCtrl.rate_name=='rpaypmt_dd') && ((partner.card_rate_editable && ('100'|withRole)) || ('11'|withRole))">
Add Card Payment Rates
</a>
<a id="addAlipayApsRate" class="btn btn-info" style="float: right;margin-right: 10px" type="button"
ng-if="bankCtrl.rate_name=='AlipayAps'"
ng-click="newAlipayApsRate()">
Add Alipay+(APS) Rate
<a id="addRate" class="btn btn-info" style="float: right;margin-right: 10px" type="button"
ng-if="partner.rate_editable && (('11'|withRole)||((!partner.approve_result||partner.approve_result>4) && ('111'|withRole)))"
ng-click="newRate()">
Add Rate
</a>
</ul>
<div class="table-responsive">
<table class="table table-bordered">
<thead ng-if="bankCtrl.rate_name != 'AlipayAps'">
<thead>
<tr>
<th>Rate Name</th>
<th ng-if="bankCtrl.rate_name!='rpaypmt_card'">Rate Value</th>
<th ng-if="bankCtrl.rate_name=='rpaypmt_card'">Domestic Rate Value</th>
<th ng-if="bankCtrl.rate_name=='rpaypmt_card'">International Rate Value</th>
<th>Rate Value</th>
<th>Transaction Fee</th>
<th>Active Time</th>
<th>Expire Time</th>
<th
ng-if="bankCtrl.rate_name=='Wechat' || bankCtrl.rate_name=='rpaypmt_card' ||bankCtrl.rate_name=='rpaypmt_dd'">
ng-if="bankCtrl.rate_name=='Wechat'">
Clean Days
</th>
<th>Update Time</th>
@ -311,34 +291,16 @@
<th style="text-align: center">Operation</th>
</tr>
</thead>
<thead ng-if="bankCtrl.rate_name == 'AlipayAps'">
<tr>
<th>Rate Name</th>
<th>Interchange Fee</th>
<th>Service Fee</th>
<th>Active Time</th>
<th>Expire Time</th>
<th>Update Time</th>
<th>Operator</th>
<th>Remark</th>
<th style="text-align: center">Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rate in rates|filter:{rate_name:bankCtrl.rate_name}:true"
ng-class="{'text-bold':rate.current,'success':rate.active}">
<td ng-bind="rate.rate_name"></td>
<td ng-if="bankCtrl.rate_name!='rpaypmt_card'" ng-bind="rate.rate_value + ' %'"></td>
<td ng-if="bankCtrl.rate_name=='rpaypmt_card'" ng-bind="rate.rate_value + ' %'"></td>
<td ng-if="bankCtrl.rate_name=='rpaypmt_card'"
ng-bind="rate.ext_rates.overseas_rate_value.rate + ' %/T+'+rate.ext_rates.overseas_rate_value.clean_days">
</td>
<td ng-if="bankCtrl.rate_name !='AlipayAps'" ng-bind="'$ '+rate.transaction_fee"></td>
<td ng-if="bankCtrl.rate_name =='AlipayAps'" ng-bind="rate.transaction_fee + ' %'"></td>
<td ng-bind="rate.rate_value + ' %'"></td>
<td ng-bind="'$ '+rate.transaction_fee"></td>
<td ng-bind="rate.active_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.expiry_time|date:'yyyy-MM-dd'"></td>
<td
ng-if="rate.rate_name=='Wechat' || bankCtrl.rate_name=='rpaypmt_card' ||bankCtrl.rate_name=='rpaypmt_dd'">
ng-if="rate.rate_name=='Wechat'">
T+{{rate.clean_days}}
</td>
<td ng-bind="rate.update_time|date:'yyyy-MM-dd'"></td>
@ -347,12 +309,6 @@
<td style="text-align: center">
<a role="button" ng-click="editRate(rate)" style="padding-right: 10px;"
ng-if="'011'|withRole"><i class="fa fa-edit"></i></a>
<span ng-if="(bankCtrl.rate_name=='rpaypmt_card' ||bankCtrl.rate_name=='rpaypmt_dd')
&& partner.upay_approve_result">
<span style="color: orange">(Promotional Offer)</span>
<a class="fa fa-cloud-download" target="_blank"
ng-href="/sys/partners/{{partner.client_moniker}}/export/aggregate/card_promotion_agree_pdf?rateid={{rate.client_rate_id}}"></a>
</span>
</td>
</tr>
</tbody>
@ -427,4 +383,132 @@
</div>
</div>
</div>
<!-- card payment -->
<div class="panel-heading">
<h3>Card Payment Rate</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-pills margin-bottom">
<li role="presentation" ng-class="{active:cardBankCtrl.rate_name=='rpaypmt_card'}"><a role="button"
ng-click="cardBankCtrl.rate_name='rpaypmt_card'">Card
Payment</a></li>
<!-- <li role="presentation" ng-class="{active:bankCtrl.rate_name=='rpaypmt_dd'}"><a role="button"-->
<!-- ng-click="bankCtrl.rate_name='rpaypmt_dd'">Direct-->
<!-- Debit</a></li>-->
<a id="addCardPaymentRate" class="btn btn-info" style="float: right" type="button"
ng-click="newCardPaymentRates()"
ng-if="((partner.card_rate_editable && ('100'|withRole)) || ('11'|withRole))">
Add Card Payment Rates
</a>
</ul>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th>Rate Name</th>
<th>Domestic Rate Value</th>
<th>International Rate Value</th>
<th>Transaction Fee</th>
<th>Active Time</th>
<th>Expire Time</th>
<th>Clean Days</th>
<th>Update Time</th>
<th>Operator</th>
<th>Remark</th>
<th style="text-align: center">Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rate in rates|filter:{rate_name:cardBankCtrl.rate_name}:true"
ng-class="{'text-bold':rate.current,'success':rate.active}">
<td ng-bind="rate.rate_name"></td>
<td ng-bind="rate.rate_value + ' %'"></td>
<td ng-bind="rate.ext_rates.overseas_rate_value.rate + ' %/T+'+rate.ext_rates.overseas_rate_value.clean_days">
</td>
<td ng-bind="'$ '+rate.transaction_fee"></td>
<td ng-bind="rate.active_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.expiry_time|date:'yyyy-MM-dd'"></td>
<td>T+{{rate.clean_days}}</td>
<td ng-bind="rate.update_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.operator_name||'系统生成'"></td>
<td ng-bind="rate.remark|limitTo:20" title="{{rate.remark}}"></td>
<td style="text-align: center">
<a role="button" ng-click="editRate(rate)" style="padding-right: 10px;"
ng-if="'011'|withRole"><i class="fa fa-edit"></i></a>
<span ng-if="partner.upay_approve_result">
<span style="color: orange">(Promotional Offer)</span>
<a class="fa fa-cloud-download" target="_blank"
ng-href="/sys/partners/{{partner.client_moniker}}/export/aggregate/card_promotion_agree_pdf?rateid={{rate.client_rate_id}}"></a>
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- APS -->
<div class="panel-heading">
<h3>A+</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-pills margin-bottom">
<li role="presentation" ng-class="{active:apsBankCtrl.rate_name=='ApsInStore'}"><a
role="button"
ng-click="apsBankCtrl.rate_name='ApsInStore'">A+(Retail)</a>
</li>
<li role="presentation" ng-class="{active:apsBankCtrl.rate_name=='ApsCashier'}"><a
role="button"
ng-click="apsBankCtrl.rate_name='ApsCashier'">A+(Online)</a>
</li>
<a id="addAlipayApsInStoreRate" class="btn btn-info" style="float: right;margin-right: 10px"
type="button"
ng-click="newAlipayApsRate(apsBankCtrl.rate_name)">
Add A+(APS) Rate
</a>
</ul>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th>Rate Name</th>
<th>Interchange Fee</th>
<th>Service Fee</th>
<th>Active Time</th>
<th>Expire Time</th>
<th>Update Time</th>
<th>Operator</th>
<th>Remark</th>
<th style="text-align: center">Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rate in rates|filter:{rate_name:apsBankCtrl.rate_name}:true"
ng-class="{'text-bold':rate.current,'success':rate.active}">
<td ng-bind="rate.rate_name"></td>
<td ng-bind="rate.rate_value + ' %'"></td>
<td ng-bind="rate.transaction_fee + ' %'"></td>
<td ng-bind="rate.active_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.expiry_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.update_time|date:'yyyy-MM-dd'"></td>
<td ng-bind="rate.operator_name||'系统生成'"></td>
<td ng-bind="rate.remark|limitTo:20" title="{{rate.remark}}"></td>
<td style="text-align: center">
<a role="button" ng-click="editRate(rate)" style="padding-right: 10px;"
ng-if="'011'|withRole"><i class="fa fa-edit"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>

@ -1,5 +1,5 @@
<div class="modal-header">
<h4>New Alipay APS Rate</h4>
<h4>New Alipay+ APS Rate</h4>
</div>
<div class="modal-body">
<div class="alert alert-danger" ng-if="errmsg" ng-bind="errmsg"></div>
@ -20,17 +20,17 @@
</div>
</div>
<!-- interchange fee -->
<!-- retail interchange fee -->
<div class="form-group"
ng-class="{'has-error':rate_from.interchange_fee_value.$invalid && rate_from.interchange_fee_value.$dirty}">
<label class="control-label col-sm-4" for="interchange_fee_value_input">Interchange Fee</label>
ng-class="{'has-error':rate_from.retail_interchange_fee_value.$invalid && rate_from.retail_interchange_fee_value.$dirty}">
<label class="control-label col-sm-4" for="retail_interchange_fee_value_input">Retail Interchange Fee</label>
<div class="col-sm-6">
<div class="input-group">
<input type="number" name="interchange_fee_value" stringToNumber2 class="form-control" ng-model="rate.interchange_fee_value"
min="0.6" max="10" step="0.1" id="interchange_fee_value_input" required>
<input type="number" name="retail_interchange_fee_value" stringToNumber2 class="form-control" ng-model="rate.retail_interchange_fee_value"
min="0.6" max="10" step="0.1" id="retail_interchange_fee_value_input" required>
<div class="input-group-addon">%</div>
</div>
<div ng-messages="rate_from.interchange_fee_value.$error" ng-if="rate_from.interchange_fee_value.$dirty">
<div ng-messages="rate_from.retail_interchange_fee_value.$error" ng-if="rate_from.retail_interchange_fee_value.$dirty">
<div class="small text-danger" ng-message="max">
<i class="glyphicon glyphicon-alert"></i> No more than 10.0%
</div>
@ -44,17 +44,66 @@
</div>
</div>
<!-- service fee -->
<!-- retail service fee -->
<div class="form-group"
ng-class="{'has-error':rate_from.service_fee_value.$invalid && rate_from.service_fee_value.$dirty}">
<label class="control-label col-sm-4" for="service_fee_value_input">Service Fee</label>
ng-class="{'has-error':rate_from.retail_service_fee_value.$invalid && rate_from.retail_service_fee_value.$dirty}">
<label class="control-label col-sm-4" for="retail_service_fee_value_input">Retail Service Fee</label>
<div class="col-sm-6">
<div class="input-group">
<input type="number" name="service_fee_value" stringToNumber2 class="form-control" ng-model="rate.service_fee_value"
min="0.6" max="10" step="0.1" id="service_fee_value_input" required>
<input type="number" name="retail_service_fee_value" stringToNumber2 class="form-control" ng-model="rate.retail_service_fee_value"
min="0.6" max="10" step="0.1" id="retail_service_fee_value_input" required>
<div class="input-group-addon">%</div>
</div>
<div ng-messages="rate_from.service_fee_value.$error" ng-if="rate_from.service_fee_value.$dirty">
<div ng-messages="rate_from.retail_service_fee_value.$error" ng-if="rate_from.retail_service_fee_value.$dirty">
<div class="small text-danger" ng-message="max">
<i class="glyphicon glyphicon-alert"></i> No more than 10.0%
</div>
<div class="small text-danger" ng-message="min">
<i class="glyphicon glyphicon-alert"></i> No less than 0.6%
</div>
<div class="small text-danger" ng-message="required">
<i class="glyphicon glyphicon-alert"></i> Required Field
</div>
</div>
</div>
</div>
<!-- online interchange fee -->
<div class="form-group"
ng-class="{'has-error':rate_from.online_interchange_fee_value.$invalid && rate_from.online_interchange_fee_value.$dirty}">
<label class="control-label col-sm-4" for="online_interchange_fee_value_input">Online Interchange Fee</label>
<div class="col-sm-6">
<div class="input-group">
<input type="number" name="online_interchange_fee_value" stringToNumber2 class="form-control" ng-model="rate.online_interchange_fee_value"
min="0.6" max="10" step="0.1" id="online_interchange_fee_value_input" required>
<div class="input-group-addon">%</div>
</div>
<div ng-messages="rate_from.online_interchange_fee_value.$error" ng-if="rate_from.online_interchange_fee_value.$dirty">
<div class="small text-danger" ng-message="max">
<i class="glyphicon glyphicon-alert"></i> No more than 10.0%
</div>
<div class="small text-danger" ng-message="min">
<i class="glyphicon glyphicon-alert"></i> No less than 0.6%
</div>
<div class="small text-danger" ng-message="required">
<i class="glyphicon glyphicon-alert"></i> Required Field
</div>
</div>
</div>
</div>
<!-- online service fee -->
<div class="form-group"
ng-class="{'has-error':rate_from.online_service_fee_value.$invalid && rate_from.online_service_fee_value.$dirty}">
<label class="control-label col-sm-4" for="online_service_fee_value_input">Online Service Fee</label>
<div class="col-sm-6">
<div class="input-group">
<input type="number" name="online_service_fee_value" stringToNumber2 class="form-control" ng-model="rate.online_service_fee_value"
min="0.6" max="10" step="0.1" id="online_service_fee_value_input" required>
<div class="input-group-addon">%</div>
</div>
<div ng-messages="rate_from.online_service_fee_value.$error" ng-if="rate_from.online_service_fee_value.$dirty">
<div class="small text-danger" ng-message="max">
<i class="glyphicon glyphicon-alert"></i> No more than 10.0%
</div>

@ -1,6 +1,6 @@
<div class="modal-header">
<h4>New {{cardRateConfig.title}} Rate</h4>
<a role="button" ng-click="switchCardRateConfig()"><i class="fa fa-refresh"></i>Switch {{card_payment_switch_title}} Rate Config</a>
<!-- <a role="button" ng-click="switchCardRateConfig()"><i class="fa fa-refresh"></i>Switch {{card_payment_switch_title}} Rate Config</a>-->
</div>
<div class="modal-body">
<div class="alert alert-danger" ng-if="errmsg" ng-bind="errmsg"></div>

@ -144,24 +144,19 @@
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYAPS'}"
ng-click="params.channel='ALIPAYAPS';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JDpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HFpay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='APSINSTORE'}"
ng-click="params.channel='APSINSTORE';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='APSCASHIER'}"
ng-click="params.channel='APSCASHIER';loadTradeLogs(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
<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'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a>
</p>
</div>
</div>
@ -377,7 +372,7 @@
<img src="/static/images/alipay_sign.png" uib-tooltip="AlipayOnline"
ng-if="trade.channel=='AlipayOnline'" />
<img src="/static/images/alipay_aps.jpg" style="height: 25px" uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsInStore'||trade.channel=='ApsCashier'" />
<img src="/static/images/jd_sign.png" uib-tooltip="JD Pay" ng-if="trade.channel=='jd'" />
<img src="/static/images/hf_sign.png" uib-tooltip="HF Pay" ng-if="trade.channel=='hf'" />
<img src="/static/images/rpayplus_sign.png" uib-tooltip="RPay+"

@ -550,15 +550,20 @@
<!--AlipayCN支付渠道切换-->
<div class="panel panel-default" ng-if="(('111'|withRole))">
<div class="panel-heading">AlipayCN channel replace</div>
<div class="panel-heading">AlipayCN Channel Configuration</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group col-sm-4">
<label class="col-xs-6 control-label">AlipayCN channel</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="paymentInfo.alipay_cn_switch" bs-switch switch-on-text="Alipay+(APS)"
switch-off-text="Alipay"
ng-change="switchAlipayCn(paymentInfo.client_id,paymentInfo.aps_config_id,paymentInfo.alipay_cn_switch)">
<label class="radio-inline">
<input type="radio" value="0" ng-model="paymentInfo.alipay_cn_switch" ng-change="switchAlipayCn(paymentInfo.client_id,paymentInfo.aps_config_id,paymentInfo.alipay_cn_switch)">
Alipay
</label>
<label class="radio-inline">
<input type="radio" value="1" ng-model="paymentInfo.alipay_cn_switch" ng-change="switchAlipayCn(paymentInfo.client_id,paymentInfo.aps_config_id,paymentInfo.alipay_cn_switch)">
Alipay+(APS)
</label>
</div>
</div>
</div>

@ -242,7 +242,7 @@
<div class="flex-between">
<div class="flex-align-center">
<img src="/static/images/alipay_online.png" style="width: 16px;height: 16px;"
<img src="/static/images/alipay_aps_big.svg" style="width: 20px;height: 20px;"
uib-tooltip="AlipayPlus" />
<h5 style="margin-left: 5px;">
Alipay+(Retail) : <span ng-bind="partnerInfo.client_moniker"></span>
@ -281,7 +281,7 @@
<div class="flex-between">
<div class="flex-align-center">
<img src="/static/images/alipay_online.png" style="width: 16px;height: 16px;"
<img src="/static/images/alipay_aps_big.svg" style="width: 20px;height: 20px;"
uib-tooltip="AlipayPlus" />
<h5 style="margin-left: 5px;">
Alipay+(Online) : <span ng-bind="partnerInfo.client_moniker"></span>

@ -155,8 +155,12 @@
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYAPS'}"
ng-click="params.channel='ALIPAYAPS';loadTradeLogs(1)">Alipay+</a>
ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';loadTradeLogs(1)">Alipay+</a>
|
<a role="button"
ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';loadTradeLogs(1)">Alipay+(Online)</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
@ -541,7 +545,7 @@
<img src="/static/images/direct_debit_sign.png"
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
<img src="/static/images/alipay_aps.jpg" style="height: 25px" uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsInStore'||trade.channel=='ApsCashier'" />
{{trade.order_id2}}<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>

@ -156,15 +156,18 @@
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button"
ng-class="{'bg-primary':params.channel=='ALIPAYAPS'}"
ng-click="params.channel='ALIPAYAPS';loadTradeLogs(1)">Alipay+</a>
ng-class="{'bg-primary':params.channel=='ApsInStore'}"
ng-click="params.channel='ApsInStore';loadTradeLogs(1)">Alipay+</a>
|
<a role="button"
ng-class="{'bg-primary':params.channel=='ApsCashier'}"
ng-click="params.channel='ApsCashier';loadTradeLogs(1)">Alipay+(Online)</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAYPMT_CARD'}"
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a> |
<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_CARD';loadTradeLogs(1)">Card Payment</a>
</p>
</div>
</div>
@ -375,7 +378,7 @@
<img src="/static/images/direct_debit_sign.png"
uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
<img src="/static/images/alipay_aps.jpg" style="height: 25px" uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsInStore'||trade.channel=='ApsCashier'" />
{{trade.order_id}}
</td>
<td>

@ -135,24 +135,17 @@
ng-click="params.channel='ALIPAY';loadTradeLogs(1)">Alipay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYAPS'}"
ng-click="params.channel='ALIPAYAPS';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='APSINSTORE'}"
ng-click="params.channel='APSINSTORE';loadTradeLogs(1)">Alipay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='APSCASHIER'}"
ng-click="params.channel='APSCASHIER';loadTradeLogs(1)">Alipay+(Online)</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a> |
<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'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct Debit</a>
ng-click="params.channel='RPAYPMT_CARD';loadTradeLogs(1)">Card Payment</a>
</p>
</div>
</div>
@ -350,7 +343,7 @@
<img src="/static/images/card_payment_sign.png" uib-tooltip="Card Payment" ng-if="trade.channel=='rpaypmt_card'"/>
<img src="/static/images/direct_debit_sign.png" uib-tooltip="Direct Debit" ng-if="trade.channel=='rpaypmt_dd'"/>
<img src="/static/images/alipay_aps.jpg" style="height: 25px" uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsInStore'||trade.channel=='ApsCashier'" />
{{trade.order_id}}
</td>
<td>

@ -214,8 +214,11 @@
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYPAPS'}"
ng-click="params.channel='ALIPAYPAPS';loadTradeLogs(1)">Alipay+</a>
<a role="button" ng-class="{'bg-primary':params.channel=='APSINSTORE'}"
ng-click="params.channel='APSINSTORE';loadTradeLogs(1)">Alipay+</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='APSCASHIER'}"
ng-click="params.channel='APSCASHIER';loadTradeLogs(1)">Alipay+(Online)</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay+</a> |
@ -733,7 +736,7 @@
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='lazada_wallet_my'" />
<img src="/static/images/alipay_aps.jpg" style="height: 25px"
uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsInStore'||trade.channel=='ApsCashier'" />
{{trade.order_id}}<span
ng-if="trade.source!='system' && trade.source!=null && trade.incremental_surcharge != null"><i
class="fa fa-question-circle-o"

@ -191,29 +191,19 @@
ng-class="{'bg-primary':params.channel=='ALIPAYONLINE'}"
ng-click="params.channel='ALIPAYONLINE';loadTradeLogs(1)">AlipayOnline</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='ALIPAYAPS'}"
ng-click="params.channel='ALIPAYAPS';loadTradeLogs(1)">Alipay+</a>
<a role="button" ng-class="{'bg-primary':params.channel=='APSINSTORE'}"
ng-click="params.channel='APSINSTORE';loadTradeLogs(1)">Alipay+</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='APSCASHIER'}"
ng-click="params.channel='APSCASHIER';loadTradeLogs(1)">Alipay+(Online)</a>
|
<a role="button" ng-class="{'bg-primary':params.channel=='BESTPAY'}"
ng-click="params.channel='BESTPAY';loadTradeLogs(1)">BestPay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='JD'}"
ng-click="params.channel='JD';loadTradeLogs(1)">JD Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='HF'}"
ng-click="params.channel='HF';loadTradeLogs(1)">HF Pay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='RPAY'}"
ng-click="params.channel='RPAY';loadTradeLogs(1)">RPay +</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='YEEPAY'}"
ng-click="params.channel='YEEPAY';loadTradeLogs(1)">Yeepay</a> |
<a role="button" ng-class="{'bg-primary':params.channel=='LAKALAPAY'}"
ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay</a>
|
<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'}"
ng-click="params.channel='RPAYPMT_DD';loadTradeLogs(1)">Direct
Debit</a>
Payment</a>
</p>
</div>
</div>
@ -504,7 +494,7 @@
ng-if="trade.channel=='rpaypmt_dd'" />
<img src="/static/images/alipay_aps.jpg" style="height: 25px"
uib-tooltip="{{trade.pay_type}}(Alipay+™ Partner)"
ng-if="trade.channel=='AlipayAps'" />
ng-if="trade.channel=='ApsCashier'||trade.channel=='ApsInStore'" />
<img src="/static/images/alipay_sign.png" style="height: 20px"
uib-tooltip="Alipay CN"
ng-if="trade.channel=='AlipayPlus' && trade.pay_type=='alipay_cn'" />

Loading…
Cancel
Save