From 259511c92bf82c170c9915219ea0264e1b78bb31 Mon Sep 17 00:00:00 2001 From: AlanFenng Date: Fri, 10 Apr 2020 18:06:00 +0800 Subject: [PATCH 01/48] =?UTF-8?q?upgrade=20=E4=BC=98=E5=8C=96=E5=8D=A1?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/ui/static/templates/payment/v1/card_pay.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/ui/static/templates/payment/v1/card_pay.js b/src/main/ui/static/templates/payment/v1/card_pay.js index 95dfb5edc..425a6a31a 100644 --- a/src/main/ui/static/templates/payment/v1/card_pay.js +++ b/src/main/ui/static/templates/payment/v1/card_pay.js @@ -25,6 +25,9 @@ $(function () { border: 'none', borderRadius: '10px' }; + cardFrame.onReady = function(){ + $('#readyModal').hide() + } cardFrame.onError = function (msg) { $('#errorMsgBox').text(msg).show(); }; From 16debe6c9f7522545f7184aeb6dcd75302e99ff9 Mon Sep 17 00:00:00 2001 From: yixian Date: Fri, 10 Apr 2020 18:14:13 +0800 Subject: [PATCH 02/48] module upgrade to 2.1.13 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ac75bc895..c84625d47 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 2.1.8 + 2.1.13 4.0.0 manage From a1928e2bc9788763ee9e99a5873e27719dba9a05 Mon Sep 17 00:00:00 2001 From: yixian Date: Fri, 10 Apr 2020 18:30:39 +0800 Subject: [PATCH 03/48] ui update --- src/main/ui/static/css/cardpay.css | 11 +++++++++++ src/main/ui/static/templates/payment/v1/card_pay.js | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/ui/static/css/cardpay.css b/src/main/ui/static/css/cardpay.css index de5d4d11a..aa35dec7b 100644 --- a/src/main/ui/static/css/cardpay.css +++ b/src/main/ui/static/css/cardpay.css @@ -122,6 +122,17 @@ section.content { right: 30px; } +.ready-modal { + position: absolute; + width: 100%; + height: 100%; + text-align: center; + background: rgba(38, 38, 38, 0.5); + z-index: 9999; + color: white; + padding-top: 150px; +} + .qrpay-container .btn{ border-radius: 0; } diff --git a/src/main/ui/static/templates/payment/v1/card_pay.js b/src/main/ui/static/templates/payment/v1/card_pay.js index 425a6a31a..725460eb4 100644 --- a/src/main/ui/static/templates/payment/v1/card_pay.js +++ b/src/main/ui/static/templates/payment/v1/card_pay.js @@ -27,7 +27,7 @@ $(function () { }; cardFrame.onReady = function(){ $('#readyModal').hide() - } + }; cardFrame.onError = function (msg) { $('#errorMsgBox').text(msg).show(); }; From 80fe7bf08c40df871a9195ec6d138830bf719acc Mon Sep 17 00:00:00 2001 From: luoyang Date: Mon, 13 Apr 2020 10:35:04 +0800 Subject: [PATCH 04/48] =?UTF-8?q?fix=20=E5=BC=80=E5=90=AF=E8=B7=A8?= =?UTF-8?q?=E5=A2=83=E5=95=86=E5=9F=8Eapp=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../manage/appclient/core/impls/RetailRSvcServiceImpl.java | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index e026ddd1c..0e3e8a33c 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 2.1.4 + 2.1.5 UTF-8 1.8.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java index 15dba879d..9bff7968f 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java @@ -217,10 +217,7 @@ public class RetailRSvcServiceImpl implements RetailRSvcService { String title = params.getString("title"); String body = params.getString("body"); String url = decData(params.getString("url"), key, svcInfo.getString("platform_pri_key")); - if (StringUtils.equalsIgnoreCase("PINE", client.getString("client_moniker"))|| - StringUtils.equalsIgnoreCase("TUTU", client.getString("client_moniker"))) { - sendRServiceNotifyMessage(client, title, body, url); - } + sendRServiceNotifyMessage(client, title, body, url); result.put("result_status", "SUCCESS"); } catch (Exception e) { logger.error("geek notify app fail:{} - {}",sourceCode,e.getMessage()); From 45645f4b218f1afaa93474c84f5a770c0ec29146 Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 09:19:11 +0800 Subject: [PATCH 05/48] add partner invoice --- pom.xml | 2 +- .../manage/tradelog/core/impls/TradeLogServiceImpl.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 0e3e8a33c..2c59e93c3 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 2.1.5 + 2.1.6 UTF-8 1.8.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index 670392a95..d11771583 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -732,8 +732,7 @@ public class TradeLogServiceImpl implements TradeLogService { String fileName = client.getString("client_moniker") + "_" + parmerters.getString("dateRange").replaceAll("/", ""); response.setHeader("Content-Disposition", "attachment;fileName=" + fileName + ".pdf"); OutputStream outs = response.getOutputStream(); -// JSONObject clientIncrement = clientIncrementalMapper.findByClinetIdAndChannel(client.getIntValue("client_id"), "RP跨境商城"); - JSONObject clientIncrement = null; + JSONObject clientIncrement = clientIncrementalMapper.findByClinetIdAndChannel(client.getIntValue("client_id"), "RP跨境商城"); InputStream jasper = clientIncrement == null ? trans_flow.getInputStream() : incremental_trans_flow.getInputStream(); byte[] bytes = JasperRunManager.runReportToPdf(jasper, parmerters, jrDataSource); outs.write(bytes, 0, bytes.length); From 229b5ca3bdd1ce669f9b50f1821734ba21b8966b Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 10:13:00 +0800 Subject: [PATCH 06/48] fix partner invoice style --- .../templates/partner_settlement_dialog.html | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html b/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html index 16f3195f7..492a24bf1 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html @@ -162,13 +162,12 @@ Currency Input Amount Total Amount - - Surcharge Amount - System Rate - System Profit - Incremental Rate - Incremental Profit - Tax Amount + Surcharge rate for RoyalPay + Surcharge Amount for RoyalPay + GST Amount for RoyalPay + Surcharge rate for Mini Program + Surcharge Amount for Mini Program + GST Amount for Mini Program Settle Amount Remark @@ -185,16 +184,14 @@ - - {{(((tr.surcharge_rate * 100) > tr.rate_value)?(tr.surcharge_rate * 100-tr.rate_value):tr.surcharge_rate)| number : 2}} - % + + {{(((tr.surcharge_rate * 100) > tr.rate_value)?((tr.surcharge_rate * 100-tr.rate_value)):(tr.surcharge_rate))|number:2}} % - {{(tr.total_surcharge-tr.incremental_surcharge) | number : 2 | currency:tr.currency}} - {{tr.source}}:{{(tr.rate_value) | number : 2}}% - 0.00% - {{tr.source}}:{{tr.incremental_surcharge | currency:tr.currency}}{{0.00 | currency:tr.currency}} - {{0.00 | currency:tr.currency}} - + + + + + From dcbc3b64329cd9e8454fcd16e29bc1d2280e9f51 Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 10:24:39 +0800 Subject: [PATCH 07/48] fix partner invoice style --- .../templates/partner_settlement_dialog.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html b/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html index 492a24bf1..ccd63d774 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_settlement_dialog.html @@ -211,6 +211,12 @@ Transaction Time Currency Total Amount + Surcharge rate for RoyalPay + Surcharge Amount for RoyalPay + GST Amount for RoyalPay + Surcharge rate for Mini Program + Surcharge Amount for Mini Program + GST Amount for Mini Program Settle Amount Remark @@ -221,6 +227,14 @@ + + {{(((tr.surcharge_rate * 100) > tr.rate_value)?((tr.surcharge_rate * 100-tr.rate_value)):(tr.surcharge_rate))|number:2}} % + + + + + + From cb74f32ebd330e5f779a99cd17dd5a70d0a630fa Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 14:27:55 +0800 Subject: [PATCH 08/48] ui update --- src/main/ui/static/css/cardpay.css | 216 +++++++++-------------------- 1 file changed, 63 insertions(+), 153 deletions(-) diff --git a/src/main/ui/static/css/cardpay.css b/src/main/ui/static/css/cardpay.css index aa35dec7b..31ba46dd0 100644 --- a/src/main/ui/static/css/cardpay.css +++ b/src/main/ui/static/css/cardpay.css @@ -1,188 +1,98 @@ -.qrpay-background { - position: fixed; - background: #f2f2f2; - top: 0; - bottom: 0; - right: 0; - left: 0; - z-index: -1; -} - -section.content { - position: absolute; - top: 70px; - bottom: 64px; +.logo-container { width: 100%; - overflow: auto; - left: 0; -} - -.qrpay-container { - width: 700px; - position: relative; - display: block; - margin: 40px auto; - background: #fff; - overflow: visible; - box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.30); -} - -.qrpay-container .qr-brand { - width: 100%; - height: 80px; - padding-top: 20px; -} - -.qrpay-container .qr-brand.wechat { - background: #09bb07; -} - -.qrpay-container .qr-brand.alipay { - background: #1eabeb; -} - -.qrpay-container .qr-brand > .wechat-logo { - display: block; - margin: auto; - height: 40px; -} - -.qrpay-container .price-box { - position: relative; - display: block; - margin: 15px auto; - width: 240px; -} - -.qrpay-container .price-box:after { - content: ''; - display: block; - clear: both; -} - -.qrpay-container .price-box .exchange-rate { - font-size: 16px; - display: block; -} - -.qrpay-container .price-box .price { - font-size: 22px; - float: left; - line-height: 28px; -} - -.qrpay-container .price-box .price-left { - font-weight: bold; - border-right: 2px solid #666; - padding-right: 10px; + text-align: center; + padding: 30px 0px; } -.qrpay-container .price-box .price-right { - padding-left: 10px; - width: 49%; - white-space: nowrap; - text-align: left; +.logo { + width: 137px; + height: 29px; } -.qrpay-container .card-input-box { - width: 100%; +.price { + color: #FF6600; + letter-spacing: 0; text-align: center; - border: none; + margin-top: 15px; } -.qrpay-container .qrcode-img { - width: 140px; - height: 140px; - position: relative; - display: block; - margin: auto; +.card-pay-table { + padding: 15px; } -.qrpay-container .qr-footer { - position: relative; - bottom: 0; - border-radius: 0 0 10px 10px; - width: 100%; - padding: 10px; - background: #f7f7f7; - color: #000; +.card-pay-title { + font-size: 14px; + color: #9B9B9B; + letter-spacing: 0; } -.qrpay-container .qr-footer .form-group { - margin-bottom: 2px; - font-size: 12px; - line-height: 12px; +.card-pay-content { + font-size: 14px; + color: #202020; + letter-spacing: 0; } -.qrpay-container .qr-desc { - position: absolute; - height: 150px; - z-index: 999; - top: 140px; - right: 30px; +.row-height { + margin-bottom: 10px; } -.ready-modal { - position: absolute; +.card-pay-footer { + position: fixed; + font-family: PingFangSC-Regular; + font-size: 14px; + color: #DDDDDD; + letter-spacing: 0; + bottom: 15px; width: 100%; - height: 100%; text-align: center; - background: rgba(38, 38, 38, 0.5); - z-index: 9999; - color: white; - padding-top: 150px; -} - -.qrpay-container .btn{ - border-radius: 0; -} - -#footer { - position: absolute; - width: 100%; - bottom: 0; } -@media (max-width: 997px) { - section.content { +@media screen and (max-width: 768px) { + .form-container { width: 100%; - position: relative; - bottom: 0; - top: 0; - overflow: visible; + padding: 22px 20px; } - .qrpay-container { + .form-content { width: 100%; } - - #footer { - position: relative; + .card-pay-table-container { + width: 100%; + margin: 0 auto; } - .qr-desc { - display: none; + .card-line { + width: 92%; + margin: 0 auto; + border-bottom: 1px solid #DDDDDD; } } -@media (min-width: 768px) { - .dl-horizontal dd { - margin-left: 180px; - line-height: 32px; +@media screen and (min-width: 768px) { + .form-container { + width: 50%; + margin: 0 auto; + padding: 22px 20px; } -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - line-height: 32px; + .form-content { + width: 50%; + margin: 0 auto; + } + .card-pay-table-container { + width: 40%; + margin: 0 auto; } -} + .card-line { + width:100%; + margin: 0 auto; + border-bottom: 1px solid #DDDDDD; + } +} +.card-input-box { + width: 100%; + text-align: center; + border: none; +} \ No newline at end of file From 6207aabe33dff1bc7303d7975060944961494513 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 14:28:24 +0800 Subject: [PATCH 09/48] module upgrade --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c59e93c3..58e786c31 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 2.1.13 + 2.1.16 4.0.0 manage From 593258b5ab27d264c662ddd0fe8e160a2f992414 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 14:38:31 +0800 Subject: [PATCH 10/48] payment ui --- src/main/ui/static/css/img/logo.png | Bin 0 -> 7937 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/ui/static/css/img/logo.png diff --git a/src/main/ui/static/css/img/logo.png b/src/main/ui/static/css/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..51032a5dbdb04e5745830bcf3a5bff1a0e3b3af0 GIT binary patch literal 7937 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 Date: Tue, 14 Apr 2020 14:47:36 +0800 Subject: [PATCH 11/48] payment ui --- src/main/ui/static/css/cardpay.css | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/ui/static/css/cardpay.css b/src/main/ui/static/css/cardpay.css index 31ba46dd0..ea7676f66 100644 --- a/src/main/ui/static/css/cardpay.css +++ b/src/main/ui/static/css/cardpay.css @@ -66,6 +66,13 @@ margin: 0 auto; border-bottom: 1px solid #DDDDDD; } + + .form-button { + width: 92%; + margin: 30px 0; + border-radius: 4px; + height: 50px; + } } @media screen and (min-width: 768px) { @@ -89,6 +96,13 @@ margin: 0 auto; border-bottom: 1px solid #DDDDDD; } + + .form-button { + width: 60%; + margin: 30px 0; + border-radius: 4px; + height: 50px; + } } .card-input-box { From 950ae5539abeffe99f43d92bc48c69d32362716c Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 14:51:33 +0800 Subject: [PATCH 12/48] payment ui --- src/main/ui/static/css/cardpay.css | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/ui/static/css/cardpay.css b/src/main/ui/static/css/cardpay.css index ea7676f66..7a2437294 100644 --- a/src/main/ui/static/css/cardpay.css +++ b/src/main/ui/static/css/cardpay.css @@ -56,6 +56,7 @@ .form-content { width: 100%; } + .card-pay-table-container { width: 100%; margin: 0 auto; @@ -86,13 +87,14 @@ width: 50%; margin: 0 auto; } + .card-pay-table-container { width: 40%; margin: 0 auto; } .card-line { - width:100%; + width: 100%; margin: 0 auto; border-bottom: 1px solid #DDDDDD; } @@ -105,6 +107,12 @@ } } +.btn-warning { + color: #fff; + background-color: #FF6600 !important; + border-color: #FF6600 !important; +} + .card-input-box { width: 100%; text-align: center; From 68fa5e1e4d49f2c802356ebdcd2dd414927f94e1 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 15:41:09 +0800 Subject: [PATCH 13/48] payment ui --- .../static/templates/payment/v1/card_pay.js | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/ui/static/templates/payment/v1/card_pay.js b/src/main/ui/static/templates/payment/v1/card_pay.js index 725460eb4..c4aed4789 100644 --- a/src/main/ui/static/templates/payment/v1/card_pay.js +++ b/src/main/ui/static/templates/payment/v1/card_pay.js @@ -1,7 +1,10 @@ $(function () { let $container = $('.card-input-box')[0]; + let ctrl = {ready: false, pending: false} let cardFrame = window.channel_account_id ? new TokenInputFrame($container, window.channel_account_id) : new CardInputFrame($container); + let $errorMsgBox = $('#errorMsgBox'); cardFrame.onSuccess = function (secretData) { + ctrl.pending = true; $.ajax({ url: 'commit', data: JSON.stringify(secretData), @@ -11,10 +14,11 @@ $(function () { startCheckOrder(window.client_moniker, window.partner_order_id); }, error: function (jqXHR) { + ctrl.pending = false; let errorText = jqXHR.responseText; let err = JSON.parse(errorText); - if(err){ - $('#errorMsgBox').text(err.message).show(); + if (err) { + $errorMsgBox.text(err.message).show(); } } }) @@ -25,16 +29,26 @@ $(function () { border: 'none', borderRadius: '10px' }; - cardFrame.onReady = function(){ - $('#readyModal').hide() + cardFrame.onReady = function () { + $('#readyModal').hide(); + $('#payBtn').removeAttr('disabled'); + ctrl.ready = true; }; cardFrame.onError = function (msg) { - $('#errorMsgBox').text(msg).show(); + $errorMsgBox.text(msg).show(); }; cardFrame.show(); $('#payBtn').click(function () { - $('#errorMsgBox').hide(); + if (!ctrl.ready) { + $errorMsgBox.text('Loading...').show(); + return; + } + if (ctrl.pending) { + $errorMsgBox.text('Pending...').show(); + return; + } + $errorMsgBox.hide(); cardFrame.commit(); }); From b0e1c5f25977ff2f53af7404d9d0c3be79a9b233 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 16:07:36 +0800 Subject: [PATCH 14/48] json issue --- .../com/royalpay/payment/manage/PaymentManageApplication.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/au/com/royalpay/payment/manage/PaymentManageApplication.java b/src/main/java/au/com/royalpay/payment/manage/PaymentManageApplication.java index 3fcbe051a..b84648e5f 100644 --- a/src/main/java/au/com/royalpay/payment/manage/PaymentManageApplication.java +++ b/src/main/java/au/com/royalpay/payment/manage/PaymentManageApplication.java @@ -1,5 +1,6 @@ package au.com.royalpay.payment.manage; +import com.alibaba.fastjson.parser.ParserConfig; import com.google.code.kaptcha.Producer; import com.google.code.kaptcha.impl.DefaultKaptcha; import com.google.code.kaptcha.util.Config; @@ -33,6 +34,7 @@ import java.util.concurrent.ScheduledExecutorService; public class PaymentManageApplication { public static void main(String[] args) { + ParserConfig.getGlobalInstance().setAutoTypeSupport(true); SpringApplication.run(PaymentManageApplication.class, args); } From 77852b44ae309117a1780c7d5a9492df9aa346c8 Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 17:24:53 +0800 Subject: [PATCH 15/48] add card payment support --- pom.xml | 2 +- .../impls/ChannelsAnalysisServiceImpl.java | 6 +- .../impls/CustomersAnalysisServiceImp.java | 4 +- .../core/impls/DashboardServiceImpl.java | 8 +- .../core/impls/BDPrizeServiceImpl.java | 15 +- .../dev/core/impl/ManualServiceimpl.java | 12 +- .../merchants/beans/ClientRateConfig.java | 12 +- .../manage/merchants/core/ClientManager.java | 6 + .../core/impls/ClientManagerImpl.java | 86 +++++- .../web/PartnerManageController.java | 17 ++ .../core/impls/TradeLogServiceImpl.java | 7 + .../CustomerAndOrdersStatisticsMapper.xml | 12 +- .../mappers/TransactionAnalysisMapper.xml | 10 +- .../manage/mappers/payment/OrderMapper.xml | 3 +- .../cbbank_channel_trans_analysis.html | 20 ++ .../templates/manage_customers_orders.html | 6 +- .../templates/partner_customers_orders.html | 6 +- .../templates/partner_trans_analysis.html | 6 +- .../analysis/templates/trans_analysis.html | 28 +- .../templates/trans_analysis_monthly.html | 28 +- .../transaction_amount_Analysis.html | 6 +- .../static/commons/services/orderService.js | 13 +- .../commons/templates/order_detail.html | 19 ++ .../ui/static/dashboard/partner-dashboard.js | 4 + .../templates/partner_dashboard.html | 13 +- .../ui/static/images/card_payment_sign.png | Bin 0 -> 495 bytes .../ui/static/images/card_payment_sign_lg.png | Bin 0 -> 1583 bytes .../ui/static/images/direct_debit_sign.png | Bin 0 -> 502 bytes .../ui/static/images/direct_debit_sign_lg.png | Bin 0 -> 1770 bytes .../partner_incremental_service_info.html | 8 +- .../static/payment/partner/partner-manage.js | 128 ++++++++- .../templates/partner_bankaccounts.html | 17 +- .../partner_new_card_payment_rate.html | 147 ++++++++++ .../partner/templates/partner_pay_logs.html | 8 +- .../partner/templates/rate_config_dialog.html | 39 ++- .../templates/sub_merchant_id_apply.html | 255 ++++++++++-------- .../tradelog/templates/balance_report.html | 10 +- .../templates/incremental_trade_logs.html | 10 +- .../partner_incremental_trade_logs.html | 8 +- .../templates/partner_trade_detail_edit.html | 23 +- .../templates/partner_trade_logs.html | 10 +- .../tradelog/templates/trade_logs.html | 10 +- .../GatewayApplicationMerchantDemoTest.java | 4 +- 43 files changed, 830 insertions(+), 196 deletions(-) create mode 100644 src/main/ui/static/images/card_payment_sign.png create mode 100644 src/main/ui/static/images/card_payment_sign_lg.png create mode 100644 src/main/ui/static/images/direct_debit_sign.png create mode 100644 src/main/ui/static/images/direct_debit_sign_lg.png create mode 100644 src/main/ui/static/payment/partner/templates/partner_new_card_payment_rate.html diff --git a/pom.xml b/pom.xml index 58e786c31..dad86d711 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 2.1.16 + 2.1.17 4.0.0 manage diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java index ad30c4049..402707f30 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/ChannelsAnalysisServiceImpl.java @@ -5,7 +5,6 @@ import au.com.royalpay.payment.manage.analysis.mappers.CustomerAndOrdersStatisti import com.alibaba.fastjson.JSONObject; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.time.DateFormatUtils; -import org.apache.commons.lang3.time.DateUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -17,7 +16,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; -import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -45,6 +43,8 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService { listChannel.add(putParam(params,"Rpay")); listChannel.add(putParam(params,"Yeepay")); listChannel.add(putParam(params,"LakalaPay")); + listChannel.add(putParam(params,"rpaypmt_card")); + listChannel.add(putParam(params,"rpaypmt_dd")); return listChannel; } @@ -55,7 +55,7 @@ public class ChannelsAnalysisServiceImpl implements ChannelsAnalysisService { } List list = new ArrayList<>(); Map analysisMap = new TreeMap<>(); - String[] channels = {"Wechat","Bestpay","Alipay","jd","AlipayOnline","hf", "Rpay","Yeepay","LakalaPay"}; + String[] channels = {"Wechat","Bestpay","Alipay","jd","AlipayOnline","hf", "Rpay","Yeepay","LakalaPay","rpaypmt_card","rpaypmt_dd"}; for (String channel:channels){ analysisChannelCustomers(params, analysisMap, channel); } diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/CustomersAnalysisServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/CustomersAnalysisServiceImp.java index e130ad037..f17ae2af1 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/CustomersAnalysisServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/CustomersAnalysisServiceImp.java @@ -11,7 +11,6 @@ import au.com.royalpay.payment.manage.mappers.system.ClientMapper; import au.com.royalpay.payment.manage.mappers.system.CustomerMapper; import au.com.royalpay.payment.manage.mappers.system.ManagerCustomerRelationAlipayMapper; import au.com.royalpay.payment.manage.merchants.core.ClientManager; -import au.com.royalpay.payment.manage.tradelog.beans.TradeLogQuery; import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApi; import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApiProvider; import au.com.royalpay.payment.tools.connections.mpsupport.beans.TemplateMessage; @@ -28,7 +27,6 @@ import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -100,6 +98,8 @@ public class CustomersAnalysisServiceImp implements CustomersAnalysisService { channels.add("hf"); channels.add("jd"); channels.add("LakalaPay"); + channels.add("rpaypmt_card"); + channels.add("rpaypmt_dd"); params.put("channels", channels); } result.put("channels", customerAndOrdersStatisticsMapper.getCBBankChannelAmount(params)); diff --git a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java index b4d267dec..b248cb2e6 100644 --- a/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/analysis/core/impls/DashboardServiceImpl.java @@ -334,6 +334,12 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT res.put("today",today); res.put("yes",yes); res.put("not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); + params.put("channel", "system"); + res.put("sys_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); + params.put("channel", "rpaypmt_card"); + res.put("rpaypmt_card_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); + params.put("channel", "rpaypmt_dd"); + res.put("rpaypmt_dd_not_settled", new BigDecimal(transactionAnalysisMapper.analysisNotSettled(params))); res.put("trade_amount_rise",yes.getBigDecimal("trade_amount").compareTo(BigDecimal.ZERO)>0 ? (today.getBigDecimal("trade_amount").subtract(yes.getBigDecimal("trade_amount"))).divide(yes.getBigDecimal("trade_amount"), 4, RoundingMode.HALF_UP):BigDecimal.ZERO); res.put("trade_count_rise", yes.getIntValue("trade_count") > 0 ? (today.getBigDecimal("trade_count").subtract(yes.getBigDecimal("trade_count"))).divide(yes.getBigDecimal("trade_count"), 4, RoundingMode.HALF_UP) : 0); res.put("customers_rise", yes.getIntValue("customers") > 0 ? (today.getBigDecimal("customers").subtract(yes.getBigDecimal("customers"))).divide(yes.getBigDecimal("customers"), 4, RoundingMode.HALF_UP) : 0); @@ -604,7 +610,7 @@ public class DashboardServiceImpl implements DashboardService,DashboardAnalysisT } } private JSONObject getTodayChannelCount(JSONObject params){ - String[] channels = new String[]{"Bestpay","Wechat","Alipay","jd","AlipayOnline","hf", "Rpay","Yeepay","LakalaPay"}; + String[] channels = new String[]{"Bestpay", "Wechat", "Alipay", "jd", "AlipayOnline", "hf", "Rpay", "Yeepay", "LakalaPay", "rpaypmt_card", "rpaypmt_dd"}; JSONObject resp = new JSONObject(); for(String channel:channels) { params.put("channel", channel); diff --git a/src/main/java/au/com/royalpay/payment/manage/bdprize/core/impls/BDPrizeServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/bdprize/core/impls/BDPrizeServiceImpl.java index a7bbdcd00..786156343 100644 --- a/src/main/java/au/com/royalpay/payment/manage/bdprize/core/impls/BDPrizeServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/bdprize/core/impls/BDPrizeServiceImpl.java @@ -15,11 +15,9 @@ import au.com.royalpay.payment.tools.exceptions.ServerErrorException; import au.com.royalpay.payment.tools.lock.Locker; import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.utils.TimeZoneUtils; - import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; - import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; @@ -36,21 +34,16 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - /** * Created by yixian on 2017-02-07. */ @@ -88,7 +81,7 @@ public class BDPrizeServiceImpl implements BDPrizeService { private static BigDecimal percent = new BigDecimal(100); - private static String[] channels = new String[]{"Wechat", "Alipay", "Bestpay", "jd", "AlipayOnline","hf", "Rpay","Yeepay","LakalaPay"}; + private static String[] channels = new String[]{"Wechat", "Alipay", "Bestpay", "jd", "AlipayOnline","hf", "Rpay","Yeepay","LakalaPay", "rpaypmt_card", "rpaypmt_dd"}; private static Logger logger = LoggerFactory.getLogger(BDPrizeServiceImpl.class); @Override diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/ManualServiceimpl.java b/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/ManualServiceimpl.java index 485c09450..fb3a04fd6 100644 --- a/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/ManualServiceimpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/ManualServiceimpl.java @@ -6,12 +6,9 @@ import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; import au.com.royalpay.payment.manage.mappers.system.ClientMapper; import au.com.royalpay.payment.manage.mappers.system.ClientRateMapper; import au.com.royalpay.payment.manage.merchants.core.ClientModifySupport; -import au.com.royalpay.payment.manage.merchants.entity.impls.SwitchPermissionModify; import au.com.royalpay.payment.manage.task.PostponeClientTask; import au.com.royalpay.payment.tools.scheduler.SynchronizedScheduler; - import com.alibaba.fastjson.JSONObject; - import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.slf4j.Logger; @@ -20,13 +17,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Resource; - /** * @author kira * @date 2018/8/2 @@ -103,9 +99,9 @@ public class ManualServiceimpl implements ManualService { record.put("manager_name", "System"); record.put("remark", "费率到期系统自动延期1年"); clientRateMapper.saveRate(record); - if ("Rpay".equals(o.getString("rate_name"))) { - rpayApi.modifySurchargeConfig(clientMapper.findClient(client_id)); - } +// if ("Rpay".equals(o.getString("rate_name"))) { +// rpayApi.modifySurchargeConfig(clientMapper.findClient(client_id)); +// } }); } diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRateConfig.java b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRateConfig.java index ea9e1acf8..00226b22c 100644 --- a/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRateConfig.java +++ b/src/main/java/au/com/royalpay/payment/manage/merchants/beans/ClientRateConfig.java @@ -4,8 +4,8 @@ import au.com.royalpay.payment.tools.exceptions.BadRequestException; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import org.apache.commons.lang3.time.DateUtils; -import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Calendar; import java.util.Date; @@ -39,6 +39,8 @@ public class ClientRateConfig { @NotNull(message = "error.payment.valid.param_missing") private Integer cleanDays = 3; private String remark; + @JSONField(name = "ext_rates") + private String extRates; public JSONObject toJSON() { if (expiryTime.before(activeTime)) { @@ -102,4 +104,12 @@ public class ClientRateConfig { public void setTransactionFee(Double transactionFee) { this.transactionFee = transactionFee; } + + public String getExtRates() { + return extRates; + } + + public void setExtRates(String extRates) { + this.extRates = extRates; + } } 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 47c26e099..d4586993d 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 @@ -29,6 +29,8 @@ public interface ClientManager { JSONObject getSysRateConfig(); + JSONObject getSysCardRateConfig(); + JSONObject getClientInfo(int clientId); JSONObject getClientInfoIgnoreInvalid(int clientId); @@ -564,4 +566,8 @@ public interface ClientManager { boolean getMergeSettleStatus(JSONObject client); void changeExtParams(String clientMoniker,JSONObject manager, JSONObject params); + + JSONObject applyMWMerchantId(String clientMoniker, JSONObject manager); + + JSONObject queryMWMerchantIdStatus(String clientMoniker, JSONObject manager); } 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 149495ab2..6d93a3bd5 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 @@ -5,6 +5,9 @@ import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment; import au.com.royalpay.payment.channels.alipay.runtime.AlipayClient; import au.com.royalpay.payment.channels.rpay.runtime.RpayApi; import au.com.royalpay.payment.channels.rpay.runtime.beans.SubRpayMerchantInfo; +import au.com.royalpay.payment.channels.rpaypaymentsvc.mappers.RPayMerchantMapper; +import au.com.royalpay.payment.channels.rpaypaymentsvc.runtime.RPayPaymentCardSvcApi; +import au.com.royalpay.payment.channels.rpaypaymentsvc.runtime.request.entities.RPayMerchantEntity; import au.com.royalpay.payment.channels.wechat.config.WeChatPayConfig; import au.com.royalpay.payment.channels.wechat.config.WechatPayEnvironment; import au.com.royalpay.payment.channels.wechat.runtime.MpPaymentApi; @@ -14,6 +17,8 @@ import au.com.royalpay.payment.channels.yeepay.config.YeePayConfig; import au.com.royalpay.payment.channels.yeepay.mappers.YeePayClientConfigMapper; import au.com.royalpay.payment.channels.yeepay.runtime.YeePayClient; import au.com.royalpay.payment.core.PaymentChannelApi; +import au.com.royalpay.payment.core.beans.EmptyMerchantApplication; +import au.com.royalpay.payment.core.beans.MerchantApplicationResult; import au.com.royalpay.payment.core.exceptions.EmailException; import au.com.royalpay.payment.core.exceptions.InvalidShortIdException; import au.com.royalpay.payment.core.mappers.SysClientMapper; @@ -314,6 +319,10 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid private RetailRSvcService retailRSvcService; @Resource private RServicesApplyService rServicesApplyService; + @Resource + private RPayPaymentCardSvcApi rPayPaymentCardSvcApi; + @Resource + private RPayMerchantMapper rPayMerchantMapper; @Resource @@ -352,6 +361,12 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return JSONObject.parseObject(rateConfig); } + @Override + public JSONObject getSysCardRateConfig() { + String rateConfig = sysConfigManager.getSysConfig().getString("sys_card_rates"); + return JSONObject.parseObject(rateConfig); + } + @Override @Cacheable(value = ":app_client_info:", key = "''+#clientId", unless = "#result == null") public JSONObject getClientInfo(int clientId) { @@ -1940,6 +1955,9 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (rate.get("clean_days") == null) { rate.put("clean_days", clientConfig.getIntValue("clean_days")); } + if (StringUtils.equalsIgnoreCase("rpaypmt_card", rate.getString("rate_name"))) { + rate.put("ext_rates", JSONObject.parseObject(rate.getString("ext_rates"))); + } } } catch (Exception ignore) { } @@ -2000,6 +2018,9 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid config.put("active_time", DateFormatUtils.format(config.getDate("active_time"), "yyyy-MM-dd")); config.put("expiry_time", DateFormatUtils.format(config.getDate("expiry_time"), "yyyy-MM-dd")); + if (isAddCardPaymentRate(config, clientId)) { + return; + } checkAddRate(config, "Wechat", "wechat_rate_value", org, "min_wechat_rate"); checkAddRate(config, "Alipay", "alipay_rate_value", org, "min_alipay_rate"); checkAddRate(config, "AlipayOnline", "alipayonline_rate_value", org, "min_alipayonline_rate"); @@ -2039,6 +2060,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid rateLog.put("expiry_time", DateUtils.addDays(config.getDate("active_time"), -1)); clientRateMapper.updateConfig(rateLog); } + if (StringUtils.equalsIgnoreCase("rpaypmt_card", config.getString("type"))) { + JSONObject extRateParams = new JSONObject(){{ + put("domestic_rate_value", config.getBigDecimal("rate_value")); + put("overseas_rate_value", config.getBigDecimal("international_rate_value")); + }}; + newConfig.put("ext_rates", extRateParams.toJSONString()); + } clientRateMapper.saveRate(newConfig); logger.info(clientId + "的" + channel + "费率设置成功"); } @@ -2064,13 +2092,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid configJson.put("manager_name", manager.getString("username")); configJson.put("update_time", new Date()); clientRateMapper.updateConfig(configJson); - if ("Rpay".equals(configJson.getString("rate_name"))) { - rpayApi.modifySurchargeConfig(client); - } +// if ("Rpay".equals(configJson.getString("rate_name"))) { +// rpayApi.modifySurchargeConfig(client); +// } int clientId = client.getIntValue("client_id"); JSONObject changeRate = merchantInfoProvider.clientCurrentRate(clientId, new Date(), "Wechat"); int cleanDays = changeRate.getIntValue("clean_days"); - if (cleanDays != client.getIntValue("clean_days")) { + if (cleanDays != client.getIntValue("clean_days") && StringUtils.equalsIgnoreCase("Wechat",config.getRateName())) { clientModifySupport.processClientConfigModify(new ClearDaysModify(manager, clientMoniker, cleanDays)); } // clientMapper.updateCleanDays(clientId, config.getCleanDays()); @@ -6255,9 +6283,9 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid record.put("manager_name", "System"); record.put("remark", "费率到期系统自动延期1年"); clientRateMapper.saveRate(record); - if ("Rpay".equals(o.getString("rate_name"))) { - rpayApi.modifySurchargeConfig(clientMapper.findClient(client_id)); - } +// if ("Rpay".equals(o.getString("rate_name"))) { +// rpayApi.modifySurchargeConfig(clientMapper.findClient(client_id)); +// } } adminAccounts.forEach(o -> { sendClientPostponeNotify(o, expireDate); @@ -6812,4 +6840,48 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid clientMapper.update(client); } + @Override + public JSONObject applyMWMerchantId(String clientMoniker, JSONObject manager) { + JSONObject client = getClientInfoByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + MerchantApplicationResult result = rPayPaymentCardSvcApi.apply(client, new EmptyMerchantApplication(), manager); + if (result == null) { + throw new ServerErrorException("Failed To Apply For Merchant Warrior Sub Merchant ID"); + } + RPayMerchantEntity existsEntity = rPayMerchantMapper.findMerchant(client.getIntValue("client_id")); + return new JSONObject(){{ + put("card_sub_merchant_id", existsEntity.getRpMerchantId()); + put("available", existsEntity.isAvailable()); + put("pending", existsEntity.isPending()); + }}; + } + + @Override + public JSONObject queryMWMerchantIdStatus(String clientMoniker, JSONObject manager) { + JSONObject client = getClientInfoByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + RPayMerchantEntity result = rPayPaymentCardSvcApi.findMerchant(client); + if (result == null) { + return new JSONObject(); + } + return new JSONObject(){{ + put("card_sub_merchant_id", result.getRpMerchantId()); + put("available", result.isAvailable()); + put("pending", result.isPending()); + }}; + } + + private boolean isAddCardPaymentRate(JSONObject config, int clientId) { + if (!StringUtils.equalsIgnoreCase("rpaypmt_card", config.getString("type")) + && !StringUtils.equalsIgnoreCase("rpaypmt_dd", config.getString("type"))) { + return false; + } + configNewClientRate(config, clientId, config.getString("type"), "rate_value", null, null); + return true; + } + } 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 190f6d1aa..953191f99 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 @@ -493,6 +493,11 @@ public class PartnerManageController { return clientManager.getSysRateConfig(); } + @GetMapping("/sys_card_rates") + public JSONObject getSysCardRate() { + return clientManager.getSysCardRateConfig(); + } + @ManagerMapping(value = "/{clientMoniker}/rates/{rateId}", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.FINANCIAL_STAFF}) public void updateRate(@PathVariable String clientMoniker, @PathVariable int rateId, @RequestBody @Valid ClientRateConfig config, Errors errors, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { @@ -880,4 +885,16 @@ public class PartnerManageController { @RequestBody JSONObject params){ clientManager.changeExtParams(clientMoniker,manager,params); } + + @ManagerMapping(value = "/{clientMoniker}/applyMWMerchantId",method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) + public JSONObject applyMWMerchantId(@PathVariable("clientMoniker")String clientMoniker, + @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ + return clientManager.applyMWMerchantId(clientMoniker,manager); + } + + @ManagerMapping(value = "/{clientMoniker}/queryMWMerchantIdStatus",method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) + public JSONObject queryMWMerchantIdStatus(@PathVariable("clientMoniker")String clientMoniker, + @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ + return clientManager.queryMWMerchantIdStatus(clientMoniker,manager); + } } diff --git a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java index d11771583..8d06b70dc 100644 --- a/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/tradelog/core/impls/TradeLogServiceImpl.java @@ -434,6 +434,13 @@ public class TradeLogServiceImpl implements TradeLogService { break; } order.put("status_str", statusStr); + if (StringUtils.equalsIgnoreCase("rpaypmt_card", order.getString("channel")) + || StringUtils.equalsIgnoreCase("rpaypmt_dd", order.getString("channel"))) { + JSONObject extParams = JSONObject.parseObject(order.getString("ext_params")); + if (extParams != null) { + order.putAll(extParams); + } + } return order; } diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml index 1c8eadd2e..d7bd716c5 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/CustomerAndOrdersStatisticsMapper.xml @@ -356,6 +356,12 @@ ifnull(sum(CASE WHEN s.channel = 'LakalaPay' THEN s.total ELSE 0 END),0) lakalapayamount, ifnull(sum(CASE WHEN s.channel = 'LakalaPay' THEN s.orders ELSE 0 END),0) lakalapay_order_count, ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'LakalaPay',TRUE,NULL)),0) lakala_client_count, + ifnull(sum(CASE WHEN s.channel = 'rpaypmt_card' THEN s.total ELSE 0 END),0) rpaypmt_cardpayamount, + ifnull(sum(CASE WHEN s.channel = 'rpaypmt_card' THEN s.orders ELSE 0 END),0) rpaypmt_card_order_count, + ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'rpaypmt_card',TRUE,NULL)),0) rpaypmt_card_client_count, + ifnull(sum(CASE WHEN s.channel = 'rpaypmt_dd' THEN s.total ELSE 0 END),0) rpaypmt_ddpayamount, + ifnull(sum(CASE WHEN s.channel = 'rpaypmt_dd' THEN s.orders ELSE 0 END),0) rpaypmt_dd_order_count, + ifnull(COUNT(DISTINCT s.client_id,IF(s.channel = 'rpaypmt_dd',TRUE,NULL)),0) rpaypmt_dd_client_count, ifnull(sum(s.orders), 0) all_count, ifnull(sum(s.total), 0) all_amount, ifnull(COUNT(DISTINCT s.client_id),0) all_client_count @@ -409,12 +415,16 @@ ifnull(SUM(IF(channel='jd' and transaction_type='Credit',clearing_amount,0)),0) jdamount, ifnull(SUM(IF(channel='LakalaPay' and transaction_type='Credit',1,0)),0) lakala_order_count, ifnull(SUM(IF(channel='LakalaPay' and transaction_type='Credit',clearing_amount,0)),0) lakalapayamount, + ifnull(SUM(IF(channel='rpaypmt_card' and transaction_type='Credit',1,0)),0) rpaypmt_card_order_count, + ifnull(SUM(IF(channel='rpaypmt_card' and transaction_type='Credit',clearing_amount,0)),0) rpaypmt_cardamount, + ifnull(SUM(IF(channel='rpaypmt_dd' and transaction_type='Credit',1,0)),0) rpaypmt_dd_order_count, + ifnull(SUM(IF(channel='rpaypmt_dd' and transaction_type='Credit',clearing_amount,0)),0) rpaypmt_ddamount, count(distinct order_id) all_count, count(distinct client_id) all_client_count, ifnull(SUM(IF(transaction_type='Credit',clearing_amount,0)),0) all_amount FROM pmt_transactions WHERE channel IN - ('Bestpay','Yeepay','Rpay','hf','jd','LakalaPay') + ('Bestpay','Yeepay','Rpay','hf','jd','LakalaPay','rpaypmt_card','rpaypmt_dd') and create_time >= #{begin} and create_time < #{end} diff --git a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml index ca47f7dbf..4076c12db 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/analysis/mappers/TransactionAnalysisMapper.xml @@ -152,7 +152,8 @@ + + + + +
{{rateConfig}}
+ + + +
+ +
+
+ +
%
+
+
+
+ No more than 5.0% +
+
+ No less than 0.0% +
+
+ Required Field +
+
+ +
+
+
+ +
+
+ +
%
+
+
+
+ No more than 5.0% +
+
+ No less than 0.0% +
+
+ Required Field +
+
+ +
+
+
+ +
+
+ +
%
+
+
+
+ No more than 5.0% +
+
+ No less than 0.0% +
+
+ Required Field +
+
+ +
+
+ + +
+ +
+
+ +
$
+
+
+
+ No less than 0 +
+
+ Required Field +
+
+ +
+
+ + +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + + + diff --git a/src/main/ui/static/payment/partner/templates/partner_pay_logs.html b/src/main/ui/static/payment/partner/templates/partner_pay_logs.html index eddcdbc13..70dd618a8 100644 --- a/src/main/ui/static/payment/partner/templates/partner_pay_logs.html +++ b/src/main/ui/static/payment/partner/templates/partner_pay_logs.html @@ -154,7 +154,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -357,6 +361,8 @@ + + diff --git a/src/main/ui/static/payment/partner/templates/rate_config_dialog.html b/src/main/ui/static/payment/partner/templates/rate_config_dialog.html index d95950528..5c916e182 100644 --- a/src/main/ui/static/payment/partner/templates/rate_config_dialog.html +++ b/src/main/ui/static/payment/partner/templates/rate_config_dialog.html @@ -14,7 +14,9 @@
- +
%
- - -
No less than 0.6%
@@ -35,6 +34,29 @@
+
+ +
+
+ +
%
+
+
+
+ No more than 5.0% +
+
+ No less than 0.0% +
+
+ Required Field +
+
+ +
+
@@ -46,9 +68,6 @@
$
- - -
No less than 0
@@ -78,7 +97,9 @@ datepicker-options="{minDate:rate.active_time}">
-
+
@@ -100,4 +121,4 @@ \ No newline at end of file +
diff --git a/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html b/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html index 08c50f821..9404ea30c 100644 --- a/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html +++ b/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html @@ -95,127 +95,156 @@
-

- Rpay+ Sub Merchant Id : {{partner.rpay_enterprise_id}} - +

+ Merchant Warrior Sub Merchant Id : + + 审核通过 + 审核中 + 打回 + ({{partner.cardInfo.card_sub_merchant_id}}) + 未申请

-
-
-
-

List of Sub Merchant Id

-
-
-
    -
  • - Sub Merchant Id - (当前使用){{id_apply.sub_merchant_id}} -
  • -
  • - Apply Time - -
  • -
  • - Company Short Name - {{id_apply.merchant_shortname | cut:true:20:' ...'}} -
  • -
  • - Business Category - {{id_apply.business_category | partner_royalpay_industry}} -
  • -
  • - Operator - -
  • -
-
-
- -
-
-
-
-
-
-
-
-
-
-

- Yeepay Sub Merchant Id : {{partner.yeepay_sub_merchant_id}} -

- - -
-
-
-
-

List of Sub Merchant Id

-
-
-
    -
  • - Sub Merchant Id - (当前使用){{id_apply.sub_merchant_id}} -
  • -
  • - Apply Time - -
  • -
  • - Business Content - {{id_apply.business_content | yeepayBusinessContent}} -
  • -
  • - Business Category - {{id_apply.industry | yeepayIndustry}} -
  • -
  • - Operator - -
  • -
-
-
- - -
-
-
-
-
-
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/ui/static/payment/tradelog/templates/balance_report.html b/src/main/ui/static/payment/tradelog/templates/balance_report.html index 0cb9a5e59..aa142c3cd 100644 --- a/src/main/ui/static/payment/tradelog/templates/balance_report.html +++ b/src/main/ui/static/payment/tradelog/templates/balance_report.html @@ -165,7 +165,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -537,6 +541,10 @@ uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/> + + {{trade.order_id2}} diff --git a/src/main/ui/static/payment/tradelog/templates/incremental_trade_logs.html b/src/main/ui/static/payment/tradelog/templates/incremental_trade_logs.html index 369be61a6..3c31dcade 100644 --- a/src/main/ui/static/payment/tradelog/templates/incremental_trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/incremental_trade_logs.html @@ -166,7 +166,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -384,6 +388,10 @@ uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/> + + {{trade.order_id}} diff --git a/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html b/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html index 8d8e063e0..4a78f5a94 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_incremental_trade_logs.html @@ -146,7 +146,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -341,6 +345,8 @@ + + {{trade.order_id}} diff --git a/src/main/ui/static/payment/tradelog/templates/partner_trade_detail_edit.html b/src/main/ui/static/payment/tradelog/templates/partner_trade_detail_edit.html index d91c3e058..cce854e87 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_trade_detail_edit.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_trade_detail_edit.html @@ -1,3 +1,11 @@ + + @@ -140,6 +148,19 @@ +
+
+

+
+
+

{{order.card_bank}}

+

{{order.card_type}}

+

{{order.card_alias}}

+

{{order.card_scheme}}

+

{{order.card_country}}

+
+
+ @@ -191,4 +212,4 @@ - \ No newline at end of file + diff --git a/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html b/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html index 7b5a7d028..b715730be 100644 --- a/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/partner_trade_logs.html @@ -219,7 +219,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -641,6 +645,10 @@ ng-if="trade.channel=='Yeepay'"/> + + {{trade.order_id}} diff --git a/src/main/ui/static/payment/tradelog/templates/trade_logs.html b/src/main/ui/static/payment/tradelog/templates/trade_logs.html index e22dea465..714798fa0 100644 --- a/src/main/ui/static/payment/tradelog/templates/trade_logs.html +++ b/src/main/ui/static/payment/tradelog/templates/trade_logs.html @@ -203,7 +203,11 @@ Yeepay | LakalaPay + ng-click="params.channel='LAKALAPAY';loadTradeLogs(1)">LakalaPay | + Card Payment | + Direct Debit

@@ -486,6 +490,10 @@ uib-tooltip="Yeepay" ng-if="trade.channel=='Yeepay'"/> + + {{trade.order_id}} diff --git a/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/GatewayApplicationMerchantDemoTest.java b/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/GatewayApplicationMerchantDemoTest.java index e01d7d375..563e57d87 100644 --- a/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/GatewayApplicationMerchantDemoTest.java +++ b/src/test/java/au/com/royalpay/payment/manage/citypartner/core/impls/GatewayApplicationMerchantDemoTest.java @@ -160,9 +160,9 @@ public class GatewayApplicationMerchantDemoTest { @Test public void updateFile() throws Exception{ - String originUrl = "https://sandbox.royalpay.com.au/api/v1.0/org_gateway/partners/" + SHORTID + "/attachment/files"; + String originUrl = "http://127.0.0.1:9002/attachment/secret_files"; String url = addSignUrl(originUrl, null, SPDEMOPRIKEY); - File file = new File("/Users/1/Downloads/banner_eshop.jpg"); + File file = new File("/Users/luoyang/Downloads/banner_eshop.jpg"); InputStream stream = new FileInputStream(file); HttpRequestGenerator gen = new HttpRequestGenerator(url, RequestMethod.POST); gen.setTimeout(10000); From 8a4a3918537a42009dc378c915c12e8049a6c023 Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 17:35:16 +0800 Subject: [PATCH 16/48] fix dashboard --- .../static/dashboard/templates/dashboard.html | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/ui/static/dashboard/templates/dashboard.html b/src/main/ui/static/dashboard/templates/dashboard.html index 7eeb8d42c..83647b3b9 100644 --- a/src/main/ui/static/dashboard/templates/dashboard.html +++ b/src/main/ui/static/dashboard/templates/dashboard.html @@ -200,7 +200,32 @@
LakalaPay
- +
+
+
交易额: + +
+
订单数: + +
+
Card Payment
+
+
+
+
+
交易额: + +
+
订单数: + +
+
Direct Debit
+
+
From 531485f5b302eb9b868f385a1e40a8492330f954 Mon Sep 17 00:00:00 2001 From: luoyang Date: Tue, 14 Apr 2020 18:14:08 +0800 Subject: [PATCH 17/48] =?UTF-8?q?add=20mw=E6=8A=A5=E5=A4=87=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/merchants/core/ClientManager.java | 5 +- .../core/impls/ClientManagerImpl.java | 21 +---- .../web/PartnerManageController.java | 7 +- .../static/payment/partner/partner-manage.js | 5 ++ .../templates/sub_merchant_id_apply.html | 85 ++++++++++++++++++- 5 files changed, 99 insertions(+), 24 deletions(-) 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 d4586993d..5ec1b35b2 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 @@ -1,5 +1,6 @@ package au.com.royalpay.payment.manage.merchants.core; +import au.com.royalpay.payment.channels.rpaypaymentsvc.runtime.request.entities.RPayMerchantEntity; import au.com.royalpay.payment.core.exceptions.EmailException; import au.com.royalpay.payment.manage.appclient.beans.AppClientBean; import au.com.royalpay.payment.manage.appclient.beans.AppMerchantBean; @@ -567,7 +568,7 @@ public interface ClientManager { void changeExtParams(String clientMoniker,JSONObject manager, JSONObject params); - JSONObject applyMWMerchantId(String clientMoniker, JSONObject manager); + RPayMerchantEntity applyMWMerchantId(String clientMoniker, JSONObject manager); - JSONObject queryMWMerchantIdStatus(String clientMoniker, JSONObject manager); + RPayMerchantEntity queryMWMerchantIdStatus(String clientMoniker, JSONObject manager); } 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 6d93a3bd5..7d53238bb 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 @@ -6841,7 +6841,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } @Override - public JSONObject applyMWMerchantId(String clientMoniker, JSONObject manager) { + public RPayMerchantEntity applyMWMerchantId(String clientMoniker, JSONObject manager) { JSONObject client = getClientInfoByMoniker(clientMoniker); if (client == null) { throw new InvalidShortIdException(); @@ -6850,29 +6850,16 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid if (result == null) { throw new ServerErrorException("Failed To Apply For Merchant Warrior Sub Merchant ID"); } - RPayMerchantEntity existsEntity = rPayMerchantMapper.findMerchant(client.getIntValue("client_id")); - return new JSONObject(){{ - put("card_sub_merchant_id", existsEntity.getRpMerchantId()); - put("available", existsEntity.isAvailable()); - put("pending", existsEntity.isPending()); - }}; + return rPayMerchantMapper.findMerchant(client.getIntValue("client_id")); } @Override - public JSONObject queryMWMerchantIdStatus(String clientMoniker, JSONObject manager) { + public RPayMerchantEntity queryMWMerchantIdStatus(String clientMoniker, JSONObject manager) { JSONObject client = getClientInfoByMoniker(clientMoniker); if (client == null) { throw new InvalidShortIdException(); } - RPayMerchantEntity result = rPayPaymentCardSvcApi.findMerchant(client); - if (result == null) { - return new JSONObject(); - } - return new JSONObject(){{ - put("card_sub_merchant_id", result.getRpMerchantId()); - put("available", result.isAvailable()); - put("pending", result.isPending()); - }}; + return rPayPaymentCardSvcApi.findMerchant(client); } private boolean isAddCardPaymentRate(JSONObject config, int clientId) { 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 953191f99..ba7beafc9 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 @@ -1,5 +1,6 @@ package au.com.royalpay.payment.manage.merchants.web; +import au.com.royalpay.payment.channels.rpaypaymentsvc.runtime.request.entities.RPayMerchantEntity; import au.com.royalpay.payment.manage.dev.core.MerchantLocationService; import au.com.royalpay.payment.manage.merchants.beans.*; import au.com.royalpay.payment.manage.merchants.core.ClientManager; @@ -887,14 +888,14 @@ public class PartnerManageController { } @ManagerMapping(value = "/{clientMoniker}/applyMWMerchantId",method = RequestMethod.PUT, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) - public JSONObject applyMWMerchantId(@PathVariable("clientMoniker")String clientMoniker, + public RPayMerchantEntity applyMWMerchantId(@PathVariable("clientMoniker")String clientMoniker, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ return clientManager.applyMWMerchantId(clientMoniker,manager); } @ManagerMapping(value = "/{clientMoniker}/queryMWMerchantIdStatus",method = RequestMethod.GET, role = {ManagerRole.ADMIN, ManagerRole.OPERATOR}) - public JSONObject queryMWMerchantIdStatus(@PathVariable("clientMoniker")String clientMoniker, - @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ + public RPayMerchantEntity queryMWMerchantIdStatus(@PathVariable("clientMoniker")String clientMoniker, + @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager){ return clientManager.queryMWMerchantIdStatus(clientMoniker,manager); } } diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 186d999c6..8d13cc065 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -4891,6 +4891,11 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter } }]); app.controller('subMerchantIdApplicaitonsCtrl', ['$scope', '$http', '$uibModal', '$state', 'commonDialog', '$sce', function ($scope, $http, $uibModal, $state, commonDialog, $sce) { + $scope.showMoreMerchantInfo = false; + + $scope.hideMerchantInfo = function () { + $scope.showMoreMerchantInfo = !$scope.showMoreMerchantInfo; + }; $scope.loadSubMerchantInfos = function () { $http.get('/sys/partners/' + $scope.partner.client_moniker + '/list_sub_applices', {params: {}}).then(function (resp) { $scope.subMerchantInfos = resp.data; diff --git a/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html b/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html index 9404ea30c..9ba3cb101 100644 --- a/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html +++ b/src/main/ui/static/payment/partner/templates/sub_merchant_id_apply.html @@ -97,11 +97,11 @@

Merchant Warrior Sub Merchant Id : - + 审核通过 审核中 打回 - ({{partner.cardInfo.card_sub_merchant_id}}) + ({{partner.cardInfo.rpMerchantId}}) 未申请

+
+
+
    +
  • + Sub Merchant Id + + {{partner.cardInfo.rpMerchantId}} +
  • +
  • + Name + +
  • +
  • + Company Name + {{partner.cardInfo.company_name}} +
  • +
  • + Address + {{partner.cardInfo.address}} +
  • +
  • + Suburb + {{partner.cardInfo.suburb}} +
  • +
  • + Postcode + +
  • +
  • + More..... +
  • +
  • + State + +
  • +
  • + Abn + +
  • +
  • + Email + +
  • +
  • + Contact Name + +
  • +
  • + Phone + +
  • +
  • + BSB + +
  • +
  • + Account No + +
  • +
  • + Account Name + +
  • +
  • + Website + +
  • +
  • + Timezone + +
  • +
  • + Category + +
  • +
  • + Hide..... +
  • +
+
+
From 4b86bdebe03dff81c3921f072021dc8f6a4189e4 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 20:05:42 +0800 Subject: [PATCH 18/48] json issue --- pom.xml | 2 +- src/main/ui/static/templates/payment/v1/card_pay.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 58e786c31..c993bb111 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 2.1.16 + 2.1.20 4.0.0 manage diff --git a/src/main/ui/static/templates/payment/v1/card_pay.js b/src/main/ui/static/templates/payment/v1/card_pay.js index c4aed4789..c78cf3009 100644 --- a/src/main/ui/static/templates/payment/v1/card_pay.js +++ b/src/main/ui/static/templates/payment/v1/card_pay.js @@ -68,6 +68,10 @@ $(function () { }) } + if (ctrl.checking) { + return; + } + ctrl.checking = true; checkOrderStd(); } }); From 1b97c79ca34fd9de6e44d84211aa9f809b2fd137 Mon Sep 17 00:00:00 2001 From: yixian Date: Tue, 14 Apr 2020 20:32:05 +0800 Subject: [PATCH 19/48] build: 2.1.21 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c993bb111..d4a9607ec 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ au.com.royalpay.payment payment-parent - 2.1.20 + 2.1.21 4.0.0 manage From 78063f28becaed02a59dd8a44ea0fe3267ad5f33 Mon Sep 17 00:00:00 2001 From: yixian Date: Wed, 15 Apr 2020 10:14:41 +0800 Subject: [PATCH 20/48] ui update --- src/main/ui/static/css/cardpay.css | 64 +++++++++++++++++++ .../static/templates/payment/v1/card_pay.js | 5 ++ 2 files changed, 69 insertions(+) diff --git a/src/main/ui/static/css/cardpay.css b/src/main/ui/static/css/cardpay.css index 7a2437294..913e03728 100644 --- a/src/main/ui/static/css/cardpay.css +++ b/src/main/ui/static/css/cardpay.css @@ -117,4 +117,68 @@ width: 100%; text-align: center; border: none; +} + +.loading-container { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(255, 255, 255, .4); + display: block; +} +.loading-container.hide{ + display: none; +} + +.loading-container > .loading-box { + position: relative; + margin: auto; + background: #fff; +} + +.loading-container > .loading-box > .loading-text { + display: block; + text-align: center; + font-size: 2em; +} + +.loading-container .loading { + position: relative; + margin: 0 auto; + width: 100px; + height: 100px; +} + +.loading-container .loading span { + display: inline-block; + width: 20px; + height: 20px; + border-radius: 100%; + background-color: #3498db; + margin: 35px 5px; + opacity: 0; +} + +.loading-container .loading span:nth-child(1) { + animation: opacitychange 1s ease-in-out infinite; +} + +.loading-container .loading span:nth-child(2) { + animation: opacitychange 1s ease-in-out 0.33s infinite; +} + +.loading-container .loading span:nth-child(3) { + animation: opacitychange 1s ease-in-out 0.66s infinite; +} + +@keyframes opacitychange { + 0%, 100% { + opacity: 0; + } + + 60% { + opacity: 1; + } } \ No newline at end of file diff --git a/src/main/ui/static/templates/payment/v1/card_pay.js b/src/main/ui/static/templates/payment/v1/card_pay.js index c78cf3009..11b618a66 100644 --- a/src/main/ui/static/templates/payment/v1/card_pay.js +++ b/src/main/ui/static/templates/payment/v1/card_pay.js @@ -3,8 +3,11 @@ $(function () { let ctrl = {ready: false, pending: false} let cardFrame = window.channel_account_id ? new TokenInputFrame($container, window.channel_account_id) : new CardInputFrame($container); let $errorMsgBox = $('#errorMsgBox'); + let loading = $('.loading-container'); cardFrame.onSuccess = function (secretData) { ctrl.pending = true; + loading.find('.loading-text').text('Paying...'); + loading.removeClass('hide'); $.ajax({ url: 'commit', data: JSON.stringify(secretData), @@ -15,6 +18,7 @@ $(function () { }, error: function (jqXHR) { ctrl.pending = false; + loading.addClass('hide') let errorText = jqXHR.responseText; let err = JSON.parse(errorText); if (err) { @@ -33,6 +37,7 @@ $(function () { $('#readyModal').hide(); $('#payBtn').removeAttr('disabled'); ctrl.ready = true; + loading.addClass('hide'); }; cardFrame.onError = function (msg) { $errorMsgBox.text(msg).show(); From a96ded65099b8786f33a8e6bc8db256939f0c613 Mon Sep 17 00:00:00 2001 From: luoyang Date: Wed, 15 Apr 2020 10:18:30 +0800 Subject: [PATCH 21/48] =?UTF-8?q?add=20cashiers=20disable=E3=80=81enable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/cashiers/core/CashierService.java | 2 ++ .../core/impls/CashierServiceImp.java | 16 +++++++--- .../cashiers/web/CashierManageController.java | 16 +++++++++- .../static/payment/cashiers/cashier-manage.js | 29 +++++++++++++++++-- .../cashiers/templates/cashier_detail.html | 4 +-- .../payment/cashiers/templates/cashiers.html | 19 +++++++++--- 6 files changed, 73 insertions(+), 13 deletions(-) diff --git a/src/main/java/au/com/royalpay/payment/manage/cashiers/core/CashierService.java b/src/main/java/au/com/royalpay/payment/manage/cashiers/core/CashierService.java index 4dce3cc07..433fc86c2 100644 --- a/src/main/java/au/com/royalpay/payment/manage/cashiers/core/CashierService.java +++ b/src/main/java/au/com/royalpay/payment/manage/cashiers/core/CashierService.java @@ -15,6 +15,8 @@ public interface CashierService { void updateCashier(JSONObject partner, String cashier_id, CashierBean info); + void changeCashierValidStatus(JSONObject partner, String cashier_id,boolean isValid); + JSONObject getCashierByCashierId(String cashier_id); JSONObject getCashierByCashierId(String cashier_id, JSONObject partner); diff --git a/src/main/java/au/com/royalpay/payment/manage/cashiers/core/impls/CashierServiceImp.java b/src/main/java/au/com/royalpay/payment/manage/cashiers/core/impls/CashierServiceImp.java index c6c18a1da..b7a5862cd 100644 --- a/src/main/java/au/com/royalpay/payment/manage/cashiers/core/impls/CashierServiceImp.java +++ b/src/main/java/au/com/royalpay/payment/manage/cashiers/core/impls/CashierServiceImp.java @@ -11,12 +11,10 @@ import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.ForbiddenException; import au.com.royalpay.payment.tools.utils.PageListUtils; import au.com.royalpay.payment.tools.utils.QRCodeUtils; - import com.alibaba.fastjson.JSONObject; import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageList; - import org.apache.commons.lang3.RandomStringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; @@ -24,12 +22,11 @@ import org.springframework.stereotype.Service; import org.springframework.ui.Model; import org.springframework.util.Assert; +import javax.annotation.Resource; import java.math.BigDecimal; import java.util.Date; import java.util.concurrent.TimeUnit; -import javax.annotation.Resource; - /** * Created by yishuqian on 20/12/2016. */ @@ -77,6 +74,17 @@ public class CashierServiceImp implements CashierService { cashierMapper.update(cashierUpdate); } + @Override + public void changeCashierValidStatus(JSONObject partner, String cashier_id,boolean isValid) { + JSONObject cashier = cashierMapper.findOne(cashier_id); + Assert.notNull(cashier, "cashier not found"); + if (partner.getIntValue("client_id") != cashier.getIntValue("client_id")) { + throw new ForbiddenException("You have no permission!"); + } + cashier.put("is_valid", isValid); + cashierMapper.update(cashier); + } + @Override public JSONObject getCashierByCashierId(String cashier_id) { return cashierMapper.findOne(cashier_id); diff --git a/src/main/java/au/com/royalpay/payment/manage/cashiers/web/CashierManageController.java b/src/main/java/au/com/royalpay/payment/manage/cashiers/web/CashierManageController.java index 161d3e465..ec457eb38 100644 --- a/src/main/java/au/com/royalpay/payment/manage/cashiers/web/CashierManageController.java +++ b/src/main/java/au/com/royalpay/payment/manage/cashiers/web/CashierManageController.java @@ -5,10 +5,10 @@ import au.com.royalpay.payment.manage.cashiers.beans.CashierQueryBean; import au.com.royalpay.payment.manage.cashiers.core.CashierOrderService; import au.com.royalpay.payment.manage.cashiers.core.CashierService; import au.com.royalpay.payment.manage.permission.manager.PartnerMapping; -import au.com.royalpay.payment.tools.permission.enums.PartnerRole; import au.com.royalpay.payment.manage.permission.manager.RequirePartner; import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.connections.mpsupport.beans.WxOauthType; +import au.com.royalpay.payment.tools.permission.enums.PartnerRole; import au.com.royalpay.payment.tools.permission.wechat.WechatMapping; import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Controller; @@ -81,5 +81,19 @@ public class CashierManageController { return cashierOrderService.listCashierOrders(cashier_id, partner, query); } + @PartnerMapping(value = "/{cashier_id}/disable", method = RequestMethod.PUT,roles = {PartnerRole.ADMIN,PartnerRole.MANAGER}) + @ResponseBody + public void deleteVipCustomer(@PathVariable String cashier_id, + @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject partner) { + cashierService.changeCashierValidStatus(partner, cashier_id, false); + } + + @PartnerMapping(value = "/{cashier_id}/enable", method = RequestMethod.PUT,roles = {PartnerRole.ADMIN,PartnerRole.MANAGER}) + @ResponseBody + public void enableVipCustomer(@PathVariable String cashier_id, + @ModelAttribute(CommonConsts.PARTNER_STATUS) JSONObject partner) { + cashierService.changeCashierValidStatus(partner, cashier_id, true); + } + } diff --git a/src/main/ui/static/payment/cashiers/cashier-manage.js b/src/main/ui/static/payment/cashiers/cashier-manage.js index 5982e122c..828c938d5 100644 --- a/src/main/ui/static/payment/cashiers/cashier-manage.js +++ b/src/main/ui/static/payment/cashiers/cashier-manage.js @@ -35,7 +35,32 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS app.controller('CashiersCtrl', ['$scope', '$http', 'commonDialog', function ($scope, $http, commonDialog) { $scope.pagination = {}; $scope.params = {}; - + $scope.disableCashier = function (cashier) { + commonDialog.confirm({ + title: 'Disable Cashier', + content: 'Are you sure to disable' + cashier.name + '?' + }).then(function () { + $http.put('/partner/cashiers/' + cashier.cashier_id + '/disable').then(function (resp) { + commonDialog.alert({title: 'Success', content: 'Disable cashier successfully', type: 'success'}); + $scope.loadCashiers(1); + }, function (resp) { + commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}); + }) + }) + }; + $scope.enableCashier = function (cashier) { + commonDialog.confirm({ + title: 'Enable Cashier', + content: 'Are you sure to enable' + cashier.name + '?' + }).then(function () { + $http.put('/partner/cashiers/' + cashier.cashier_id + '/enable').then(function (resp) { + commonDialog.alert({title: 'Success', content: 'Enable cashier successfully', type: 'success'}); + $scope.loadCashiers(1); + }, function (resp) { + commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}); + }) + }) + }; $scope.loadCashiers = function (page) { var params = angular.copy($scope.params); params.page = page || $scope.pagination.page || 1; @@ -226,4 +251,4 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS }]); return app; -}); \ No newline at end of file +}); diff --git a/src/main/ui/static/payment/cashiers/templates/cashier_detail.html b/src/main/ui/static/payment/cashiers/templates/cashier_detail.html index 70a84c5d8..5af7f6371 100644 --- a/src/main/ui/static/payment/cashiers/templates/cashier_detail.html +++ b/src/main/ui/static/payment/cashiers/templates/cashier_detail.html @@ -1,5 +1,5 @@
-

+

{{cashier.name}}(Disabled)