diff --git a/pom.xml b/pom.xml
index 314ed15ad..1b23f9df3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
UTF-8
1.1.2
- 1.0.20
+ 1.0.21
diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/core/AliforexcelService.java b/src/main/java/au/com/royalpay/payment/manage/dev/core/AliforexcelService.java
index d129c1eed..e19587901 100644
--- a/src/main/java/au/com/royalpay/payment/manage/dev/core/AliforexcelService.java
+++ b/src/main/java/au/com/royalpay/payment/manage/dev/core/AliforexcelService.java
@@ -16,4 +16,6 @@ public interface AliforexcelService {
JSONObject registerAlipayMerchant();
JSONObject getLessPartnerInfo();
+
+ void initClientPayType(int begin,int end);
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/AliforexcelServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/AliforexcelServiceImpl.java
index f0c446ccf..b80021591 100644
--- a/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/AliforexcelServiceImpl.java
+++ b/src/main/java/au/com/royalpay/payment/manage/dev/core/impl/AliforexcelServiceImpl.java
@@ -4,9 +4,12 @@ import au.com.royalpay.payment.channels.alipay.config.AlipayConfig;
import au.com.royalpay.payment.channels.alipay.config.AlipayEnvironment;
import au.com.royalpay.payment.channels.alipay.runtime.AlipayClient;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
+import au.com.royalpay.payment.core.mappers.PmtOrderMapper;
import au.com.royalpay.payment.manage.dev.bean.AliExcel;
import au.com.royalpay.payment.manage.dev.core.AliforexcelService;
+import au.com.royalpay.payment.manage.mappers.payment.OrderMapper;
import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper;
+import au.com.royalpay.payment.manage.mappers.system.ClientConfigMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
@@ -26,6 +29,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.security.InvalidParameterException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
@Service
@@ -33,9 +37,13 @@ public class AliforexcelServiceImpl implements AliforexcelService {
@Resource
private ClientMapper clientMapper;
@Resource
+ private ClientConfigMapper clientConfigMapper;
+ @Resource
private TransactionMapper transactionMapper;
@Resource
private AlipayClient alipayClient;
+ @Resource
+ private OrderMapper orderMapper;
@Override
public JSONObject listClients(HttpServletResponse httpResponse,JSONObject manager, AliExcel query) {
@@ -239,4 +247,76 @@ public class AliforexcelServiceImpl implements AliforexcelService {
throw new InvalidParameterException("Alipay Industry can't be null");
}
}
+
+
+ @Override
+ public void initClientPayType(int begin,int end) {
+ List merchants = clientMapper.clientPayTypeInfoByClientIdRange(begin, end);
+ for (JSONObject partner : merchants) {
+ JSONObject clientConfig = new JSONObject();
+ List types = new ArrayList<>();
+ List descs = new ArrayList<>();
+ clientConfig.put("client_id", partner.getIntValue("client_id"));
+ clientConfig.put("client_moniker", partner.getString("client_moniker"));
+ List gateways = orderMapper.listGatewayByClientId(partner.getIntValue("client_id"));
+ if (gateways.size() == 0) {
+ unOrdersPartner(partner, clientConfig);
+ continue;
+ }
+ if (gateways.contains(0) || gateways.contains(1) || gateways.contains(2)) {
+ descs.add("6");
+ }
+ if (gateways.contains(3) || gateways.contains(9) || gateways.contains(14)) {
+ descs.add("1");
+ }
+ if (gateways.contains(4) || gateways.contains(7)) {
+ descs.add("4");
+ }
+ if (gateways.contains(5) || gateways.contains(6) || gateways.contains(11)) {
+ descs.add("8");
+ descs.add("12");
+ }
+ if (gateways.contains(8)) {
+ descs.add("2");
+ }
+ if (gateways.contains(10)) {
+ descs.add("3");
+ }
+ if (gateways.contains(12)) {
+ descs.add("5");
+ }
+ if (gateways.contains(13)) {
+ descs.add("6");
+ }
+ if (descs.contains("1") || descs.contains("2") || descs.contains("3") || descs.contains("4") ||
+ descs.contains("5")) {
+ types.add("1");
+ }
+ if (descs.contains("6") || descs.contains("7") || descs.contains("8") || descs.contains("9") ||
+ descs.contains("10") || descs.contains("11") || descs.contains("12") ||descs.contains("13")) {
+ types.add("2");
+ }
+ clientConfig.put("client_pay_type", StringUtils.join(types, ','));
+ clientConfig.put("client_pay_desc", StringUtils.join(descs, ','));
+ clientConfigMapper.update(clientConfig);
+ }
+ }
+
+ private void unOrdersPartner(JSONObject partner,JSONObject clientConfig) {
+ if (StringUtils.isBlank(partner.getString("client_pay_type"))) {
+ clientConfig.put("client_pay_type", "2");
+ clientConfig.put("client_pay_desc", "6");
+ } else {
+ String[] types = partner.getString("client_pay_type").split(",");
+ List descs = new ArrayList<>();
+ if (Arrays.asList(types).contains("1")) {
+ descs.add("3");
+ }
+ if (Arrays.asList(types).contains("2")) {
+ descs.add("6");
+ }
+ clientConfig.put("client_pay_desc", StringUtils.join(descs, ','));
+ }
+ clientConfigMapper.update(clientConfig);
+ }
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
index e8fd2d89f..2f2725959 100644
--- a/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
+++ b/src/main/java/au/com/royalpay/payment/manage/dev/web/TestController.java
@@ -464,4 +464,9 @@ public class TestController implements ApplicationEventPublisherAware {
public JSONObject getLessPartnerInfo() {
return aliforexcelService.getLessPartnerInfo();
}
+
+ @ManagerMapping(value = "/init/client_pay_type", role = ManagerRole.DEVELOPER, method = RequestMethod.GET)
+ public void initClientPayType(@RequestParam int begin,@RequestParam int end) {
+ aliforexcelService.initClientPayType(begin,end);
+ }
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java
index 3ca7e147d..88c534e0d 100644
--- a/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java
+++ b/src/main/java/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.java
@@ -70,5 +70,5 @@ public interface OrderMapper {
@AdvanceSelect(addonWhereClause = "status in (5,6,7) AND channel in('Wechat','Alipay')")
List listNewYearOrdersByOpenId(@Param("customer_id") String open_id,@Param("transaction_date") String date);
-
+ List listGatewayByClientId(@Param("client_id") int clientId);
}
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 28b157084..ea5068c86 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
@@ -120,4 +120,6 @@ public interface ClientMapper {
List childClientId(@Param("parent_client_id") int parent_client_id);
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);
}
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 f9ae1193a..c89858280 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
@@ -409,6 +409,11 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
String cbBankPayQrcodeUrl = PlatformEnvironment.getEnv().concatUrl("/sys/partners/" + client.getString("client_moniker") + "/cb_bankpay/link");
client.put("cbBankPayQrcodeUrl", QRCodeUtils.qrcodeImageCode(cbBankPayQrcodeUrl, 250, true));
}
+ //商户支付场景
+ if (StringUtils.isNotBlank(client.getString("client_pay_type"))) {
+ client.put("client_pay_type",client.getString("client_pay_type").split(","));
+ client.put("client_pay_desc",client.getString("client_pay_desc").split(","));
+ }
return client;
}
diff --git a/src/main/java/au/com/royalpay/payment/manage/merchants/enums/paymentScenarioEnum.java b/src/main/java/au/com/royalpay/payment/manage/merchants/enums/paymentScenarioEnum.java
new file mode 100644
index 000000000..ad2e5269e
--- /dev/null
+++ b/src/main/java/au/com/royalpay/payment/manage/merchants/enums/paymentScenarioEnum.java
@@ -0,0 +1,48 @@
+package au.com.royalpay.payment.manage.merchants.enums;
+
+/**
+ * @Author: luoyang
+ * @Date: 2019-05-29 10:30
+ */
+public enum paymentScenarioEnum {
+ PC_WEB(1, "PC网站"),
+
+ MOBILE_WEB(2, "手机端网站"),
+
+ APP(3, "APP"),
+
+ WECHAT_ALIPAY_WEB(4, "微信内、支付宝内网站"),
+
+ MINIPROGRAM(5, "小程序"),
+
+ QRCODE_BOARD(6, "二维码立牌"),
+
+ ROYALPAY_POS(7,"Royalpay POS"),
+
+ CASHIER_POS(8,"收银系统"),
+
+ IPOS(9,"ipos"),
+
+ POSPAL(10,"pospal"),
+
+ AUPOS(11,"aupos"),
+
+ OTHER(12,"other"),
+
+ VENDING_MACHINE(13,"无人售货机");
+
+ private final int scenarioTypeId;
+ private final String desc;
+
+ public int getScenarioTypeId() {
+ return scenarioTypeId;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+ paymentScenarioEnum(int scenarioTypeId, String desc) {
+ this.scenarioTypeId = scenarioTypeId;
+ this.desc = desc;
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml
index b4d1aa93a..e5f0f0017 100644
--- a/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml
+++ b/src/main/resources/au/com/royalpay/payment/manage/mappers/payment/OrderMapper.xml
@@ -846,4 +846,10 @@
and t.clearing_amount >= 1.99
]]>
+
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 de3f5474c..673aae015 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
@@ -591,4 +591,12 @@
WHERE
t1.bd_type IN ( 1, 2, 6, 7 )
+
+
diff --git a/src/main/ui/static/commons/filters/commonFilters.js b/src/main/ui/static/commons/filters/commonFilters.js
index 7106c5a49..af6d51e3e 100644
--- a/src/main/ui/static/commons/filters/commonFilters.js
+++ b/src/main/ui/static/commons/filters/commonFilters.js
@@ -70,17 +70,6 @@ define(['../app', 'jquery'], function (app, $) {
}
});
- var offlineDesc = [];
- $.ajax({
- url: '/static/data/client_offline_desc.json',
- method: 'GET',
- async: false,
- dataType: 'json',
- success: function (data) {
- offlineDesc = data;
-
- }
- });
app.filter('partner_state', ['stateMap', function (stateMap) {
return function (stateValue) {
@@ -236,29 +225,6 @@ define(['../app', 'jquery'], function (app, $) {
}]);
- app.filter('partner_offline_desc', ['$http', function ($http) {
- return function (industryCode) {
- var industryLabel = '';
- angular.forEach(offlineDesc, function (category) {
- if (category.value == industryCode) {
- industryLabel = category.label;
- }
- angular.forEach(category.children, function (categoryChildren1) {
- if (categoryChildren1.value == industryCode) {
- industryLabel = categoryChildren1.label;
- }
- angular.forEach(categoryChildren1.children, function (categoryChildren2) {
- if (categoryChildren2.value == industryCode) {
- industryLabel = categoryChildren2.label;
- }
- });
- });
- });
- return industryLabel;
- }
-
- }]);
-
app.filter('partner_sector', ['sectorMap', function (sectorMap) {
return function (sectorValue) {
var sectorLabel = '';
diff --git a/src/main/ui/static/payment/partner/partner-manage.js b/src/main/ui/static/payment/partner/partner-manage.js
index 05d05cb5a..5b662825e 100644
--- a/src/main/ui/static/payment/partner/partner-manage.js
+++ b/src/main/ui/static/payment/partner/partner-manage.js
@@ -370,8 +370,52 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
$scope.partner.company_phone_c = 61;
$scope.partner.contact_phone_c = 61;
+ $scope.partner.client_pay_type = [];
+ $scope.partner.client_pay_desc = [];
+ var resetClientPayDescByTpey = function (type) {
+ type = parseInt(type);
+ if (type == 1) {
+ while (parseInt($scope.partner.client_pay_desc[0]) < 6) {
+ $scope.partner.client_pay_desc.splice(0, 1);
+ }
+ }
+ if (type == 2) {
+ while (parseInt($scope.partner.client_pay_desc[$scope.partner.client_pay_desc.length-1]) > 5) {
+ $scope.partner.client_pay_desc.splice($scope.partner.client_pay_desc.length-1, 1);
+ }
+ }
+ };
-
+ var compare = function (x, y) {
+ x = parseInt(x);
+ y = parseInt(y);
+ if (x < y) {
+ return -1;
+ } else if (x > y) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ $scope.toggleClientPayType = function (type) {
+ var $idx = $scope.partner.client_pay_type.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_type.splice($idx, 1);
+ resetClientPayDescByTpey(type);
+ } else {
+ $scope.partner.client_pay_type.push(type);
+ $scope.partner.client_pay_type.sort(compare);
+ }
+ };
+ $scope.toggleClientPayDesc = function (type) {
+ var $idx = $scope.partner.client_pay_desc.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_desc.splice($idx, 1);
+ } else {
+ $scope.partner.client_pay_desc.push(type);
+ $scope.partner.client_pay_desc.sort(compare);
+ }
+ };
$scope.pagination = {};
$scope.industries = industryMap.configs();
$scope.states = stateMap.configs();
@@ -382,12 +426,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.bd_citys = angular.copy(bd_city_map);
$scope.params = {textType: 'all', org_name: 'ALL'};
-
- $scope.onOfflineDescSelect = function (selectedItem) {
- $scope.partner.offline_label = selectedItem.label;
- $scope.partner.client_offline_desc = selectedItem.value;
- };
-
function remove(arr, val) {
if (angular.isArray(arr)) {
for (var i = arr.length; i--;) {
@@ -400,13 +438,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
return arr;
}
- $scope.loadOfflineDesc = function () {
- $http.get('/static/data/client_offline_desc.json').then(function (resp) {
- $scope.client_offline_select = resp.data;
- })
- };
- $scope.loadOfflineDesc();
-
var industries = angular.copy($scope.industries);
$scope.industries = remove(industries, 331);
@@ -538,7 +569,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
alert("Logo is necessary!");
return;
}
- if ($scope.partner.partner_type == 'photo') {
+ if ($scope.partner.client_pay_type.indexOf('2')>=0) {
if (!$scope.partner.company_photo) {
alert('Shop Photo1 is necessary');
return;
@@ -557,20 +588,32 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
})
}
- // if ($scope.partner.client_pay_type =='online' || $scope.partner.client_pay_type =='all') {
- // if (!$scope.partner.online_website && !$scope.partner.online_public_account && !$scope.partner.online_mini_program && !$scope.partner.online_app) {
- // alert('线上支付场景至少填写一种方式');
- // return;
- // }
- // }
- // if(!window.frames['merchant_detail'].merchant_location){
- // alert("Please Locate Merchant's Location");
- // return;
- // }
- if ($scope.params.client_pay_type == '') {
+
+ if ($scope.partner.client_pay_type.length==0) {
alert('请选择商户支付场景')
+ return;
}
-
+ if ($scope.partner.client_pay_desc.length==0) {
+ alert('请选择商户支付方式')
+ return;
+ }
+ if ($scope.partner.client_pay_type.indexOf('1') >= 0 && $scope.partner.client_pay_type.indexOf('2') >= 0) {
+ var fristDesc = $scope.partner.client_pay_desc[0];
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(fristDesc) > 5 || parseInt(lastDesc) < 6) {
+ alert("请检查线上/线下支付场景是否已选择支付方式")
+ return;
+ }
+ }
+ if ($scope.partner.client_pay_desc.indexOf('8') >= 0) {
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(lastDesc) < 10) {
+ alert("请检查线下支付是否已选择收银系统类型")
+ return;
+ }
+ }
+ $scope.partner.client_pay_type = $scope.partner.client_pay_type.join(',');
+ $scope.partner.client_pay_desc = $scope.partner.client_pay_desc.join(',');
$http.post('/sys/partners', $scope.partner).then(function (resp) {
commonDialog.alert({title: 'Success', content: 'Register new partner successfully', type: 'success'});
$scope.updateMerchantLocation();
@@ -1130,18 +1173,48 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.timezones = timezone.configs();
$scope.partner = partner.data;
var origin_referrer_id = angular.copy($scope.partner.referrer_id);
- $scope.partner.partner_type = $scope.partner.website ? 'website' : 'photo';
-
- $scope.loadOfflineDesc = function () {
- $http.get('/static/data/client_offline_desc.json').then(function (resp) {
- $scope.client_offline_select = resp.data;
- })
+ var resetClientPayDescByTpey = function (type) {
+ type = parseInt(type);
+ if (type == 1) {
+ while (parseInt($scope.partner.client_pay_desc[0]) < 6) {
+ $scope.partner.client_pay_desc.splice(0, 1);
+ }
+ }
+ if (type == 2) {
+ while (parseInt($scope.partner.client_pay_desc[$scope.partner.client_pay_desc.length-1]) > 5) {
+ $scope.partner.client_pay_desc.splice($scope.partner.client_pay_desc.length-1, 1);
+ }
+ }
};
- $scope.loadOfflineDesc();
-
- $scope.onOfflineDescSelect = function (selectedItem) {
- $scope.partner.offline_label = selectedItem.label;
- $scope.partner.client_offline_desc = selectedItem.value;
+ var compare = function (x, y) {
+ x = parseInt(x);
+ y = parseInt(y);
+ if (x < y) {
+ return -1;
+ } else if (x > y) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ $scope.toggleClientPayType = function (type) {
+ var $idx = $scope.partner.client_pay_type.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_type.splice($idx, 1);
+ resetClientPayDescByTpey(type);
+ } else {
+ $scope.partner.client_pay_type.push(type);
+ $scope.partner.client_pay_type.sort(compare);
+ }
+ };
+ $scope.toggleClientPayDesc = function (type) {
+ var $idx = $scope.partner.client_pay_desc.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_desc.splice($idx, 1);
+ } else {
+ $scope.partner.client_pay_desc.push(type);
+ $scope.partner.client_pay_desc.sort(compare);
+ }
};
$scope.listReferrers = function () {
@@ -1239,7 +1312,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
alert('suburb can not contain two and more continuous space characters');
return;
}
- if ($scope.partner.partner_type == 'photo') {
+ if ($scope.partner.client_pay_type.indexOf('2') >= 0) {
if (!$scope.partner.company_photo) {
alert('Shop Photo1 is necessary');
return;
@@ -1277,9 +1350,31 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
// alert("Please Locate Merchant Location!");
// return;
// }
- if ($scope.params.client_pay_type == '') {
+ if ($scope.partner.client_pay_type.length == 0) {
alert('请选择商户支付场景')
+ return;
+ }
+ if ($scope.partner.client_pay_desc.length == 0) {
+ alert('请选择商户支付方式')
+ return;
}
+ if ($scope.partner.client_pay_type.indexOf('1') >= 0 && $scope.partner.client_pay_type.indexOf('2') >= 0) {
+ var fristDesc = $scope.partner.client_pay_desc[0];
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(fristDesc) > 5 || parseInt(lastDesc) < 6) {
+ alert("请检查线上/线下支付场景是否已选择支付方式")
+ return;
+ }
+ }
+ if ($scope.partner.client_pay_desc.indexOf('8') >= 0) {
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(lastDesc) < 10) {
+ alert("请检查线下支付是否已选择收银系统类型")
+ return;
+ }
+ }
+ $scope.partner.client_pay_type = $scope.partner.client_pay_type.join(',');
+ $scope.partner.client_pay_desc = $scope.partner.client_pay_desc.join(',');
$http.put('/sys/partners/' + $scope.partner.client_moniker, $scope.partner).then(function () {
if (content != '') {
commonDialog.alert({
@@ -2624,6 +2719,52 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
}
$scope.partner.company_phone_c = 61;
$scope.partner.contact_phone_c = 61;
+ $scope.partner.client_pay_type = [];
+ $scope.partner.client_pay_desc = [];
+ var resetClientPayDescByTpey = function (type) {
+ type = parseInt(type);
+ if (type == 1) {
+ while (parseInt($scope.partner.client_pay_desc[0]) < 6) {
+ $scope.partner.client_pay_desc.splice(0, 1);
+ }
+ }
+ if (type == 2) {
+ while (parseInt($scope.partner.client_pay_desc[$scope.partner.client_pay_desc.length-1]) > 5) {
+ $scope.partner.client_pay_desc.splice($scope.partner.client_pay_desc.length-1, 1);
+ }
+ }
+ };
+
+ var compare = function (x, y) {
+ x = parseInt(x);
+ y = parseInt(y);
+ if (x < y) {
+ return -1;
+ } else if (x > y) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ $scope.toggleClientPayType = function (type) {
+ var $idx = $scope.partner.client_pay_type.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_type.splice($idx, 1);
+ resetClientPayDescByTpey(type);
+ } else {
+ $scope.partner.client_pay_type.push(type);
+ $scope.partner.client_pay_type.sort(compare);
+ }
+ };
+ $scope.toggleClientPayDesc = function (type) {
+ var $idx = $scope.partner.client_pay_desc.indexOf(type);
+ if ($idx >= 0) {
+ $scope.partner.client_pay_desc.splice($idx, 1);
+ } else {
+ $scope.partner.client_pay_desc.push(type);
+ $scope.partner.client_pay_desc.sort(compare);
+ }
+ };
$scope.business_structures = businessStructuresMap.configs();
$scope.industries = industryMap.configs();
@@ -2762,7 +2903,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
alert("Logo is necessary!");
return;
}
- if ($scope.partner.partner_type == 'photo') {
+ if ($scope.partner.client_pay_type.indexOf('2')>=0) {
if (!$scope.partner.company_photo) {
alert('Shop Photo1 is necessary');
return;
@@ -2776,9 +2917,31 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
// alert("Please Locate Merchant Location!");
// return;
// }
- if ($scope.partner.client_pay_type == '') {
+ if ($scope.partner.client_pay_type.length==0) {
alert('请选择商户支付场景')
+ return;
+ }
+ if ($scope.partner.client_pay_desc.length==0) {
+ alert('请选择商户支付方式')
+ return;
+ }
+ if ($scope.partner.client_pay_type.indexOf('1') >= 0 && $scope.partner.client_pay_type.indexOf('2') >= 0) {
+ var fristDesc = $scope.partner.client_pay_desc[0];
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(fristDesc) > 5 || parseInt(lastDesc) < 6) {
+ alert("请检查线上/线下支付场景是否已选择支付方式")
+ return;
+ }
+ }
+ if ($scope.partner.client_pay_desc.indexOf('8') >= 0) {
+ var lastDesc = $scope.partner.client_pay_desc[($scope.partner.client_pay_desc.length - 1)];
+ if (parseInt(lastDesc) < 10) {
+ alert("请检查线下支付是否已选择收银系统类型")
+ return;
+ }
}
+ $scope.partner.client_pay_type = $scope.partner.client_pay_type.join(',');
+ $scope.partner.client_pay_desc = $scope.partner.client_pay_desc.join(',');
$http.post('/sys/partners/' + clientMoniker + '/sub_clients', $scope.partner).then(function () {
$scope.updateMerchantLocation();
$scope.$close();
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 d720b9170..dd3b64b72 100644
--- a/src/main/ui/static/payment/partner/templates/add_partner.html
+++ b/src/main/ui/static/payment/partner/templates/add_partner.html
@@ -3,6 +3,12 @@
max-height: 100px;
margin-left: 20px;
}
+ .btn btn-default:active{
+ position: relative;
+ top: 1px;
+ box-shadow: inset 0 3px 5px 0 rgba(0,0,0, 0.2);
+ outline: 0;
+ }