diff --git a/pom.xml b/pom.xml
index 62377ab20..008c8bb96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
UTF-8
1.1.2
- 1.0.43
+ 1.1.5
diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DailyReportImp.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DailyReportImp.java
index cd462889d..539af2a67 100644
--- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DailyReportImp.java
+++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DailyReportImp.java
@@ -128,8 +128,8 @@ public class DailyReportImp implements DailyReport {
kpi.put("kpi_percent", p.getBigDecimal("month_amount").divide(kpi_amount,4,BigDecimal.ROUND_HALF_DOWN).multiply(BigDecimal.valueOf(100)).toString().substring(0,5)+"%");
for(JSONObject clientAmount :clientsAmount ){
if(clientAmount.getString("bd_group").equals(kpi.getString("bd_group"))){
- kpi.put("clients_month",clientAmount.getIntValue("clients_month"));
- kpi.put("clients_yesterday",clientAmount.getIntValue("clients_yesterday"));
+ kpi.put("clients_month",clientAmount.getBigDecimal("clients_month"));
+ kpi.put("clients_yesterday",clientAmount.getBigDecimal("clients_yesterday"));
}
}
total_kpi_amount = total_kpi_amount.add(kpi_amount);
diff --git a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java
index 0e2c3bf07..1ea8bf8fd 100644
--- a/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/citypartner/core/impls/CityPartnerPrizeServiceImpl.java
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.swing.plaf.basic.BasicScrollPaneUI;
import au.com.royalpay.payment.manage.mappers.system.ClientBankAccountMapper;
+import au.com.royalpay.payment.manage.mappers.system.ClientRateMapper;
import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.merchants.core.MerchantInfoProvider;
import org.apache.commons.collections.CollectionUtils;
@@ -499,9 +500,9 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
}
for (JSONObject params : oneChannel.getValue()) {
- BigDecimal tmpClearingAmount = params.getBigDecimal("clearing_amount").subtract(params.getBigDecimal("surcharge_cashback"));
+ BigDecimal tmpClearingAmount = 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 tmpTotalSurcharge = tmpClearingAmount.multiply(params.getBigDecimal("surcharge_rate")).setScale(2, RoundingMode.HALF_UP);
+ BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
//增加货币判断
int i = currencyScale(params.getString("clearing_currency"));
total = total.add(tmpClearingAmount);
@@ -542,9 +543,9 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
channel = "cb_bankpay";
}
for (JSONObject params : oneChannel.getValue()) {
- BigDecimal tmpClearingAmount = params.getBigDecimal("clearing_amount").subtract(params.getBigDecimal("surcharge_cashback"));
+ BigDecimal tmpClearingAmount = 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 tmpTotalSurcharge = tmpClearingAmount.multiply(params.getBigDecimal("surcharge_rate")).setScale(2, RoundingMode.HALF_UP);
+ BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
//增加货币判断
int i = currencyScale(params.getString("clearing_currency"));
BigDecimal parent_surage = tmpClearingAmount.multiply(parentOrgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN)).setScale(i, RoundingMode.HALF_UP);
@@ -594,14 +595,21 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
Date dateto = new Date();
JSONObject json = new JSONObject();
String channel = oneChannel.getKey();
+ String rateChannel = oneChannel.getKey();
if ("hf".equals(oneChannel.getKey().toLowerCase()) || "yeepay".equals(oneChannel.getKey().toLowerCase()) || "lakalapay".equals(oneChannel.getKey().toLowerCase())) {
channel = "cb_bankpay";
+ rateChannel = "CB_BankPay";
+ }
+ JSONObject clientRate = null;
+ try {
+ clientRate = merchantInfoProvider.clientCurrentRate(clientId, oneChannel.getValue().get(0).getDate("transaction_time"),
+ rateChannel);
+ } catch (Exception e) {
}
-
for (JSONObject params : oneChannel.getValue()) {
- BigDecimal tmpClearingAmount = params.getBigDecimal("clearing_amount").subtract(params.getBigDecimal("surcharge_cashback"));
+ BigDecimal tmpClearingAmount = 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 tmpTotalSurcharge = tmpClearingAmount.multiply(params.getBigDecimal("surcharge_rate")).setScale(2, RoundingMode.HALF_UP);
+ BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
//增加货币判断
int i = currencyScale(params.getString("clearing_currency"));
if (total.compareTo(BigDecimal.ZERO) == 0) {
@@ -630,7 +638,11 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
json.put("record_id", recordId);
json.put("client_id", clientId);
- json.put("client_rate", oneChannel.getValue().get(0).getBigDecimal("surcharge_rate").multiply(CommonConsts.HUNDRED));
+ if (clientRate != null) {
+ json.put("client_rate", clientRate.getBigDecimal("rate_value"));
+ }else {
+ json.put("client_rate", oneChannel.getValue().get(0).getBigDecimal("surcharge_rate").multiply(CommonConsts.HUNDRED));
+ }
json.put("gross_amount", total);
json.put("total_charge", total_surage);
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/CommonSubMerchantIdMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/CommonSubMerchantIdMapper.java
index 49a644465..0e2acbd70 100644
--- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/CommonSubMerchantIdMapper.java
+++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/CommonSubMerchantIdMapper.java
@@ -1,5 +1,6 @@
package au.com.royalpay.payment.manage.mappers.payment;
+import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect;
import org.apache.ibatis.annotations.Param;
import com.alibaba.fastjson.JSONObject;
@@ -27,5 +28,4 @@ public interface CommonSubMerchantIdMapper {
@AutoSql(type = SqlType.SELECT)
JSONObject find(@Param("sub_merchant_id") String subMerchantId);
-
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java
index bdd26313d..0832bd737 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchantid/core/impl/MerchantIdManageServiceImpl.java
@@ -23,6 +23,7 @@ import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -96,15 +97,14 @@ public class MerchantIdManageServiceImpl implements MerchantIdManageService {
@Override
public void generateClientsSunMerchantId() {
//重构未交易商户号逻辑
- String tempSubMerchantIds = sysConfigManager.getSysConfig().getString("temp_sub_mch_id");
List clients = clientAnalysisMapper.tradeSubMerchantIdBy60Days(DateUtils.addDays(new Date(), -60));
if (clients.size() > 0) {
clientSubMerchantIdMapper.deleteAll();
}
for (JSONObject client: clients) {
String subMerchantId = client.getString("sub_merchant_id");
- if (subMerchantId != null && tempSubMerchantIds != null && tempSubMerchantIds.contains(subMerchantId)) {
- client.put("temp_sub_merchant", true);
+ if (subMerchantId != null) {
+ client.put("temp_sub_merchant", checkSubMerchantIdInCommonPool(subMerchantId));
}
String id = client.getString("sub_merchant_id");
client.put("create_time",new Date());
@@ -142,11 +142,10 @@ public class MerchantIdManageServiceImpl implements MerchantIdManageService {
}
private Map> getClientMap(List clients){
- String tempSubMerchantIds = sysConfigManager.getSysConfig().getString("temp_sub_mch_id");
for (JSONObject client: clients) {
String subMerchantId = client.getString("sub_merchant_id");
- if (subMerchantId != null && tempSubMerchantIds != null && tempSubMerchantIds.contains(subMerchantId)) {
- client.put("temp_sub_merchant", true);
+ if (subMerchantId != null) {
+ client.put("temp_sub_merchant", checkSubMerchantIdInCommonPool(subMerchantId));
}
}
Map> clientsMap = clients.stream()
@@ -190,4 +189,11 @@ public class MerchantIdManageServiceImpl implements MerchantIdManageService {
String sign = DigestUtils.sha256Hex(validStr).toLowerCase();
return "time=" + time + "&nonce_str=" + nonceStr + "&sign=" + sign;
}
+
+ @Cacheable("common_sub_mch_id:")
+ public boolean checkSubMerchantIdInCommonPool(String subMerchantId) {
+ JSONObject json = commonSubMerchantIdMapper.find(subMerchantId);
+ return json != null;
+ }
+
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientInfoCacheSupport.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientInfoCacheSupport.java
index fcbe2b634..653a7b10f 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientInfoCacheSupport.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientInfoCacheSupport.java
@@ -6,4 +6,8 @@ public interface ClientInfoCacheSupport {
void clearClientCache(int clientId);
void clearClientMonikerCache(String clientMoniker);
+
+ void clearClientConfigCache(int clientId);
+
+ void clearClientMonikerConfigCache(String clientMoniker);
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
index 27451135c..efdf669d4 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/ClientManager.java
@@ -241,6 +241,8 @@ public interface ClientManager {
void changePaymentPage(JSONObject manager, String clientMoniker, String paypad_version);
+ void changeCBBankPaymentPage(JSONObject manager, String clientMoniker, String paypad_version);
+
void changePaymentSuccessPage(JSONObject manager, String clientMoniker, String paysuccess_version);
void switchChildEachRefund(JSONObject manager, String clientMoniker, boolean childEachRefund);
@@ -251,6 +253,8 @@ public interface ClientManager {
void changePaymentPage(JSONObject account, String paypad_version);
+ void changeCBBankPaymentPage(JSONObject account, String paypad_version);
+
void changeManualSettle(JSONObject account , int client_id, boolean manual_settle,String operator_id,int type,String operation);
void changeQRCodePaySurcharge(JSONObject account, boolean paySurcharge);
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientInfoCacheSupportImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientInfoCacheSupportImpl.java
index 47b6308cf..3b9ce12ac 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientInfoCacheSupportImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientInfoCacheSupportImpl.java
@@ -1,6 +1,7 @@
package au.com.royalpay.payment.manage.merchants.core.impls;
import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper;
+import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper;
import au.com.royalpay.payment.manage.merchants.core.ClientInfoCacheSupport;
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
import au.com.royalpay.payment.manage.signin.core.SignInAccountService;
@@ -20,6 +21,8 @@ public class ClientInfoCacheSupportImpl implements ClientInfoCacheSupport{
@Resource
private ClientManager clientManager;
@Resource
+ private ClientConfigMapper clientConfigMapper;
+ @Resource
private ClientInfoCacheSupport clientInfoCacheSupport;
@Override
@@ -39,4 +42,18 @@ public class ClientInfoCacheSupportImpl implements ClientInfoCacheSupport{
@CacheEvict(value = ":app_client_info_moniker:", key = "#clientMoniker")
public void clearClientMonikerCache(String clientMoniker) {
}
+
+ @Override
+ @CacheEvict(value = ":app_client_config_info:", key = "''+#clientId")
+ public void clearClientConfigCache(int clientId) {
+ JSONObject client = clientConfigMapper.find(clientId);
+ if(client!=null){
+ clientInfoCacheSupport.clearClientMonikerConfigCache(client.getString("client_moniker"));
+ }
+ }
+
+ @Override
+ @CacheEvict(value = ":app_client_config_info_moniker:", key = "#clientMoniker")
+ public void clearClientMonikerConfigCache(String clientMoniker) {
+ }
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
index 49f951fe1..5e1e71643 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/core/impls/ClientManagerImpl.java
@@ -26,6 +26,7 @@ import au.com.royalpay.payment.manage.device.core.DeviceManager;
import au.com.royalpay.payment.manage.management.sysconfig.core.impls.PermissionPartnerManagerImpl;
import au.com.royalpay.payment.manage.mappers.financial.FinancialBDConfigMapper;
import au.com.royalpay.payment.manage.mappers.log.*;
+import au.com.royalpay.payment.manage.mappers.payment.CommonSubMerchantIdMapper;
import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper;
import au.com.royalpay.payment.manage.mappers.redpack.ActClientInvitationCodeMapper;
import au.com.royalpay.payment.manage.mappers.risk.RiskAttentionMerchantsMapper;
@@ -277,6 +278,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
@Resource
private MerchantSignInfoMapper merchantSignInfoMapper;
@Resource
+ private CommonSubMerchantIdMapper commonSubMerchantIdMapper;
+ @Resource
private Locker locker;
@@ -372,12 +375,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
if (!StringUtils.equalsIgnoreCase(clientMoniker, PlatformEnvironment.getEnv().getTestMoniker())) {
String subMerchantId = client.getString("sub_merchant_id");
- String tempSubMerchantIds = sysConfigManager.getSysConfig().getString("temp_sub_mch_id");
- String tempSubMchSource = sysConfigManager.getSysConfig().getString("temp_sub_mch_id_source");
- tempSubMchSource = tempSubMchSource == null ? "" : tempSubMchSource;
- if (subMerchantId != null && tempSubMerchantIds != null && tempSubMerchantIds.contains(subMerchantId)
- && !tempSubMchSource.contains(client.getString("client_moniker"))) {
- client.put("temp_sub_merchant", true);
+ if (subMerchantId != null) {
+ client.put("temp_sub_merchant", checkSubMerchantIdInCommonPool(subMerchantId));
}
}
if (client.getIntValue("approve_result") == 1
@@ -526,9 +525,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
int authDays = PlatformEnvironment.getEnv().authDays();// 快速自助开通申请有效期
for (JSONObject partner : partners) {
String subMerchantId = partner.getString("sub_merchant_id");
- if (subMerchantId != null && tempSubMchId != null && tempSubMchId.contains(subMerchantId)
- && !tempSubMchSource.contains(partner.getString("client_moniker"))) {
- partner.put("temp_sub_merchant", true);
+ if (subMerchantId != null ) {
+ partner.put("temp_sub_merchant", checkSubMerchantIdInCommonPool(subMerchantId));
}
if (partner.getIntValue("approve_result") == 2) {
partner.put("expiry_time", DateUtils.addDays(partner.getDate("approve_time"), authDays));
@@ -3220,6 +3218,20 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
checkOrgPermission(manager, client);
clientModifySupport.processClientConfigModify(new PaypadVersionModify(manager, clientMoniker, paypad_version));
+ clientInfoCacheSupport.clearClientMonikerConfigCache(clientMoniker);
+ }
+
+ @Override
+ public void changeCBBankPaymentPage(JSONObject manager, String clientMoniker, String paypad_version) {
+ JSONObject client = getClientInfoByMoniker(clientMoniker);
+ if (client == null) {
+ throw new InvalidShortIdException();
+ }
+ checkOrgPermission(manager, client);
+ JSONObject clientConfig = clientConfigMapper.find(client.getIntValue("client_id"));
+ clientConfig.put("cbbank_paypad_version", paypad_version);
+ clientConfigMapper.update(clientConfig);
+ clientInfoCacheSupport.clearClientMonikerConfigCache(clientMoniker);
}
@Override
@@ -3327,7 +3339,20 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
throw new InvalidShortIdException();
}
clientModifySupport.processClientConfigModify(new PaypadVersionModify(account, client.getString("client_moniker"), paypad_version));
+ clientInfoCacheSupport.clearClientMonikerConfigCache(client.getString("client_moniker"));
+ }
+ @Override
+ public void changeCBBankPaymentPage(JSONObject account, String paypad_version) {
+ int clientId = account.getIntValue("client_id");
+ JSONObject client = getClientInfo(clientId);
+ if (client == null) {
+ throw new InvalidShortIdException();
+ }
+ JSONObject clientConfig = clientConfigMapper.find(client.getIntValue("client_id"));
+ clientConfig.put("cbbank_paypad_version", paypad_version);
+ clientConfigMapper.update(clientConfig);
+ clientInfoCacheSupport.clearClientMonikerConfigCache(client.getString("client_moniker"));
}
@Override
@@ -4911,6 +4936,12 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
}
+ @Cacheable("common_sub_mch_id:")
+ public boolean checkSubMerchantIdInCommonPool(String subMerchantId) {
+ JSONObject json = commonSubMerchantIdMapper.find(subMerchantId);
+ return json != null;
+ }
+
@Override
public JSONObject comListPartnerSelection(JSONObject manager, PartnerQuery query) {
JSONObject params = query.toJsonParam();
@@ -4926,9 +4957,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
int authDays = PlatformEnvironment.getEnv().authDays();// 快速自助开通申请有效期
for (JSONObject partner : partners) {
String subMerchantId = partner.getString("sub_merchant_id");
- if (subMerchantId != null && tempSubMchId != null && tempSubMchId.contains(subMerchantId)
- && !tempSubMchSource.contains(partner.getString("client_moniker"))) {
- partner.put("temp_sub_merchant", true);
+ if (subMerchantId != null) {
+ partner.put("temp_sub_merchant", checkSubMerchantIdInCommonPool(subMerchantId));
}
if (partner.getIntValue("approve_result") == 2) {
partner.put("expiry_time", DateUtils.addDays(partner.getDate("approve_time"), authDays));
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/entity/impls/CBBankPaypadVersionModify.java b/src/main/java/au/com/royalpay/payment/manage/merchants/entity/impls/CBBankPaypadVersionModify.java
new file mode 100644
index 000000000..4c4db3701
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/entity/impls/CBBankPaypadVersionModify.java
@@ -0,0 +1,29 @@
+package au.com.royalpay.payment.manage.merchants.entity.impls;
+
+import au.com.royalpay.payment.manage.merchants.entity.ClientConfigModify;
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * Create by yixian at 2018-04-12 16:43
+ */
+public class CBBankPaypadVersionModify extends ClientConfigModify {
+ private String cbbank_paypad_version;
+
+ public CBBankPaypadVersionModify(JSONObject account, String clientMoniker, String paypad_version) {
+ super(account, clientMoniker);
+ this.cbbank_paypad_version = paypad_version;
+ }
+
+ @Override
+ protected String business() {
+
+ return "";
+ }
+
+ @Override
+ protected JSONObject getModifyResult() {
+ JSONObject modify = new JSONObject();
+ modify.put("cbbank_paypad_version", cbbank_paypad_version);
+ return modify;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
index 03fd08425..9723ecf91 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerManageController.java
@@ -321,6 +321,11 @@ public class PartnerManageController {
clientManager.changePaymentPage(manager, clientMoniker, pass.getString("paypad_version"));
}
+ @ManagerMapping(value = "/{clientMoniker}/cbbank_payment_page_version", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
+ public void changeCBBankPaymentPage(@PathVariable String clientMoniker, @RequestBody JSONObject pass, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
+ clientManager.changeCBBankPaymentPage(manager, clientMoniker, pass.getString("cbbank_paypad_version"));
+ }
+
@ManagerMapping(value = "/{clientMoniker}/paysuccess_version", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
public void changePaymentSuccessPage(@PathVariable String clientMoniker, @RequestBody JSONObject pass, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
clientManager.changePaymentSuccessPage(manager, clientMoniker, pass.getString("paysuccess_version"));
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java
index fd72b9942..be7823494 100644
--- a/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/web/PartnerViewController.java
@@ -395,6 +395,12 @@ public class PartnerViewController {
clientManager.changePaymentPage(account, pass.getString("paypad_version"));
}
+ @PartnerMapping(value = "/cbbank_payment_page_version", method = RequestMethod.PUT)
+ @ResponseBody
+ public void changeCBBankPaymentPage(@RequestBody JSONObject pass, @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account) {
+ clientManager.changeCBBankPaymentPage(account, pass.getString("cbbank_paypad_version"));
+ }
+
@PartnerMapping(value = "/qrcode_surcharge", method = RequestMethod.PUT)
@ResponseBody
public void changeQRCodePaySurCharge(@RequestBody JSONObject pass, @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject account) {
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
index c0f206355..23ae1f780 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/TransactionMapper.xml
@@ -766,7 +766,9 @@
if(t.transaction_type = 'Credit', t.clearing_amount, -t.clearing_amount) clearing_amount,
if(t.transaction_type = 'Credit', t.total_surcharge, -t.total_surcharge) total_surcharge,
if(t.transaction_type = 'Credit', t.channel_surcharge, -t.channel_surcharge) channel_surcharge,
- t.order_id
+ t.order_id,
+ t.org_rate,
+ t.surcharge_cashback
from pmt_transactions t
INNER JOIN sys_org so ON t.org_id = so.org_id AND so.is_valid = 1
AND so.type = 0
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
index 673aae015..3f0bcb658 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml
@@ -553,43 +553,89 @@
fbc.bd_name,
fbc.bd_group,
fbc.bd_type,
- count( * ) clients_month
+ sum( a.proportion ) clients_month
FROM
- sys_clients sc
- INNER JOIN sys_client_bd d ON sc.client_id = d.client_id
- INNER JOIN financial_bd_config c ON d.bd_id = c.manager_id
- INNER JOIN financial_bd_config fbc ON fbc.manager_id = c.bd_group
+ sys_client_bd a
+ INNER JOIN (
+ SELECT
+ bd_id,
+ max( create_time ) create_time
+ FROM
+ sys_client_bd
WHERE
- sc.org_id = 1
- AND sc.create_time >= #{start_date_month}
- AND d.is_valid = 1
- AND c.bd_group IS NOT NULL
- AND d.start_date <= now( ) AND d.is_valid = 1 AND ( d.end_date IS NULL OR d.end_date > now( )
+ client_id IN (
+ SELECT
+ client_id
+ FROM
+ sys_clients c
+ WHERE
+ c.approve_time >= #{start_date_month}
+ AND c.approve_time <= #{end_date}
+ AND c.is_valid = 1
+ AND c.approve_result = 1
+ AND c.org_id = 1
+ )
+ AND start_date <= #{end_date} AND is_valid = 1 AND ( end_date > #{start_date_month}
+ OR end_date IS NULL
)
GROUP BY
- fbc.bd_type
+ bd_id,
+ client_id
+ ) b ON a.bd_id = b.bd_id
+ AND a.create_time = b.create_time
+ INNER JOIN financial_bd_config c ON a.bd_id = c.manager_id
+ INNER JOIN financial_bd_config fbc ON fbc.manager_id = c.bd_group
+ WHERE
+ a.is_valid = 1
+ GROUP BY
+ fbc.bd_group
+ ORDER BY
+ clients_month DESC
) t1
LEFT JOIN (
SELECT
- count( * ) clients_yesterday,
- fbc.bd_group
+ fbc.bd_name,
+ fbc.bd_group,
+ fbc.bd_type,
+ sum( a.proportion ) clients_yesterday
FROM
- sys_clients sc
- INNER JOIN sys_client_bd d ON sc.client_id = d.client_id
- INNER JOIN financial_bd_config c ON d.bd_id = c.manager_id
- INNER JOIN financial_bd_config fbc ON fbc.manager_id = c.bd_group
+ sys_client_bd a
+ INNER JOIN (
+ SELECT
+ bd_id,
+ max( create_time ) create_time
+ FROM
+ sys_client_bd
+ WHERE
+ client_id IN (
+ SELECT
+ client_id
+ FROM
+ sys_clients c
WHERE
- sc.org_id = 1
- AND sc.create_time >= #{start_date}
- AND sc.create_time < #{end_date}
- AND d.is_valid = 1
- AND d.start_date <= now( ) AND d.is_valid = 1 AND ( d.end_date IS NULL OR d.end_date > now( )
+ c.approve_time >= #{start_date}
+ AND c.approve_time < #{end_date}
+ AND c.is_valid = 1
+ AND c.approve_result = 1
+ AND c.org_id = 1
+ )
+ AND start_date <= #{end_date} AND is_valid = 1 AND ( end_date > #{start_date}
+ OR end_date IS NULL
)
GROUP BY
- fbc.bd_type
- ) t2 ON t1.bd_group = t2.bd_group
+ bd_id,
+ client_id
+ ) b ON a.bd_id = b.bd_id
+ AND a.create_time = b.create_time
+ INNER JOIN financial_bd_config c ON a.bd_id = c.manager_id
+ INNER JOIN financial_bd_config fbc ON fbc.manager_id = c.bd_group
WHERE
- t1.bd_type IN ( 1, 2, 6, 7 )
+ a.is_valid = 1
+ GROUP BY
+ fbc.bd_group
+ ORDER BY
+ clients_yesterday DESC
+ ) t2 ON t1.bd_group = t2.bd_group
+
+
diff --git a/src/main/ui/static/templates/cbpay/css/gateway_phone.css b/src/main/ui/static/templates/cbpay/css/v1/gateway_phone.css
similarity index 100%
rename from src/main/ui/static/templates/cbpay/css/gateway_phone.css
rename to src/main/ui/static/templates/cbpay/css/v1/gateway_phone.css
diff --git a/src/main/ui/static/templates/cbpay/css/v2/gateway_phone.css b/src/main/ui/static/templates/cbpay/css/v2/gateway_phone.css
new file mode 100644
index 000000000..4ee6caf8f
--- /dev/null
+++ b/src/main/ui/static/templates/cbpay/css/v2/gateway_phone.css
@@ -0,0 +1,719 @@
+.header-banner {
+ background: url(/static/images/pay_v4_banner.png) no-repeat;
+ background-size: 92% 100%;
+ background-position: center;
+ box-shadow: 0 0 10px #dddddd inset;
+}
+
+.merchant-title {
+ font-family: PingFang-SC-Medium;
+ font-size: 13px;
+ color: #4A4A4A;
+ letter-spacing: 0;
+}
+
+.line {
+ padding-left: 30px;
+ color: #FFD194;
+}
+
+body {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ box-sizing: border-box;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+div, span, p, ul, li {
+ box-sizing: border-box;
+}
+
+.warning-sm {
+ color: red;
+ font-size: 10px;
+ transform-origin: left;
+ transform: scale(0.8);
+}
+
+.weui_grid {
+ padding: 7px;
+ height: 53px;
+}
+
+.ff.key {
+ position: relative;
+}
+
+.ff {
+ font-size: 26px;
+ color: #FFFFFF;
+}
+
+.ff img {
+ margin: 10px auto;
+ display: block;
+ width: 34px;
+}
+
+div.wait {
+ top: 0;
+ margin-left: auto;
+ margin-right: auto;
+ left: 0;
+ right: 0;
+ position: absolute;
+ vertical-align: middle;
+ text-align: center;
+ bottom: 0;
+ opacity: .5;
+ background-color: gray;
+ z-index: 10000;
+}
+
+.bisnam {
+ font-size: 16px;
+ color: #aaaaaa;
+ text-align: left;
+ padding: 0;
+}
+
+.rmbcurrency {
+ font-size: 13px;
+ color: #FFFFFF;
+ vertical-align: text-bottom;
+ line-height: 38px;
+ padding-left: 10px;
+}
+
+.static .rmbcurrency {
+ font-size: 14px;
+ line-height: 30px;
+}
+
+.rmbvalue {
+ font-size: 24px;
+ color: #FFFFFF;
+ vertical-align: text-bottom;
+ float: right;
+}
+
+.rmbvalue:before {
+ content: '≈¥';
+ font-size: 16px;
+}
+
+.paydetail {
+ float: right;
+ margin-top: 5px;
+ margin-left: 5px;
+}
+
+.static .rmbvalue {
+ font-size: 18px;
+}
+
+.currency {
+ font-size: 40px;
+ color: #FFFFFF;
+ /* line-height: 67px; */
+ vertical-align: text-bottom;
+ padding-left: 10px;
+}
+
+.static .currency {
+ color: #FFFFFF;
+ font-size: 25px;
+}
+
+.value {
+ font-size: 50px;
+ line-height: 66px;
+ color: #FFFFFF;
+ margin-left: -5px;
+ vertical-align: text-bottom;
+ padding-right: 10px;
+}
+
+.static .value {
+ color: #FFFFFF;
+ font-size: 24px;
+}
+
+input.value {
+ background: transparent;
+ border: none;
+ line-height: 50px;
+}
+
+input.value:active {
+ background: transparent;
+}
+
+input.value:focus {
+ border: none;
+ outline: none;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+}
+
+.pp {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow-x: hidden;
+ background-color: #fbf9fe;
+}
+
+.new_year {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 18%;
+ left: 0;
+ z-index: -1;
+ border-radius: 0 0 25px 25px;
+}
+
+.bankpay {
+ text-align: center;
+ padding: 20px;
+ color: #FFFFFF;
+}
+
+@media screen and (max-height: 520px) {
+ .bankpay {
+ text-align: center;
+ padding: 0;
+ color: #FFFFFF;
+ }
+}
+
+.row {
+ width: 100%;
+ padding: 0 20px;
+}
+
+.hidden {
+ display: none;
+}
+
+.hide-keyboard-btn {
+ width: 100%;
+}
+
+.hide-keyboard-btn:after {
+ content: '';
+ transform: rotate(45deg);
+ border-right: 2px solid #ccc;
+ border-bottom: 2px solid #ccc;
+ width: 30px;
+ height: 30px;
+ transform-origin: center;
+ display: block;
+ margin: auto;
+}
+
+.remark-box.visible {
+ display: block;
+}
+
+.remark-box.visible .remark-input {
+ font-size: 1.4em;
+ border: none;
+ background: #fff;
+}
+
+.white-box {
+ background: #fff;
+ width: 96%;
+ margin: 10px auto;
+ display: block;
+ position: relative;
+ padding: 0 10px;
+ box-sizing: border-box;
+}
+
+.white-box.full {
+ width: 100%;
+}
+
+.logo-box .banner {
+ width: 100%;
+ display: block;
+}
+
+.logo {
+ margin: auto;
+ display: block;
+ max-height: 60px;
+ max-width: 80%;
+}
+
+.logo-small {
+ max-height: 100px;
+}
+
+.currencyrow {
+ box-sizing: border-box;
+ margin-top: 0;
+ text-align: left;
+ margin-bottom: 0px;
+ position: relative;
+}
+
+@media screen and (max-height: 670px) {
+ .currencyrow {
+ box-sizing: border-box;
+ margin-top: 0;
+ text-align: left;
+ margin-bottom: 0px;
+ }
+}
+
+@media screen and (max-height: 520px) {
+ .currencyrow {
+ box-sizing: border-box;
+ margin-top: 20px;
+ text-align: center;
+ margin-bottom: 20px;
+ }
+}
+
+.currencyrow:after {
+ content: '';
+ display: block;
+ clear: both;
+}
+
+.currencyrow > * {
+ display: inline-block;
+ vertical-align: bottom;
+ margin-bottom: 0;
+ box-sizing: border-box;
+}
+
+.remark-input {
+ width: 100%;
+ font-size: 26px;
+ border-radius: 0;
+ outline: none;
+}
+
+.remark-box {
+ display: none;
+}
+
+.remark-box .remark-mask {
+ text-align: center;
+ height: 50px;
+ font-size: 0.9em;
+ line-height: 35px;
+ color: #ccc;
+}
+
+.remark-label {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ font-size: 20px;
+ z-index: 1;
+ font-weight: bold;
+ color: #0d6aad;
+}
+
+.coupons {
+ width: 100%;
+}
+
+.coupons > li {
+ display: block;
+ width: 100%;
+ float: none;
+ color: #888888;
+ border-bottom: 1px dashed #aaa;
+ padding: 5px 0px;
+}
+
+.coupons > li:after {
+ content: '';
+ clear: both;
+ display: block
+}
+
+.coupons > li:last-child {
+ border: none;
+}
+
+.coupons .title, .coupons .desc, .coupons label {
+ display: block;
+}
+
+.coupons .coupon-content {
+ display: block;
+ float: left;
+}
+
+.coupons .title {
+ font-weight: bold;
+ font-size: 1em;
+}
+
+.coupons .use-check {
+ position: relative;
+ display: block;
+ width: 25px;
+ background-repeat: no-repeat;
+ height: 25px;
+ background-size: contain;
+ float: right;
+ margin-right: 5px;
+ margin-top: 10px;
+}
+
+.coupons .use-check.checked {
+ background-image: url(/static/images/checkbox-checked.png);
+}
+
+.coupons .use-check.unchecked {
+ background-image: url(/static/images/checkbox-unchecked.png);
+}
+
+.coupons .use-check.disabled {
+ background-image: url(/static/images/checkbox-disabled.png) !important;
+}
+
+.coupons .desc {
+ font-size: 1em;
+}
+
+.weui-wepay-logos {
+ background: transparent;
+}
+
+.row.weui_grids:before, .row.weui_grids .weui_grid:before, .row.weui_grids .weui_grid:after {
+ display: none;
+}
+
+.button_sp_area {
+ display: block;
+ position: relative;
+ margin-top: 10px;
+}
+
+.button_sp_area:after {
+ content: '';
+ clear: both;
+ display: block;
+}
+
+.button_sp_area a {
+ height: 50px;
+ line-height: 50px;
+ padding: 0px;
+ font-family: Helvetica;
+ font-size: 20px;
+ float: left;
+ text-align: center;
+ border-radius: 0;
+ color: #fff;
+}
+
+.button_sp_area .paynow {
+ width: 65%;
+ background: #FEB900;
+}
+
+.button_sp_area.alipay .paynow {
+ background-color: #FEB900;
+}
+
+.button_sp_area.rpay .paynow {
+ background-color: #FEB900;
+}
+
+.button_sp_area .remark-btn {
+ width: 35%;
+ background: #FF9705
+}
+
+.pay-brands {
+ text-align: center;
+ line-height: 20px;
+ font-size: 24px;
+ margin-top: 64px;
+ color: #dddddd;
+}
+
+.pay-brands img {
+ height: 18px;
+}
+
+.pay-brands img.wechat-logo {
+ height: 14px;
+}
+
+.weui_dialog_bd .final {
+ font-weight: bold;
+}
+
+#coupon-box-toggle {
+ padding: 0 20px;
+ margin-bottom: 10px;
+ text-align: right;
+ color: #30af69;
+ font-size: 12px;
+ cursor: pointer;
+}
+
+.coupons-container {
+ position: fixed;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow: auto;
+ display: none;
+}
+
+.coupons-container.show {
+ display: block;
+}
+
+.coupons-container > .coupons-mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, .6);
+ z-index: 1;
+}
+
+.coupons-container > .coupon-box {
+ position: fixed;
+ z-index: 4;
+ left: 50%;
+ top: 50%;
+ width: 95%;
+ background: #fff;
+ padding: 10px;
+ transform: translate(-50%, -50%);
+}
+
+.coupons-container .coupon-box-title {
+ width: 100%;
+ display: block;
+ background: #fff;
+ padding: 0 10px 5px;
+ font-size: 14px;
+ border-bottom: 1px solid #d0d0d0;
+}
+
+.coupons-container .coupon-box-title:after {
+ content: '';
+ display: block;
+ clear: both;
+}
+
+.coupons-container .coupon-box-title > .title {
+ float: left;
+ display: block;
+ color: #0BB20C;
+}
+
+.coupons-container .coupon-box-title > #close-coupon-box {
+ color: #700;
+ float: right;
+ display: block;
+ cursor: pointer;
+}
+
+.actCharity-red {
+ color: #FB5252;
+ display: inline;
+}
+
+.actCharity {
+ display: inline;
+ font-family: PingFang-SC-Medium;
+ font-size: 13px;
+ color: #000000;
+ letter-spacing: 0;
+ text-align: center;
+}
+
+.remark-textarea {
+ font-size: 18px;
+ -webkit-appearance: none;
+ width: calc(100% - 24px);
+ height: 78px;
+ border: 1px solid #EBE8E8;
+ padding: 14px 12px;
+ margin-bottom: 24px;
+}
+
+.remark-textarea::-webkit-input-placeholder {
+ font-size: 13px;
+ color: #BCBCBC;
+}
+
+.paynow-button {
+ width: 245px;
+ display: block;
+ font-size: 16px;
+ color: #FFFFFF;
+ letter-spacing: 0;
+ text-align: center;
+ height: 48px;
+ line-height: 48px;
+ position: absolute;
+ bottom: -24px;
+ left: 50%;
+ transform: translateX(-50%);
+ background: #FF6600;
+ box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.10);
+ border-radius: 24px;
+}
+
+.bankpay-button {
+ border: 1px solid #FF6600;
+ border-radius: 3px;
+ font-size: 16px;
+ color: #FF6600;
+ letter-spacing: 0;
+ text-align: center;
+ display: block;
+ height: 48px;
+ line-height: 48px;
+ background-color: white;
+}
+
+#coupon-box-toggle.canUse-coupon {
+ padding: 0 30px;
+ margin-bottom: 10px;
+ text-align: right;
+ color: #FF6600;
+ font-size: 12px;
+ cursor: pointer;
+ margin: 11px;
+}
+
+.pay-center-ctn {
+ margin-top: 30px;
+ background: #FFFFFF;
+ box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.10);
+ border-radius: 2px;
+ padding: 20px;
+ position: relative;
+}
+
+.payment-input {
+ border-radius: 2px;
+ width: 54%;
+ height: 64px;
+ font-family: PingFang-SC-Heavy;
+ font-size: 25px;
+ color: #000000;
+ letter-spacing: 2.4px;
+ border-style:none;
+}
+
+.payment-input::-webkit-input-placeholder {
+ color: #000;
+}
+
+.paymengt-tips {
+ font-family: PingFang-SC-Medium;
+ font-size: 13px;
+ color: #000000;
+ letter-spacing: 0;
+ margin: 15px 7px;
+}
+
+.payment-pro-input {
+ font-size: 17px;
+ -webkit-appearance: none;
+ border: 1px solid #EBE8E8;
+ width: calc(100% - 24px);
+ height: 30px;
+ margin-bottom: 15px;
+ padding: 14px 12px
+}
+
+.payment-pro-input::-webkit-input-placeholder {
+ font-size: 12px;
+ color: #BCBCBC;
+}
+
+.pay-center-img {
+ display: inline-block;
+ vertical-align: middle;
+ width: 81px;
+}
+
+.pay-center-title {
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: 11px;
+}
+
+.pay-center-dropdown {
+ width: 100px;
+ height: 64px;
+ background: #FF6600;
+ text-align: center;
+ line-height: 64px;
+ position: absolute;
+ right: 0;
+}
+
+.dropdown-icon {
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTYxMDgzNDM4ODM1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMzNDciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTQ2NS4wOTQyMDIgODExLjk1MDQ5IDY5LjY0OTgwMSAzOTguNjQwMTg2Yy0xNC4xNzg5MzEtMTMuNTU5ODMtMTQuMTc4OTMxLTM1LjU1Mzc1MSAwLTQ5LjExOTcyMSAxNC4xNjU2MjgtMTMuNTY1OTcgMzcuMTMzNzM1LTEzLjU2NTk3IDUxLjMwNTUwMyAwbDM3MS42MTQ2NjkgMzg4LjQwMzAzMSAzNzEuNjIxODMyLTM4OC40MDMwMzFjMTQuMTczODE0LTEzLjU2NTk3IDM3LjE0MDg5OC0xMy41NjU5NyA1MS4zMTM2ODkgMCAxNC4xNzE3NjggMTMuNTY1OTcgMTQuMTcxNzY4IDM1LjU1OTg5IDAgNDkuMTE5NzIxTDUyMC4wNDY3NjggODExLjk1MDQ5Yy03LjU1NjA5MyA3LjIzMDY4Mi0xNy41ODU1MTcgMTAuMzIyMDktMjcuNDc2Nzk1IDkuODI3ODMzQzQ4Mi42Nzg2OTYgODIyLjI3MjU3OSA0NzIuNjQ5MjcyIDgxOS4xODIxOTQgNDY1LjA5NDIwMiA4MTEuOTUwNDl6IiBwLWlkPSIzMzQ4IiBmaWxsPSIjZmZmZmZmIj48L3BhdGg+PC9zdmc+");
+ background-size: 13px 13px;
+ width: 13px;
+ height: 13px;
+ display: inline-block;
+ margin-left: 5px;
+}
+
+.rotate-180 {
+ transform: rotate(180deg);
+}
+
+.pay-center-dropdown-ctn {
+ display: none;
+ background: #FF6600;
+ color: #fff;
+}
+.currency{
+ padding-left: 6px;
+ height: 52px;
+ width: 30px;
+ font-family: PingFang-SC-Heavy;
+ font-size: 25px;
+ color: #000000;
+ letter-spacing: 2.4px;
+ text-align: center;
+}
+
+.logo-div {
+ max-width: 34%;
+ display: inline-block;
+ max-height: 60px;
+ padding-top: 10px;
+}
+
+.merchant-div{
+ display: inline-block;
+ padding-left: 10px;
+ padding-top: 20px;
+}
+
diff --git a/src/main/ui/static/templates/cbpay/lakala/v2/gateway_jsapi_phone.js b/src/main/ui/static/templates/cbpay/lakala/v2/gateway_jsapi_phone.js
new file mode 100644
index 000000000..d669567a0
--- /dev/null
+++ b/src/main/ui/static/templates/cbpay/lakala/v2/gateway_jsapi_phone.js
@@ -0,0 +1,89 @@
+var num = function (obj) {
+ obj.value = obj.value.replace(/[^\d.]/g, "");
+ obj.value = obj.value.replace(/^\./g, "");
+ obj.value = obj.value.replace(/\.{2,}/g, ".");
+ obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
+ obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
+ if(obj.value.indexOf(".")< 0 && obj.value !==""){
+ obj.value= parseFloat(obj.value);
+ }
+
+ var surchargeData = calculateSurcharge(obj.value - 0);
+ var surchargeAmount = Decimal.add(surchargeData.surcharge, surchargeData.tax);
+ var currency = '$';
+ if($('#select_currency').val()=='CNY'){
+ currency = '¥';
+ }
+ $('#surchargeAmount').html(currency+surchargeAmount+'');
+ $('#totalAmount').html(currency+surchargeData.newPrice+'');
+ if (surchargeAmount - 0 === 0 || !window.c4surcharge) {
+ $('.surcharge').hide();
+ } else {
+ $('.surcharge').show();
+ }
+
+};
+function onChange(str,num) {
+ return str.length === num;
+
+}
+$(document).ready(function () {
+ $('.surcharge').hide();
+ $('#commit-btn').click(function () {
+ var currency = $('#select_currency option:selected').val();
+ var price = $('#price').val();
+ var product = $('#product').val();
+ var remark = $('#remark').val();
+ if (price == null || onChange(price, 0)) {
+ alert('请填写订单金额');
+ return;
+ }
+ if (price - 0 === 0) {
+ alert('金额不能为0');
+ return;
+ }
+ if (product == null || product.length === 0) {
+ alert('请填写真实的商品名称');
+ return;
+ }
+
+ $('#commit-btn').addClass('hidden');
+ $('#commit-btn-loading').removeClass('hidden');
+
+ var jsonData = {
+ user_id: window.customer_id,
+ price: price,
+ currency: currency,
+ gateway_type: 8,
+ description:remark,
+ product_name:product
+ };
+
+ $.ajax({
+ url: '/api/v1.0/lakala_pay/partners/' + window.client_moniker + '/submit',
+ method: 'put',
+ data: JSON.stringify(jsonData),
+ contentType: 'application/json',
+ dataType: 'json',
+ success: function (res) {
+ if(res.return_code !== 'SUCCESS'){
+ alert(res.message);
+ $('#commit-btn').removeClass('hidden');
+ $('#commit-btn-loading').addClass('hidden');
+ }else {
+ location.href = res.pay_url+'?'+res.sign_url;
+ // const $form = $(res.formString);
+ // $('body').append($form);
+ // $form.submit();
+ // $('body').removeChildren($form);
+ }
+ },
+ error: function (jqXHR) {
+ alert(JSON.parse(jqXHR.responseText).message);
+ $('#commit-btn').removeClass('hidden');
+ $('#commit-btn-loading').addClass('hidden');
+ }
+ })
+
+ });
+});
diff --git a/src/main/ui/static/templates/cbpay/yeepay/v1/gateway_jsapi_phone.js b/src/main/ui/static/templates/cbpay/yeepay/v1/gateway_jsapi_phone.js
index 5da9823f0..d362a3555 100644
--- a/src/main/ui/static/templates/cbpay/yeepay/v1/gateway_jsapi_phone.js
+++ b/src/main/ui/static/templates/cbpay/yeepay/v1/gateway_jsapi_phone.js
@@ -45,6 +45,11 @@ $(document).ready(function () {
return;
}
+ if (product == null || product.length === 0) {
+ alert('请填写真实的商品名称');
+ return;
+ }
+
$('#commit-btn').addClass('hidden');
$('#commit-btn-loading').removeClass('hidden');
diff --git a/src/main/ui/static/templates/cbpay/yeepay/v2/gateway_jsapi_phone.js b/src/main/ui/static/templates/cbpay/yeepay/v2/gateway_jsapi_phone.js
new file mode 100644
index 000000000..493a36560
--- /dev/null
+++ b/src/main/ui/static/templates/cbpay/yeepay/v2/gateway_jsapi_phone.js
@@ -0,0 +1,121 @@
+var num = function (obj) {
+ obj.value = obj.value.replace(/[^\d.]/g, "");
+ obj.value = obj.value.replace(/^\./g, "");
+ obj.value = obj.value.replace(/\.{2,}/g, ".");
+ obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
+ obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
+ if(obj.value.indexOf(".")< 0 && obj.value !=""){
+ obj.value= parseFloat(obj.value);
+ }
+
+ var surchargeData = calculateSurcharge(obj.value - 0);
+ var surchargeAmount = Decimal.add(surchargeData.surcharge, surchargeData.tax);
+ var currency = '$';
+ if($('#select-display').text()=='CNY'){
+ currency = '¥';
+ }
+ $('#surchargeAmount').html(currency+surchargeAmount+'');
+ $('#totalAmount').html(currency+surchargeData.newPrice+'');
+ if (surchargeAmount - 0 == 0 || !window.c4surcharge) {
+ $('.surcharge').hide();
+ } else {
+ $('.surcharge').show();
+ }
+
+};
+
+var changeCurrencyCheckNum = function (obj) {
+ var surchargeData = calculateSurcharge(obj.val() - 0);
+ var surchargeAmount = Decimal.add(surchargeData.surcharge, surchargeData.tax);
+ var currency = '$';
+ if($('#select-display').text()=='CNY'){
+ currency = '¥';
+ }
+ $('#surchargeAmount').html(currency+surchargeAmount+'');
+ $('#totalAmount').html(currency+surchargeData.newPrice+'');
+ if (surchargeAmount - 0 == 0 || !window.c4surcharge) {
+ $('.surcharge').hide();
+ } else {
+ $('.surcharge').show();
+ }
+
+};
+
+
+function onChange(str,num) {
+ if (str.length == num) {
+ return true;
+ }
+ return false;
+}
+$(document).ready(function () {
+ $('.pay-center-dropdown-ctn').on('click', function () {
+ if ($('#select-change').text() == "CNY") {
+ $('#select-display').html("CNY");
+ $('#select-change').html("AUD");
+ $('.currency').html("¥");
+ changeCurrencyCheckNum($('#price'));
+ }else {
+ $('#select-display').html("AUD");
+ $('#select-change').html("CNY");
+ $('.currency').html("$");
+ changeCurrencyCheckNum($('#price'));
+ }
+ $('.pay-center-dropdown-ctn').toggle();
+ });
+
+ $('.surcharge').hide();
+ $('#commit-btn').click(function () {
+ var product = $('#product').val();
+ var price = $('#price').val();
+ var remark = $('#remark').val();
+ var currency = $('#select_currency option:selected').val();
+ if (price == null || onChange(price,0)) {
+ alert('请填写订单金额');
+ return;
+ }
+ if (price-0 ==0) {
+ alert('金额不能为0');
+ return;
+ }
+
+ if (product == null || product.length === 0) {
+ alert('请填写真实的商品名称');
+ return;
+ }
+
+ $('#commit-btn').addClass('hidden');
+ $('#commit-btn-loading').removeClass('hidden');
+
+ var jsonData = {
+ user_id: window.customer_id,
+ price: price,
+ currency: currency,
+ product_name:product,
+ description:remark
+ };
+
+ $.ajax({
+ url: '/api/v1.0/yeepay/partners/' + window.client_moniker + '/share',
+ method: 'put',
+ data: JSON.stringify(jsonData),
+ contentType: 'application/json',
+ dataType: 'json',
+ success: function (res) {
+ if(res.return_code != 'SUCCESS'){
+ alert(res.message);
+ $('#commit-btn').removeClass('hidden');
+ $('#commit-btn-loading').addClass('hidden');
+ }else {
+ location.href = res.pay_url+'?'+res.sign_url;
+ }
+ },
+ error: function (jqXHR) {
+ alert(JSON.parse(jqXHR.responseText).message);
+ $('#commit-btn').removeClass('hidden');
+ $('#commit-btn-loading').addClass('hidden');
+ }
+ })
+
+ });
+});
diff --git a/src/main/ui/static/templates/payment/v4/payment.css b/src/main/ui/static/templates/payment/v4/payment.css
index 905dfc5db..c8d95f23d 100644
--- a/src/main/ui/static/templates/payment/v4/payment.css
+++ b/src/main/ui/static/templates/payment/v4/payment.css
@@ -245,15 +245,13 @@ input.value:focus {
.logo-box .banner {
width: 100%;
- display: block;
}
.logo {
margin: auto;
display: block;
- margin-top: 20px;
max-height: 60px;
- max-width: 80%;
+ max-width: 100%;
}
.logo-small {
@@ -622,3 +620,16 @@ input::-webkit-input-placeholder{
line-height: 60px;
vertical-align: text-bottom;
}
+
+.logo-div {
+ max-width: 34%;
+ display: inline-block;
+ max-height: 60px;
+ padding-top: 10px;
+}
+
+.merchant-div{
+ display: inline-block;
+ padding-left: 10px;
+ padding-top: 20px;
+}