add level3_mch_config 自动配置

master
luoyang 6 years ago
parent 98a8ea0e58
commit f864b7c695

@ -9,7 +9,7 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>manage</artifactId> <artifactId>manage</artifactId>
<version>1.3.93</version> <version>1.3.94</version>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jib-maven-plugin.version>1.8.0</jib-maven-plugin.version> <jib-maven-plugin.version>1.8.0</jib-maven-plugin.version>

@ -746,6 +746,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
checkOrgPermission(manager, superClient); checkOrgPermission(manager, superClient);
partner.put("parent_client_id", superClient.getIntValue("client_id")); partner.put("parent_client_id", superClient.getIntValue("client_id"));
} }
//如果level3商户为一级商户增加level3_mch_config=true
checkLevel3MchStatus(superClient);
} }
partner.put("create_time", new Date()); partner.put("create_time", new Date());
partner.put("ali_sub_merchant_id", registery.getClientMoniker()); partner.put("ali_sub_merchant_id", registery.getClientMoniker());
@ -2097,7 +2099,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
if(mchConfig.getBooleanValue("hide_sub_mch")){ if(mchConfig.getBooleanValue("hide_sub_mch")){
return new ArrayList<>(); return new ArrayList<>();
} }
if (!mchConfig.getBooleanValue("disable_level3_mch") && listChildClients.size()<100) { if (mchConfig.getBooleanValue("level3_mch_config")) {
for (JSONObject partner : listChildClients) { for (JSONObject partner : listChildClients) {
List<JSONObject> clients = clientMapper.listChildClients(partner.getIntValue("client_id")); List<JSONObject> clients = clientMapper.listChildClients(partner.getIntValue("client_id"));
if (clients.size() > 0) { if (clients.size() > 0) {
@ -2128,13 +2130,16 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
params.put("search_text", searchText); params.put("search_text", searchText);
} }
PageList<JSONObject> childClients = clientMapper.listChildClientsByPage(params, pageBounds); PageList<JSONObject> childClients = clientMapper.listChildClientsByPage(params, pageBounds);
for (JSONObject partner : childClients) { JSONObject mchConfig = merchantInfoProvider.getMchExtParams(client.getIntValue("client_id"));
List<JSONObject> clients = clientMapper.listChildClients(partner.getIntValue("client_id")); if (mchConfig.getBooleanValue("level3_mch_config")) {
if (clients.size() > 0) { for (JSONObject partner : childClients) {
partner.put("level3Clients", clients); List<JSONObject> clients = clientMapper.listChildClients(partner.getIntValue("client_id"));
clients.forEach(e -> { if (clients.size() > 0) {
e.put("parent_client_moniker", partner.getString("client_moniker")); partner.put("level3Clients", clients);
}); clients.forEach(e -> {
e.put("parent_client_moniker", partner.getString("client_moniker"));
});
}
} }
} }
return PageListUtils.buildPageListResult(childClients); return PageListUtils.buildPageListResult(childClients);
@ -6650,11 +6655,20 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
} }
private String[] getChildClientIds(int clientId) { private String[] getChildClientIds(int clientId) {
JSONObject mchConfig = merchantInfoProvider.getMchExtParams(clientId);
List<String> clientIds = new ArrayList<>(); List<String> clientIds = new ArrayList<>();
List<JSONObject> childs = clientMapper.listChildClients(clientId); List<JSONObject> childs = clientMapper.listChildClients(clientId);
clientIds.add(String.valueOf(clientId)); clientIds.add(String.valueOf(clientId));
childs.forEach(p -> { childs.forEach(p -> {
clientIds.add(p.getString("client_id")); clientIds.add(p.getString("client_id"));
if (mchConfig.getBooleanValue("level3_mch_config")) {
List<JSONObject> clients = clientMapper.listChildClients(p.getIntValue("client_id"));
if (clients.size() > 0) {
clients.forEach(e -> {
clientIds.add(e.getString("client_id"));
});
}
}
}); });
return clientIds.toArray(new String[]{}); return clientIds.toArray(new String[]{});
} }
@ -6689,4 +6703,19 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
} }
} }
private void checkLevel3MchStatus(JSONObject superClient) {
if (superClient.containsKey("parent_client_id") && superClient.getIntValue("parent_client_id") != 0) {
JSONObject superParentClient = getClientInfo(superClient.getIntValue("parent_client_id"));
if (superParentClient == null) {
throw new InvalidShortIdException();
}
JSONObject mchConfig = merchantInfoProvider.getMchExtParams(superParentClient.getIntValue("client_id"));
if (!mchConfig.getBooleanValue("level3_mch_config")) {
mchConfig.put("level3_mch_config", true);
superParentClient.put("ext_params", mchConfig.toJSONString());
clientMapper.update(superParentClient);
}
}
}
} }

