From cbf474e01a9ffd859fdf338c07d8b7b7ffcd5f8f Mon Sep 17 00:00:00 2001 From: yangkai Date: Tue, 18 Dec 2018 18:13:28 +0800 Subject: [PATCH 1/4] cb_bankpay --- .../sysconfig/core/SysPaymentConfig.java | 11 +++ .../core/impls/SysPaymentConfigImpl.java | 34 +++++++++ .../sysconfig/web/SysConfigController.java | 19 +++-- .../system/SysPaymentConfigMapper.java | 25 ++++++ .../manage/merchants/core/ClientManager.java | 7 ++ .../core/impls/ClientManagerImpl.java | 76 ++++++++++++++----- .../web/PartnerManageController.java | 15 ++++ .../manage/organizations/beans/OrgInfo.java | 18 +++++ .../mappers/system/SysPaymentConfigMapper.xml | 20 +++++ .../organizations/templates/new_org.html | 24 ++++++ .../organizations/templates/org_detail.html | 16 ++++ .../ui/static/config/sysconfigs/sysconfigs.js | 49 ++++++++++++ .../templates/payment_bankpay_config.html | 40 ++++++++++ .../sysconfigs/templates/sysconfig.html | 4 +- .../static/payment/partner/partner-manage.js | 25 ++++++ .../templates/partner_bankaccounts.html | 1 + .../partner/templates/partner_new_rate.html | 24 ++++++ .../templates/partner_payment_info.html | 30 ++++++++ .../ui/static/templates/payment/v1/payment.js | 16 +++- 19 files changed, 425 insertions(+), 29 deletions(-) create mode 100644 src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/SysPaymentConfig.java create mode 100644 src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java create mode 100644 src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java create mode 100644 src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml create mode 100644 src/main/ui/static/config/sysconfigs/templates/payment_bankpay_config.html diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/SysPaymentConfig.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/SysPaymentConfig.java new file mode 100644 index 000000000..412a9a1f3 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/SysPaymentConfig.java @@ -0,0 +1,11 @@ +package au.com.royalpay.payment.manage.management.sysconfig.core; + +import com.alibaba.fastjson.JSONObject; + +import java.util.List; + +public interface SysPaymentConfig { + List getPaymentChannel(); + + void updatePaymentChannel(JSONObject manager, String channel, int type); +} diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java new file mode 100644 index 000000000..11623dbda --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java @@ -0,0 +1,34 @@ +package au.com.royalpay.payment.manage.management.sysconfig.core.impls; + +import au.com.royalpay.payment.manage.management.sysconfig.core.SysPaymentConfig; +import au.com.royalpay.payment.manage.mappers.system.RateMapper; +import au.com.royalpay.payment.manage.mappers.system.SysPaymentConfigMapper; +import au.com.royalpay.payment.tools.exceptions.BadRequestException; +import com.alibaba.fastjson.JSONObject; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class SysPaymentConfigImpl implements SysPaymentConfig { + @Resource + private SysPaymentConfigMapper sysPaymentConfigMapper; + + @Override + public List getPaymentChannel() { + return sysPaymentConfigMapper.selectAll(); + } + + @Override + public void updatePaymentChannel(JSONObject manager, String channel, int type) { + JSONObject paymentConfig = sysPaymentConfigMapper.find(channel, type); + if (paymentConfig == null) { + throw new BadRequestException("不存在该快捷通道"); + } + Date lastUpdateTime = new Date(); + sysPaymentConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), false); + sysPaymentConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), true); + } +} diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/web/SysConfigController.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/web/SysConfigController.java index 6aaea6373..1575ca76d 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/web/SysConfigController.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/web/SysConfigController.java @@ -1,17 +1,15 @@ package au.com.royalpay.payment.manage.management.sysconfig.web; import au.com.royalpay.payment.manage.management.sysconfig.core.ClearDateManager; +import au.com.royalpay.payment.manage.management.sysconfig.core.SysPaymentConfig; import au.com.royalpay.payment.manage.permission.manager.ManagerMapping; +import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.env.SysConfigManager; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import com.alibaba.fastjson.JSONObject; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -27,6 +25,8 @@ public class SysConfigController { private SysConfigManager sysConfigManager; @Resource private ClearDateManager clearDateManager; + @Resource + private SysPaymentConfig sysPaymentConfig; @ManagerMapping(value = "/base", method = RequestMethod.GET) public JSONObject getBaseConfig() { @@ -48,8 +48,13 @@ public class SysConfigController { clearDateManager.setMonthClearDays(monthPattern, days); } + @ManagerMapping(value = "/payment/config", method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.FINANCIAL_STAFF, ManagerRole.OPERATOR}) + public List selectPaymentChannel() { + return sysPaymentConfig.getPaymentChannel(); + } - public static void main(String[] args) { - System.out.println("asd".equals(null)); + @ManagerMapping(value = "/payment/{channel}/config/{type}", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.FINANCIAL_STAFF, ManagerRole.OPERATOR}) + public void updatePaymentChannel(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @PathVariable String channel, @PathVariable int type) { + sysPaymentConfig.updatePaymentChannel(manager, channel, type); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java new file mode 100644 index 000000000..04d707498 --- /dev/null +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java @@ -0,0 +1,25 @@ +package au.com.royalpay.payment.manage.mappers.system; + +import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect; +import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; +import cn.yixblog.support.mybatis.autosql.annotations.AutoSql; +import cn.yixblog.support.mybatis.autosql.annotations.SqlType; +import com.alibaba.fastjson.JSONObject; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +@AutoMapper(tablename = "sys_payment_config",pkName = "channel") +public interface SysPaymentConfigMapper { + @AutoSql(type = SqlType.SELECT) + List selectAll(); + + @AutoSql(type = SqlType.SELECT) + JSONObject find(@Param(value = "channel_id") String channel, @Param(value = "type") int type); + + void updatePaymentConfig(@Param(value = "channel_id") String channel, @Param(value = "type") int type, @Param(value = "last_update_date")Date lastUpdateDate, + @Param(value = "last_update_by")String lastUpdateBy, @Param(value = "is_valid") boolean is_valid); + + JSONObject findOne(@Param(value = "type") int type); +} 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 314881b9f..4bbc970ee 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 @@ -369,4 +369,11 @@ public interface ClientManager { JSONObject comListPartnerSelection(JSONObject manager, PartnerQuery query); List getClientBySimpleQuery(JSONObject param); + + void switchPaymentConfig(String clientMoniker, HttpServletResponse response) throws IOException; + + @Transactional + void switchCBBankLink(JSONObject manager, String clientMoniker, boolean allow); + + String cbBankPayLink(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 71a63d93e..8cefec8eb 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 @@ -27,25 +27,7 @@ import au.com.royalpay.payment.manage.mappers.log.LogSettleMailMapper; 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; -import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientApplyMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientAuditProcessMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientBDMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientBankAccountMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientDeviceMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientFilesMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientRateMapper; -import au.com.royalpay.payment.manage.mappers.system.ClientsContractMapper; -import au.com.royalpay.payment.manage.mappers.system.CommoditiesMapper; -import au.com.royalpay.payment.manage.mappers.system.MailSendMapper; -import au.com.royalpay.payment.manage.mappers.system.MailUnsubMapper; -import au.com.royalpay.payment.manage.mappers.system.ManagerMapper; -import au.com.royalpay.payment.manage.mappers.system.OrgMapper; -import au.com.royalpay.payment.manage.mappers.system.PermissionPartnerModuleMapper; -import au.com.royalpay.payment.manage.mappers.system.SysRpayMerchantApplyMapper; -import au.com.royalpay.payment.manage.mappers.system.SysWxMerchantApplyMapper; +import au.com.royalpay.payment.manage.mappers.system.*; import au.com.royalpay.payment.manage.merchants.beans.ActivityPosterBuilder; import au.com.royalpay.payment.manage.merchants.beans.BankAccountInfo; import au.com.royalpay.payment.manage.merchants.beans.ClientAuthFilesInfo; @@ -313,6 +295,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid private PermissionPartnerManagerImpl permissionPartnerManagerImpl; @Resource private RiskAttentionMerchantsMapper riskAttentionMerchantsMapper; + @Resource + private SysPaymentConfigMapper sysPaymentConfigMapper; @Resource private SmsSender smsSender; @@ -445,6 +429,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid String yeepayQrcodeUrl = PlatformEnvironment.getEnv().concatUrl("/api/v1.0/yeepay/partners/" + client.getString("client_moniker") + "/jump/app"); client.put("yeepayQrcodeUrl", QRCodeUtils.qrcodeImageCode(yeepayQrcodeUrl, 250, true)); } + if (client.getString("cb_bankpay_url") != null) { + String cbBankPayQrcodeUrl = PlatformEnvironment.getEnv().concatUrl("/sys/partners/" + client.getString("client_moniker") + "/cb_bankpay/link"); + client.put("cbBankPayQrcodeUrl", QRCodeUtils.qrcodeImageCode(cbBankPayQrcodeUrl, 250, true)); + } return client; } @@ -1627,6 +1615,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid checkAddRate(config, "hf", "hf_rate_value", org, "min_hf_rate"); checkAddRate(config, "Rpay", "Rpay_rate_value", org, "min_Rpay_rate"); checkAddRate(config, "Yeepay", "yeepay_rate_value", org, "min_yeepay_rate"); + checkAddRate(config, "CB_BankPay", "min_cb_bankpay_value", org, "min_cb_bankpay_rate"); configNewClientRate(config, clientId, "Wechat", "wechat_rate_value", org, "min_wechat_rate"); configNewClientRate(config, clientId, "Alipay", "alipay_rate_value", org, "min_alipay_rate"); @@ -1636,6 +1625,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid configNewClientRate(config, clientId, "hf", "hf_rate_value", org, "min_hf_rate"); configNewClientRate(config, clientId, "Rpay", "Rpay_rate_value", org, "min_Rpay_rate"); configNewClientRate(config, clientId, "Yeepay", "yeepay_rate_value", org, "min_yeepay_rate"); + configNewClientRate(config, clientId, "CB_BankPay", "cb_bankpay_rate_value", org, "min_cb_bankpay_rate"); //todo 暂不更新Rpay+ 费率信息 rpayApi.modifySurchargeConfig(client); @@ -4268,6 +4258,50 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return PageListUtils.buildPageListResult(partners); } + @Override + public void switchPaymentConfig(String clientMoniker, HttpServletResponse response) throws IOException { + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + throw new BadRequestException("partner code is not exists!"); + } + JSONObject paymentConfig = sysPaymentConfigMapper.findOne(1); + if (paymentConfig == null) { + throw new BadRequestException("服务商未开启快捷支付"); + } + response.sendRedirect(String.format(PlatformEnvironment.getEnv().concatUrl(paymentConfig.getString("path")), clientMoniker)); + } + + @Override + public void switchCBBankLink(JSONObject manager, String clientMoniker, boolean allow) { + JSONObject client = getClientInfoByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + checkOrgPermission(manager, client); + if (StringUtils.isEmpty(client.getString("cb_bankpay_url"))) { + String longUrl = PlatformEnvironment.getEnv().concatUrl("/sys/partners/" + client.getString("client_moniker") + "/cb_bankpay/link"); + String cb_bankpay_url = getCBBankShortLink(longUrl); + client.put("cb_bankpay_url", cb_bankpay_url); + client.put("enable_cb_bankpay_link", allow); + clientMapper.update(client); + } else { + client.put("enable_cb_bankpay_link", allow); + clientMapper.update(client); + } + } + + @Override + public String cbBankPayLink(String clientMoniker) { + JSONObject client = clientMapper.findClientByMoniker(clientMoniker); + if (client == null) { + throw new BadRequestException("partner code is not exists!"); + } + JSONObject paymentConfig = sysPaymentConfigMapper.findOne(1); + if (paymentConfig == null) { + throw new BadRequestException("服务商未开启快捷支付"); + } + return String.format(PlatformEnvironment.getEnv().concatUrl(paymentConfig.getString("path")), clientMoniker); + } private TemplateMessage initClientMessage(JSONObject client, String newExpiryDate, String wechatOpenid, String templateId) { TemplateMessage notice = new TemplateMessage(wechatOpenid, templateId, null); @@ -4292,4 +4326,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid }).start(); } + private String getCBBankShortLink(String longUrl) { + MpWechatApi api = mpWechatApiProvider.getNewPaymentApi(); + return api.registerShortUrl(longUrl); + } } 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 a39bd8f1d..654263a3c 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 @@ -621,4 +621,19 @@ public class PartnerManageController { return clientManager.comListPartnerSelection(manager, query); } + + @RequestMapping(value = "/{clientMoniker}/cb_bankpay/link", method = RequestMethod.GET) + public void switchPaymentWay(@PathVariable String clientMoniker, HttpServletResponse response) throws IOException { + clientManager.switchPaymentConfig(clientMoniker, response); + } + + @ManagerMapping(value = "/{clientMoniker}/cb_bankpay", method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) + public void switchCBBankPayLinkPermission(@PathVariable String clientMoniker, @RequestBody JSONObject pass, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + clientManager.switchCBBankLink(manager, clientMoniker, pass.getBooleanValue("allow")); + } + + @RequestMapping(value = "/{clientMoniker}/jump/link", method = RequestMethod.GET) + public String jumpCBBankPayLink(@PathVariable String clientMoniker) { + return clientManager.cbBankPayLink(clientMoniker); + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java b/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java index 772911b27..e65588da3 100644 --- a/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java +++ b/src/main/java/au/com/royalpay/payment/manage/organizations/beans/OrgInfo.java @@ -30,6 +30,7 @@ public class OrgInfo { private Double jd_rate_value; private Double hf_rate_value; private Double yeepay_rate_value; + private Double cb_bankpay_rate_value; private int is_valid; private String search_text; private int page = 1; @@ -44,6 +45,7 @@ public class OrgInfo { private Double min_alipayonline_rate; private Double min_hf_rate; private Double min_yeepay_rate; + private Double min_cb_bankpay_rate; private String state; private String senior_parent_org_id; @@ -341,4 +343,20 @@ public class OrgInfo { public void setMin_yeepay_rate(Double min_yeepay_rate) { this.min_yeepay_rate = min_yeepay_rate; } + + public Double getCb_bankpay_rate_value() { + return cb_bankpay_rate_value; + } + + public void setCb_bankpay_rate_value(Double cb_bankpay_rate_value) { + this.cb_bankpay_rate_value = cb_bankpay_rate_value; + } + + public Double getMin_cb_bankpay_rate() { + return min_cb_bankpay_rate; + } + + public void setMin_cb_bankpay_rate(Double min_cb_bankpay_rate) { + this.min_cb_bankpay_rate = min_cb_bankpay_rate; + } } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml new file mode 100644 index 000000000..6b270ceed --- /dev/null +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml @@ -0,0 +1,20 @@ + + + + + update sys_payment_config + SET is_valid = #{is_valid},last_update_by = #{last_update_by},last_update_date = #{last_update_date} + + type = #{type} + + and channel_id = #{channel_id} + + + and channel_id != #{channel_id} + + + + + \ No newline at end of file diff --git a/src/main/ui/static/config/organizations/templates/new_org.html b/src/main/ui/static/config/organizations/templates/new_org.html index a9d931c59..564056750 100644 --- a/src/main/ui/static/config/organizations/templates/new_org.html +++ b/src/main/ui/static/config/organizations/templates/new_org.html @@ -203,6 +203,18 @@ +
+ +
+
+ + % +
+
+
@@ -291,6 +303,18 @@
+
+ +
+
+ + % +
+
+
%
+
+ +
+ + % +
+
@@ -236,6 +243,15 @@ % +
+ +
+ + % +
+
diff --git a/src/main/ui/static/config/sysconfigs/sysconfigs.js b/src/main/ui/static/config/sysconfigs/sysconfigs.js index bb71c95ce..a8a32ea2a 100644 --- a/src/main/ui/static/config/sysconfigs/sysconfigs.js +++ b/src/main/ui/static/config/sysconfigs/sysconfigs.js @@ -13,6 +13,10 @@ define(['angular', 'uiRouter'], function (angular) { url: '/basic', templateUrl: '/static/config/sysconfigs/templates/basic.html', controller: 'basicConfigCtrl' + }).state('sysconfig.payment_bankpay_config', { + url: '/payment', + templateUrl: '/static/config/sysconfigs/templates/payment_bankpay_config.html', + controller: 'paymentChannelConfigCtrl' }).state('permission', { url: '/permission', templateUrl: '/static/config/sysconfigs/templates/permission_config.html', @@ -66,6 +70,51 @@ define(['angular', 'uiRouter'], function (angular) { }]); + app.controller('paymentChannelConfigCtrl', ['$scope', '$http', 'commonDialog', function ($scope, $http, commonDialog) { + $scope.loadPaymentChannel = function () { + $scope.cb_bankpay_channel = null; + $scope.pay_channel = null; + $scope.cb_bankpay = []; + $scope.pay = []; + $http.get('/sysconfig/payment/config').then(function (resp) { + resp.data.forEach(function (channel) { + if (channel.type === 1) { + if (channel.is_valid) { + $scope.cb_bankpay_channel = channel.channel_id; + } + $scope.cb_bankpay.push(channel); + } + if (channel.type === 2) { + if (channel.is_valid) { + $scope.pay_channel = channel.channel_id; + } + $scope.pay.push(channel); + } + + }) + }) + }; + $scope.loadPaymentChannel(); + $scope.updatePaymentConfig = function (type,channel) { + if (channel == null) { + commonDialog.alert({type: 'error', title: 'Error', content: '支付通道不能为空'}); + return; + } + commonDialog.confirm({ + title: 'Confirm', + content: '你确定要将支付通道更改为:' + channel + }).then(function () { + $http.put('/sysconfig/payment/'+ channel + '/config/' + type).then(function (resp) { + commonDialog.alert({type: 'success', title: 'Success', content: '修改成功'}); + $scope.loadPaymentChannel(); + }, function (resp) { + commonDialog.alert({type: 'error', title: 'Error', content: resp.data.message}); + $scope.loadPaymentChannel(); + }); + }) + } + }]); + app.controller('servantsConfigCtrl', ['$scope','$http','commonDialog', function ($scope,$http,commonDialog) { $scope.ctrl={}; $scope.loadServants = function () { diff --git a/src/main/ui/static/config/sysconfigs/templates/payment_bankpay_config.html b/src/main/ui/static/config/sysconfigs/templates/payment_bankpay_config.html new file mode 100644 index 000000000..da1e8d5e6 --- /dev/null +++ b/src/main/ui/static/config/sysconfigs/templates/payment_bankpay_config.html @@ -0,0 +1,40 @@ +
+

Basic Config

+ +
+ +
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+
+
+
diff --git a/src/main/ui/static/config/sysconfigs/templates/sysconfig.html b/src/main/ui/static/config/sysconfigs/templates/sysconfig.html index 970daaa5e..d48cbb4c3 100644 --- a/src/main/ui/static/config/sysconfigs/templates/sysconfig.html +++ b/src/main/ui/static/config/sysconfigs/templates/sysconfig.html @@ -35,10 +35,10 @@ - + diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 42072fd12..d6ba7be9a 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -1318,6 +1318,16 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter commonDialog.alert({title: 'Error', content: '您的浏览器不支持!', type: 'error'}); } }; + $scope.copyCBBankPayLink = function() { + var e=document.getElementById("cpcbbankpay"); + e.select(); + var successful = document.execCommand("Copy"); + if (successful) { + commonDialog.alert({title: 'Success', content: '已复制到剪切板!', type: 'success'}); + }else { + commonDialog.alert({title: 'Error', content: '您的浏览器不支持!', type: 'error'}); + } + }; $scope.loadPartnerPaymentInfo = function () { $http.get('/sys/partners/' + $scope.partner.client_moniker).then(function (resp) { $scope.paymentInfo = resp.data; @@ -1624,6 +1634,21 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter }) }; + $scope.toggleCBBankPayLink = function () { + if (!$scope.paymentInfo) { + return; + } + $http.put('/sys/partners/' + $scope.partner.client_moniker + '/cb_bankpay', {allow: $scope.paymentInfo.enable_cb_bankpay_link}).then(function () { + $scope.loadPartnerPaymentInfo(); + }, function (resp) { + commonDialog.alert({ + title: 'Failed to change cb_bankpay permission status', + content: resp.data.message, + type: 'error' + }); + }) + }; + $scope.toggleGatewayEmailNotice = function (channel) { if (!$scope.paymentInfo) { return; diff --git a/src/main/ui/static/payment/partner/templates/partner_bankaccounts.html b/src/main/ui/static/payment/partner/templates/partner_bankaccounts.html index 5385003d5..7ebdd521d 100644 --- a/src/main/ui/static/payment/partner/templates/partner_bankaccounts.html +++ b/src/main/ui/static/payment/partner/templates/partner_bankaccounts.html @@ -173,6 +173,7 @@
  • HFpay
  • Rpay+
  • Yeepay
  • +
  • CB_BankPay
  • diff --git a/src/main/ui/static/payment/partner/templates/partner_new_rate.html b/src/main/ui/static/payment/partner/templates/partner_new_rate.html index f9400f322..3402bd481 100644 --- a/src/main/ui/static/payment/partner/templates/partner_new_rate.html +++ b/src/main/ui/static/payment/partner/templates/partner_new_rate.html @@ -183,6 +183,30 @@ + +
    + +
    +
    + +
    %
    +
    +
    +
    + No more than 5.0% +
    +
    + No less than 0.6% +
    +
    + Required Field +
    +
    + +
    +
    +
    + +
    + +
    +
    @@ -394,6 +400,30 @@ +
    +
    CB Bank Payment
    +
    +
    + +
    + + +
    +
    + + +
    +   仅支持微信客户端扫描 +
    +
    +
    +
    +
    Retail In Store Payment(App, WePayLite, Albert)
    diff --git a/src/main/ui/static/templates/payment/v1/payment.js b/src/main/ui/static/templates/payment/v1/payment.js index 781f43f4b..cedcc0887 100644 --- a/src/main/ui/static/templates/payment/v1/payment.js +++ b/src/main/ui/static/templates/payment/v1/payment.js @@ -62,7 +62,21 @@ $(function () { updatePrice(); } }); - + $('.cb_bankpay').click(function () { + $.ajax({ + url: '/sys/partners/' + window.client_moniker + '/jump/link', + method: 'GET', + success: function (res) { + location.href = res; + }, + error: function (resp) { + var config = { + template: resp + }; + showWeuiDialog(config); + } + }) + }); $('#key_B').bind('touchstart', function () { backspace(); }); From 1796a7fd3e17baec17a72d91bd744484bce78835 Mon Sep 17 00:00:00 2001 From: yangkai Date: Tue, 18 Dec 2018 19:25:03 +0800 Subject: [PATCH 2/4] fix --- .../payment/manage/merchants/core/impls/ClientManagerImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 8cefec8eb..220fe6366 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 @@ -1232,7 +1232,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid @Override public void switchChannelPermission(JSONObject manager, String clientMoniker, String channel, boolean allow) { for (PaymentChannelApi channelApi : channels) { - if (channelApi.channel().equalsIgnoreCase(channel)) { + if (channelApi.channel().equalsIgnoreCase(channel) || "CB_BankPay".equalsIgnoreCase(channel)) { JSONObject client = getClientInfoByMoniker(clientMoniker); if (client == null) { throw new NotFoundException("Client Not Exists"); @@ -1541,6 +1541,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid for (PaymentChannelApi channel : channels) { rates.addAll(merchantInfoProvider.listClientRates(clientId, new Date(), channel.channel(), includingInactive)); } + rates.addAll(merchantInfoProvider.listClientRates(clientId, new Date(), "CB_BankPay", includingInactive)); if (!rates.isEmpty()) { try { for (JSONObject rate : rates) { From 4886dd214e68ab8665b29d836d8838a2dcbc8a26 Mon Sep 17 00:00:00 2001 From: yangkai Date: Tue, 18 Dec 2018 20:35:30 +0800 Subject: [PATCH 3/4] fix --- .../sysconfig/core/impls/SysPaymentConfigImpl.java | 12 ++++++------ ...ConfigMapper.java => SysChannelConfigMapper.java} | 5 ++--- .../merchants/core/impls/ClientManagerImpl.java | 6 +++--- ...ntConfigMapper.xml => SysChannelConfigMapper.xml} | 6 +++--- 4 files changed, 14 insertions(+), 15 deletions(-) rename src/main/java/au/com/royalpay/payment/manage/mappers/system/{SysPaymentConfigMapper.java => SysChannelConfigMapper.java} (84%) rename src/main/resources/au/com/royalpay/payment/manage/mappers/system/{SysPaymentConfigMapper.xml => SysChannelConfigMapper.xml} (82%) diff --git a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java index 11623dbda..67d7af1ef 100644 --- a/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/management/sysconfig/core/impls/SysPaymentConfigImpl.java @@ -2,7 +2,7 @@ package au.com.royalpay.payment.manage.management.sysconfig.core.impls; import au.com.royalpay.payment.manage.management.sysconfig.core.SysPaymentConfig; import au.com.royalpay.payment.manage.mappers.system.RateMapper; -import au.com.royalpay.payment.manage.mappers.system.SysPaymentConfigMapper; +import au.com.royalpay.payment.manage.mappers.system.SysChannelConfigMapper; import au.com.royalpay.payment.tools.exceptions.BadRequestException; import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Service; @@ -14,21 +14,21 @@ import java.util.List; @Service public class SysPaymentConfigImpl implements SysPaymentConfig { @Resource - private SysPaymentConfigMapper sysPaymentConfigMapper; + private SysChannelConfigMapper sysChannelConfigMapper; @Override public List getPaymentChannel() { - return sysPaymentConfigMapper.selectAll(); + return sysChannelConfigMapper.selectAll(); } @Override public void updatePaymentChannel(JSONObject manager, String channel, int type) { - JSONObject paymentConfig = sysPaymentConfigMapper.find(channel, type); + JSONObject paymentConfig = sysChannelConfigMapper.find(channel, type); if (paymentConfig == null) { throw new BadRequestException("不存在该快捷通道"); } Date lastUpdateTime = new Date(); - sysPaymentConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), false); - sysPaymentConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), true); + sysChannelConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), false); + sysChannelConfigMapper.updatePaymentConfig(channel, type, lastUpdateTime, manager.getString("display_name"), true); } } diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java similarity index 84% rename from src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java rename to src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java index 04d707498..2d4eb5549 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.java @@ -1,6 +1,5 @@ package au.com.royalpay.payment.manage.mappers.system; -import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect; import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; import cn.yixblog.support.mybatis.autosql.annotations.AutoSql; import cn.yixblog.support.mybatis.autosql.annotations.SqlType; @@ -10,8 +9,8 @@ import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; -@AutoMapper(tablename = "sys_payment_config",pkName = "channel") -public interface SysPaymentConfigMapper { +@AutoMapper(tablename = "cb_channel_config",pkName = "channel_id") +public interface SysChannelConfigMapper { @AutoSql(type = SqlType.SELECT) List selectAll(); 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 220fe6366..124e10295 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 @@ -296,7 +296,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid @Resource private RiskAttentionMerchantsMapper riskAttentionMerchantsMapper; @Resource - private SysPaymentConfigMapper sysPaymentConfigMapper; + private SysChannelConfigMapper sysChannelConfigMapper; @Resource private SmsSender smsSender; @@ -4265,7 +4265,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (client == null) { throw new BadRequestException("partner code is not exists!"); } - JSONObject paymentConfig = sysPaymentConfigMapper.findOne(1); + JSONObject paymentConfig = sysChannelConfigMapper.findOne(1); if (paymentConfig == null) { throw new BadRequestException("服务商未开启快捷支付"); } @@ -4297,7 +4297,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (client == null) { throw new BadRequestException("partner code is not exists!"); } - JSONObject paymentConfig = sysPaymentConfigMapper.findOne(1); + JSONObject paymentConfig = sysChannelConfigMapper.findOne(1); if (paymentConfig == null) { throw new BadRequestException("服务商未开启快捷支付"); } diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.xml similarity index 82% rename from src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml rename to src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.xml index 6b270ceed..a7bc1b1af 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysPaymentConfigMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/SysChannelConfigMapper.xml @@ -1,8 +1,8 @@ - + - update sys_payment_config + update cb_channel_config SET is_valid = #{is_valid},last_update_by = #{last_update_by},last_update_date = #{last_update_date} type = #{type} @@ -15,6 +15,6 @@ \ No newline at end of file From 28a74d89e57bdc5007879ba7cc957b4d64471f0b Mon Sep 17 00:00:00 2001 From: yangkai Date: Tue, 18 Dec 2018 21:02:31 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B3=A8=E9=87=8Arpay+=E8=B4=B9=E7=8E=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payment/manage/merchants/core/impls/ClientManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 124e10295..393c7587e 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 @@ -1628,7 +1628,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid configNewClientRate(config, clientId, "Yeepay", "yeepay_rate_value", org, "min_yeepay_rate"); configNewClientRate(config, clientId, "CB_BankPay", "cb_bankpay_rate_value", org, "min_cb_bankpay_rate"); //todo 暂不更新Rpay+ 费率信息 - rpayApi.modifySurchargeConfig(client); + //rpayApi.modifySurchargeConfig(client); }