diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java index ea5068c86..7ef02be41 100644 --- a/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java +++ b/src/main/java/au/com/royalpay/payment/manage/mappers/system/ClientMapper.java @@ -122,4 +122,6 @@ public interface ClientMapper { List createClientsByGroup(@Param("start_date") Date start_date,@Param("end_date") Date end_date,@Param("start_date_month") Date start_date_month); List clientPayTypeInfoByClientIdRange(@Param("begin") int begin, @Param("end") int end); + + int getPartnercode(@Param("codes") String codes); } 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 efdf669d4..5d8e10901 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 @@ -43,6 +43,8 @@ public interface ClientManager { List listPartners(JSONObject manager, PartnerQuery query); + String initMerchantCode(); + @Transactional JSONObject registerClient(String clientMoniker, ClientRegisterInfo registery, 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 6074e7476..1e74e9ae0 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 @@ -630,6 +630,15 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid return clientMapper.listPartnerSelection(params, new PageBounds(Order.formString("create_time.desc"))); } + @Override + public String initMerchantCode() { + String code = RandomStringUtils.randomAlphanumeric(4).toUpperCase(); + if (clientMapper.getPartnercode(code) > 0) { + return initMerchantCode(); + } + return code; + } + @Override @Transactional public JSONObject registerClient(String clientMoniker, ClientRegisterInfo registery, JSONObject manager) { 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 9723ecf91..3df2f98fc 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 @@ -48,6 +48,12 @@ public class PartnerManageController { return clientManager.listPartners(manager, query); } + + @RequestMapping(value = "/init/merchant_code", method = RequestMethod.GET) + public String initMerchantCode() { + return clientManager.initMerchantCode(); + } + @RequestMapping(method = RequestMethod.POST) @RequireManager(role = {ManagerRole.ADMIN, ManagerRole.BD_USER, ManagerRole.OPERATOR}) public JSONObject registerPartner(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @RequestBody @Valid ClientRegisterInfo registery, diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml index 3f0bcb658..19d6f31f5 100644 --- a/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml +++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/system/ClientMapper.xml @@ -645,4 +645,8 @@ AND p.client_id >= #{begin} AND p.client_id < #{end} + + diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js index 9e43f403d..fc9907856 100644 --- a/src/main/ui/static/payment/partner/partner-manage.js +++ b/src/main/ui/static/payment/partner/partner-manage.js @@ -368,6 +368,12 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter } else { $scope.partner = {timezone: 'Australia/Melbourne'}; } + $scope.initMerchantCode = function () { + $http.get('/sys/partners/init/merchant_code').then(function (response) { + $scope.partner.client_moniker = response.data; + }); + }; + $scope.initMerchantCode(); $scope.partner.company_phone_c = 61; $scope.partner.contact_phone_c = 61; $scope.partner.client_pay_type = []; diff --git a/src/main/ui/static/payment/partner/templates/add_partner.html b/src/main/ui/static/payment/partner/templates/add_partner.html index 5e6b73c87..b371dd5c8 100644 --- a/src/main/ui/static/payment/partner/templates/add_partner.html +++ b/src/main/ui/static/payment/partner/templates/add_partner.html @@ -35,11 +35,13 @@ Numbers)
+ ng-pattern="/^[a-zA-Z0-9]+$/" readonly> +

No further changeable!