@ -3301,6 +3301,8 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
$scope.$close(); $scope.$close();
}, function (resp) { }, function (resp) {
$scope.errmsg = resp.data.message; $scope.errmsg = resp.data.message;
$scope.partner.client_pay_type = $scope.partner.client_pay_type.split(",");
$scope.partner.client_pay_desc = $scope.partner.client_pay_desc.split(",");
}) })
} }
$scope.uploadLogo = function (file) { $scope.uploadLogo = function (file) {
@ -3550,16 +3552,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
} }
$scope.clients.push(client); $scope.clients.push(client);
}); });
$scope.clientIds = [];
$scope.clients.forEach(function (client) {
$scope.clientIds.push(client.client_id);
if (client.level3Clients) {
client.level3Clients.forEach(function (level3Client) {
$scope.clientIds.push(level3Client.client_id);
});
}
});
$scope.params.client_ids = angular.copy($scope.clientIds);
}); });
}; };
@ -4417,16 +4409,6 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
} }
$scope.clients.push(client); $scope.clients.push(client);
}); });
$scope.clientIds = [];
$scope.clients.forEach(function (client) {
$scope.clientIds.push(client.client_id);
if (client.level3Clients) {
client.level3Clients.forEach(function (level3Client) {
$scope.clientIds.push(level3Client.client_id);
});
}
});
$scope.params.client_ids = angular.copy($scope.clientIds);
}); });
}; };
$scope.initClientInfo = function(){ $scope.initClientInfo = function(){

@ -50,16 +50,6 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
} }
$scope.clients.push(client); $scope.clients.push(client);
}); });
$scope.clientIds = [];
$scope.clients.forEach(function (client) {
$scope.clientIds.push(client.client_id);
if (client.level3Clients) {
client.level3Clients.forEach(function (level3Client) {
$scope.clientIds.push(level3Client.client_id);
});
}
});
$scope.params.client_ids = angular.copy($scope.clientIds);
}); });
}; };
$scope.today = new Date(); $scope.today = new Date();

@ -313,16 +313,6 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
} }
$scope.clients.push(client); $scope.clients.push(client);
}); });
$scope.clientIds = [];
$scope.clients.forEach(function (client) {
$scope.clientIds.push(client.client_id);
if (client.level3Clients) {
client.level3Clients.forEach(function (level3Client) {
$scope.clientIds.push(level3Client.client_id);
});
}
});
$scope.params.client_ids = angular.copy($scope.clientIds);
}); });
}; };

@ -138,16 +138,6 @@ define(['angular', 'uiBootstrap', 'uiRouter'], function (angular) {
} }
$scope.clients.push(client); $scope.clients.push(client);
}); });
$scope.clientIds = [];
$scope.clients.forEach(function (client) {
$scope.clientIds.push(client.client_id);
if (client.level3Clients) {
client.level3Clients.forEach(function (level3Client) {
$scope.clientIds.push(level3Client.client_id);
});
}
});
$scope.params.client_ids = angular.copy($scope.clientIds);
}); });
}; };

Loading…
Cancel
Save