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 66ae4c9a6..1a570b857 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 @@ -371,6 +371,8 @@ public interface ClientManager { void subYeepayMerchantApplication(String clientMoniker,JSONObject merchantInfo, JSONObject manager); + void subYeepayMerchantAdd(String clientMoniker,JSONObject merchantInfo, JSONObject manager); + void reSubYeepayMerchantApplication(String clientMoniker,JSONObject merchantInfo, JSONObject manager); void updateAllPartnerPassword(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 597f4fc0e..597a453ab 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 @@ -10,6 +10,7 @@ import au.com.royalpay.payment.channels.wechat.config.WechatPayEnvironment; import au.com.royalpay.payment.channels.wechat.runtime.MpPaymentApi; import au.com.royalpay.payment.channels.wechat.runtime.WxPayClient; import au.com.royalpay.payment.channels.wechat.runtime.beans.SubMerchantInfo; +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; @@ -218,6 +219,9 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid @Resource private YeePayClient yeePayClient; + @Resource + private YeePayConfig yeePayConfig; + @Resource private YeePayClientConfigMapper yeePayClientConfigMapper; @@ -805,7 +809,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid } JSONObject yeepayConfigValid =yeePayClientConfigMapper.findMerchantConfig(client.getIntValue("client_id")); yeePayClientConfigMapper.updateSubMerchantIdValid(yeepayConfigValid.getString("yeepay_config_id"),0); - JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfigBySub(yeepaySubMerchantInfo.getString("yeepay_sub_merchant_id")); + JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfigBySub(client.getIntValue("client_id"),yeepaySubMerchantInfo.getString("yeepay_sub_merchant_id")); yeePayClientConfigMapper.updateSubMerchantIdValid(yeepayConfig.getString("yeepay_config_id"),1); client.put("yeepay_sub_merchant_id",yeepaySubMerchantInfo.getString("yeepay_sub_merchant_id")); clientMapper.update(client); @@ -3893,6 +3897,35 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid clientMapper.update(client); } + @Override + public void subYeepayMerchantAdd(String clientMoniker, JSONObject merchantInfo, JSONObject manager) { + JSONObject client = getClientInfoByMoniker(clientMoniker); + if (client == null) { + throw new InvalidShortIdException(); + } + checkOrgPermission(manager, client); + JSONObject config = yeePayClientConfigMapper.findMerchantConfigBySub(client.getIntValue("client_id"),merchantInfo.getString("sub_merchant_id")); + if(config != null){ + throw new BadRequestException("You had add the sub merchant id"); + } + List yeepayClientConfigs = yeePayClientConfigMapper.findAllMerchantConfig(client.getIntValue("client_id")); + if(yeepayClientConfigs!=null){ + for(JSONObject yeepayClientConfig:yeepayClientConfigs){ + if(yeepayClientConfig.getIntValue("is_valid")==1){ + yeePayClientConfigMapper.updateSubMerchantIdValid(yeepayClientConfig.getString("yeepay_config_id"),0); + } + } + } + merchantInfo.put("client_id",client.getIntValue("client_id")); + merchantInfo.put("merchant_id",yeePayConfig.getAppKey().split("_")[1]); + merchantInfo.put("create_time",new Date()); + merchantInfo.put("is_valid",1); + merchantInfo.put("operator",manager.getString("display_name")); + yeePayClientConfigMapper.saveMerchantConfig(merchantInfo); + client.put("yeepay_sub_merchant_id",merchantInfo.getString("sub_merchant_id")); + clientMapper.update(client); + } + @Override public void reSubYeepayMerchantApplication(String clientMoniker, JSONObject merchantInfo, JSONObject manager) { JSONObject client = getClientInfoByMoniker(clientMoniker); @@ -3900,7 +3933,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid throw new InvalidShortIdException(); } checkOrgPermission(manager, client); - JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfigBySub(merchantInfo.getString("subMerchantId")); + JSONObject yeepayConfig = yeePayClientConfigMapper.findMerchantConfigBySub(client.getIntValue("client_id"),merchantInfo.getString("subMerchantId")); List directorsAll = new ArrayList<>(); List executivesAll = new ArrayList<>(); directorsAll.add(merchantInfo.getJSONObject("directors")); 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 f8d533a09..5506b9a2b 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 @@ -681,6 +681,11 @@ public class PartnerManageController { return clientManager.cbBankPayLink(clientMoniker); } + @ManagerMapping(value = "/{clientMoniker}/addYeepaySubMerchantId", method = RequestMethod.POST, role = {ManagerRole.OPERATOR, ManagerRole.ADMIN}) + public void subYeepayMerchantAdd(@PathVariable String clientMoniker,@RequestBody JSONObject merchantInfo,@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { + clientManager.subYeepayMerchantAdd(clientMoniker, merchantInfo,manager); + } + @RequestMapping(value = "/{clientMoniker}/cb_bankpay/link/pc", method = RequestMethod.GET) public void switchPaymentWayPC(@PathVariable String clientMoniker, HttpServletResponse response) throws IOException { clientManager.switchPaymentConfigPC(clientMoniker, response); diff --git a/src/main/resources/application-lakala.properties b/src/main/resources/application-lakala.properties index 2219e793b..d86c60022 100644 --- a/src/main/resources/application-lakala.properties +++ b/src/main/resources/application-lakala.properties @@ -2,7 +2,4 @@ app.lakala_pay.host=https://intl.lakala.com:7777 app.lakala_pay.publicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPg0O4rPQJL1O+jqJ4rBjFVNRAuDmBSoii9pYfPQBaescCVY0irkWWoLyfTT65TjvnPpOx+IfNzBTlB13qCEFm7algREoeUHjFgFNHiXJ2LK/R0+VWgXe5+EDFfbrFCPnmLKG3OcKDGQszP0VOf6VVTM1t56CpgaRMm1/+Tzd2TQIDAQAB app.lakala_pay.merchants.COPAUS000003.accountId=COPAUS000003 app.lakala_pay.merchants.COPAUS000003.currency=AUD -app.lakala_pay.merchants.COPAUS000003.privateKey=c:\\Software\\lakala\\COPAUS000003.key -app.lakala_pay.merchants.COPAUS000004.accountId=COPAUS000004 -app.lakala_pay.merchants.COPAUS000004.currency=CNY -app.lakala_pay.merchants.COPAUS000004.privateKey=c:\\Software\\lakala\\COPAUS000004.key +app.lakala_pay.merchants.COPAUS000003.privateKey=MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIDjX164cAJrlsikv2aCtGendMxOi97lCU/7sLp5qpMGIIYjpN71LpYR2SBm2vzQNGP0UE6kFtOUfsPLf8CZxPHXVd2Qnz3YC+2uUGkWmafEWVkw1LnDenI9SD5vvGZYeEH5H7Ct6yYv5/JTSevRgCVllWqcPXDs8spQmbcr8/oVAgMBAAECgYAF9v/d6Vk9s276AC3fd6MTvPs5zVTJzv28VuCZ8LGFNl5g9ttVejFavp620ivGUXhrO85PpWZtCk1HkG5sInGr0pVnBb8dtsfyEzTHnguv7mNSQ6tYEsINcyYbhOnPMsECaNrdwCC7q0i82MQGTHss50F0mjxRCVz4ndiBseRXYQJBANJ9lTuyuKUmUdxsQNLy+ajFSWvVcC0IRLBT2E1EqgPBRJuTc2wlULJVAKz/+eSEjDsmJ0yD9fnISjdY1csyS20CQQCcwTBZIejjwP011sB2A91z2DSnveU4vvgFWnj0hhM4a/ChuUKoylMVYlDQ1vrqErFag96keU9BUwQ1LlmfC1hJAkANDKoW1GKsIm8Kyk9OhK/Drc96dvYIZK3VfK05RRuBNhcpyf9q4flZxPlQwGHer/T9qcTf8oJqZOds/P3sJgcVAkB/C6Sf2Pfj/3o5tH/wJlnJliW2/hVV1JE35Ye6xx+0zucMbBY2ryR/ZFuTp2ldZSEQ92fvbdJqY1o5sAM6//rhAkAMhwWEtGZ8tboADbWBnxD/maMGYlI/oGsQHWTT9/Jt2LmlR+dgpl1DVwizPbVJ0hVJZWkF/BC5bdZ9XEIZsv/K diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 082fbc03b..e6c07afec 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -3638,6 +3638,19 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter $scope.loadSubMerchantInfos(); }) }; + $scope.addYeepaySubMerchantId = function () { + $uibModal.open({ + templateUrl: '/static/payment/partner/templates/add_yeepay_sub_merchant_id.html', + controller: 'addYeepaySubMerchantIdCtrl', + resolve: { + subMerchantInfo: function () { + return $scope.partner; + } + } + }).result.then(function () { + $scope.loadSubMerchantInfos(); + }) + }; $scope.updateYeepaySubMerchantId = function (sub_merchant_id) { $uibModal.open({ templateUrl: '/static/payment/partner/templates/update_yeepay_sub_merchant_id.html', @@ -4068,6 +4081,54 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter } }]); + app.controller('addYeepaySubMerchantIdCtrl', ['$scope', '$http', '$uibModal', '$state','subMerchantInfo','yeepayIndustryMap','yeepayBusinessContentMap','$filter', 'commonDialog','Upload', function ($scope, $http, $uibModal, $state,subMerchantInfo,yeepayIndustryMap,yeepayBusinessContentMap,$filter, commonDialog,Upload) { + $scope.yeepay_industries = yeepayIndustryMap.configs(); + $scope.yeepay_business_contents = yeepayBusinessContentMap.configs(); + $scope.subMerchantInfo = angular.copy(subMerchantInfo); + + var merchantInfo = {}; + + + + $scope.saveYeepayAdd = function (form) { + $scope.errmsg = null; + if (form.$invalid) { + angular.forEach(form, function (item, key) { + if (key.indexOf('$') < 0) { + item.$dirty = true; + } + }); + return; + } + // angular.forEach(form, function (item, key) { + // if(item !=null) { + // if(item.$name !=null) { + // merchantInfo[key] = item.$modelValue; + // } + // } + // }); + + merchantInfo['sub_merchant_id'] = $scope.sub_merchant_id; + merchantInfo['business_content'] = $scope.business_content; + merchantInfo['industry'] = $scope.industry; + $http.post('/sys/partners/' + $scope.subMerchantInfo.client_moniker + '/addYeepaySubMerchantId', merchantInfo).then(function (resp) { + $scope.$close(); + commonDialog.alert({ + title: 'Success', + content: 'Add Yeepay Sub Merchant ID successfully', + type: 'success' + }); + $state.reload(); + }, function (resp) { + commonDialog.alert({ + title: 'Error', + content: resp.data.message, + type: 'error' + }); + }) + } + }]); + app.controller('updateYeepaySubMerchantIdCtrl', ['$scope', '$http', '$uibModal', '$state','subMerchantInfo','yeepayIndustryMap','yeepayBusinessContentMap','$filter', 'commonDialog','Upload','subMerchantId', function ($scope, $http, $uibModal, $state,subMerchantInfo,yeepayIndustryMap,yeepayBusinessContentMap,$filter, commonDialog,Upload,subMerchantId) { $scope.yeepay_industries = yeepayIndustryMap.configs(); $scope.yeepay_business_contents = yeepayBusinessContentMap.configs(); diff --git a/src/main/ui/static/payment/partner/templates/add_yeepay_sub_merchant_id.html b/src/main/ui/static/payment/partner/templates/add_yeepay_sub_merchant_id.html new file mode 100644 index 000000000..ddc2f3ef4 --- /dev/null +++ b/src/main/ui/static/payment/partner/templates/add_yeepay_sub_merchant_id.html @@ -0,0 +1,65 @@ +
+
+
+
+
+
Add Yeepay Sub Merchant Id
+
+
+
+ +
+ +
+

Required Field

+
+
+
+ + +
+ +
+ +
+

Required Field

+
+
+
+ +
+ +
+ +
+

Required Field

+

More Than 50

+
+
+
+
+
+
+
+ +
+
+
+
+
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 c9dcc545f..11b10aacc 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 @@ -164,6 +164,11 @@ Apply Sub Merchant Id +