diff --git a/boot/platform/src/main/java/com/platform/boot/commons/query/ParamSql.java b/boot/platform/src/main/java/com/platform/boot/commons/query/ParamSql.java
index 4de6811e..35064e65 100644
--- a/boot/platform/src/main/java/com/platform/boot/commons/query/ParamSql.java
+++ b/boot/platform/src/main/java/com/platform/boot/commons/query/ParamSql.java
@@ -1,7 +1,5 @@
package com.platform.boot.commons.query;
-import com.google.common.collect.Maps;
-
import java.io.Serializable;
import java.util.Map;
import java.util.StringJoiner;
@@ -10,8 +8,6 @@
* @author Alex bob
*/
public record ParamSql(StringJoiner sql, Map params) implements Serializable {
- public final static ParamSql EMPTY = ParamSql.of(new StringJoiner(" AND "), Maps.newHashMap());
-
/**
* Creates a new ParamSql instance with the given SQL string and parameters.
*
diff --git a/boot/platform/src/main/java/com/platform/boot/commons/query/QueryJson.java b/boot/platform/src/main/java/com/platform/boot/commons/query/QueryJson.java
index f68de90f..477c593c 100644
--- a/boot/platform/src/main/java/com/platform/boot/commons/query/QueryJson.java
+++ b/boot/platform/src/main/java/com/platform/boot/commons/query/QueryJson.java
@@ -1,15 +1,14 @@
package com.platform.boot.commons.query;
import com.google.common.base.CaseFormat;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.springframework.data.domain.Sort;
import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringJoiner;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -32,75 +31,100 @@ public class QueryJson {
KEYWORDS.put("LTE", "<=");
KEYWORDS.put("LessThan", "<");
KEYWORDS.put("LT", "<");
- KEYWORDS.put("Between", "BETWEEN");
- KEYWORDS.put("NotBetween", "NOT BETWEEN");
- KEYWORDS.put("NotIn", "NOT IN");
- KEYWORDS.put("In", "IN");
- KEYWORDS.put("IsNotNull", "IS NOT NULL");
- KEYWORDS.put("NotNull", "IS NOT NULL");
- KEYWORDS.put("IsNull", "IS NULL");
- KEYWORDS.put("Null", "IS NULL");
- KEYWORDS.put("NotLike", "NOT LIKE");
- KEYWORDS.put("Like", "LIKE");
- KEYWORDS.put("StartingWith", "LIKE");
- KEYWORDS.put("EndingWith", "LIKE");
- KEYWORDS.put("IsNotLike", "NOT LIKE");
- KEYWORDS.put("Containing", "LIKE");
- KEYWORDS.put("NotContaining", "NOT LIKE");
+ KEYWORDS.put("Between", "between");
+ KEYWORDS.put("NotBetween", "not between");
+ KEYWORDS.put("NotIn", "not in");
+ KEYWORDS.put("In", "in");
+ KEYWORDS.put("IsNotNull", "is not null");
+ KEYWORDS.put("NotNull", "is not null");
+ KEYWORDS.put("IsNull", "is null");
+ KEYWORDS.put("Null", "is null");
+ KEYWORDS.put("NotLike", "not like");
+ KEYWORDS.put("Like", "like");
+ KEYWORDS.put("StartingWith", "like");
+ KEYWORDS.put("EndingWith", "like");
+ KEYWORDS.put("IsNotLike", "not like");
+ KEYWORDS.put("Containing", "like");
+ KEYWORDS.put("NotContaining", "not like");
KEYWORDS.put("Not", "!=");
- KEYWORDS.put("IsTrue", "IS TRUE");
- KEYWORDS.put("True", "IS TRUE");
- KEYWORDS.put("IsFalse", "IS FALSE");
- KEYWORDS.put("False", "IS FALSE");
+ KEYWORDS.put("IsTrue", "is true");
+ KEYWORDS.put("True", "is true");
+ KEYWORDS.put("IsFalse", "is false");
+ KEYWORDS.put("False", "is false");
}
- /**
- * Generates a JSON query based on the provided parameters and returns a map
- * of the generated SQL query and its corresponding parameters.
- *
- * @param params a map of key-value pairs representing the parameters for the query
- * @return a map containing the generated SQL query and its parameters
- */
- public static ParamSql queryJson(Map params) {
+ public static Sort sortJson(Sort sort, String prefix) {
+ if (sort == null || sort.isEmpty()) {
+ return Sort.unsorted();
+ }
+ List orders = Lists.newArrayList();
+ for (Sort.Order order : sort) {
+ String[] keys = StringUtils.delimitedListToStringArray(order.getProperty(), ".");
+ if (keys.length > 1) {
+ int lastIndex = keys.length - 1;
+ var sortReplaceArray = Arrays.copyOfRange(keys, 1, lastIndex);
+ String sortedProperty = keys[0];
+ if (StringUtils.hasLength(prefix)) {
+ sortedProperty = prefix + "." + sortedProperty;
+ }
+ String sortReplace = sortedProperty + jsonPathKey(sortReplaceArray).append("->>'")
+ .append(keys[lastIndex]).append("'");
+ orders.add(Sort.Order.by(sortReplace).with(order.getDirection()));
+ } else {
+ orders.add(order);
+ }
+ }
+ return Sort.by(orders);
+ }
+
+ public static ParamSql queryJson(Map params, String prefix) {
if (ObjectUtils.isEmpty(params)) {
- return ParamSql.EMPTY;
+ return ParamSql.of(new StringJoiner(" AND "), Maps.newHashMap());
}
Map bindParams = Maps.newHashMap();
StringJoiner whereSql = new StringJoiner(" and ");
for (Map.Entry entry : params.entrySet()) {
String[] keys = StringUtils.delimitedListToStringArray(entry.getKey(), ".");
- Map.Entry exps = jsonPathKeyAndParamName(keys);
+ Map.Entry exps = jsonPathKeyAndParamName(keys, prefix);
whereSql.add(exps.getValue());
bindParams.put(exps.getKey(), entry.getValue());
}
return ParamSql.of(whereSql, bindParams);
}
- private static Map.Entry jsonPathKeyAndParamName(String[] keys) {
- String lastKey = keys[keys.length - 1];
- String colum = keys[0];
-
- Map.Entry exps = exitsKeyWords(lastKey);
-
- StringBuilder jsonPath = new StringBuilder(colum);
-
- String[] joinKeys = Arrays.copyOfRange(keys, 1, keys.length - 1);
- for (String path : joinKeys) {
- var capath = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, path);
- jsonPath.append("->'").append(capath).append("'");
+ private static Map.Entry jsonPathKeyAndParamName(String[] keys, String prefix) {
+ int lastIndex = keys.length - 1;
+ String column = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, keys[0]);
+ if (StringUtils.hasLength(prefix)) {
+ column = prefix + "." + keys[0];
}
+ StringBuilder jsonPath = new StringBuilder(column);
+ String[] joinKeys = Arrays.copyOfRange(keys, 1, lastIndex);
+ jsonPath.append(jsonPathKey(joinKeys));
+ String lastKey = keys[lastIndex];
+ Map.Entry exps = exitsKeyWords(lastKey);
String key = lastKey.substring(0, lastKey.length() - exps.getKey().length());
jsonPath.append("->>'").append(key).append("' ");
+
String paramName = StringUtils.arrayToDelimitedString(keys, "_");
if (!ObjectUtils.isEmpty(exps)) {
jsonPath.append(exps.getValue()).append(" :").append(paramName);
} else {
jsonPath.append("=").append(" :").append(paramName);
}
+
return Map.entry(paramName, jsonPath.toString());
}
+ private static StringBuilder jsonPathKey(String[] joinKeys) {
+ StringBuilder jsonPath = new StringBuilder();
+ for (String path : joinKeys) {
+ jsonPath.append("->'").append(path).append("'");
+ }
+ return jsonPath;
+ }
+
private static Map.Entry exitsKeyWords(String inputStr) {
Set> entries = KEYWORDS.entrySet().stream()
.filter(entry -> StringUtils.endsWithIgnoreCase(inputStr, entry.getKey()))
diff --git a/boot/platform/src/main/java/com/platform/boot/commons/utils/CriteriaUtils.java b/boot/platform/src/main/java/com/platform/boot/commons/utils/CriteriaUtils.java
index a2fa92c2..b2076511 100644
--- a/boot/platform/src/main/java/com/platform/boot/commons/utils/CriteriaUtils.java
+++ b/boot/platform/src/main/java/com/platform/boot/commons/utils/CriteriaUtils.java
@@ -3,6 +3,7 @@
import com.google.common.base.CaseFormat;
import com.google.common.collect.Maps;
import com.platform.boot.commons.query.ParamSql;
+import com.platform.boot.commons.query.QueryJson;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.relational.core.query.Criteria;
@@ -54,15 +55,17 @@ public static String applySort(Sort sort, String prefix) {
if (sort == null || sort.isUnsorted()) {
return "";
}
+ sort = QueryJson.sortJson(sort, prefix);
StringJoiner sortSql = new StringJoiner(", ");
- sort.iterator().forEachRemaining((o) -> {
- String sortedPropertyName = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, o.getProperty());
- String sortedProperty = o.isIgnoreCase() ? "lower(" + sortedPropertyName + ")" : sortedPropertyName;
+ for (Sort.Order order : sort) {
+ String sortedPropertyName = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, order.getProperty());
+ String sortedProperty = order.isIgnoreCase() ? "lower(" + sortedPropertyName + ")" : sortedPropertyName;
if (StringUtils.hasLength(prefix)) {
sortedProperty = prefix + "." + sortedProperty;
}
- sortSql.add(sortedProperty + (o.isAscending() ? " asc" : " desc"));
- });
+ sortSql.add(sortedProperty + (order.isAscending() ? " asc" : " desc"));
+ }
+
return " order by " + sortSql;
}
@@ -74,20 +77,38 @@ public static String applySort(Sort sort, String prefix) {
* @param prefix the prefix for the SQL clause
* @return the generated WHERE SQL clause
*/
+ @SuppressWarnings("unchecked")
public static ParamSql buildParamSql(Object object, Collection skipKeys, String prefix) {
Map objectMap = BeanUtils.beanToMap(object, false, true);
if (ObjectUtils.isEmpty(objectMap)) {
- return ParamSql.EMPTY;
+ return ParamSql.of(new StringJoiner(" AND "), Maps.newHashMap());
+ }
+ ParamSql jsonParamSql = QueryJson.queryJson((Map) objectMap.get("query"), prefix);
+ Map params = jsonParamSql.params();
+ StringJoiner sql = jsonParamSql.sql();
+
+ if (!ObjectUtils.isEmpty(objectMap.get("securityCode"))) {
+ String key = "tenant_code";
+ if (StringUtils.hasLength(prefix)) {
+ key = prefix + "." + key;
+ }
+ sql.add(key + " like :securityCode");
+ params.put("securityCode", objectMap.get("securityCode"));
}
Set removeKeys = new HashSet<>(SKIP_CRITERIA_KEYS);
+ removeKeys.add("query");
+ removeKeys.add("securityCode");
if (!ObjectUtils.isEmpty(skipKeys)) {
removeKeys.addAll(skipKeys);
}
objectMap = Maps.filterKeys(objectMap, key -> !removeKeys.contains(key));
- return buildParamSql(objectMap, prefix);
+ ParamSql entityParamSql = buildParamSql(objectMap, prefix);
+ params.putAll(entityParamSql.params());
+ sql.merge(entityParamSql.sql());
+ return ParamSql.of(sql, params);
}
/**
@@ -100,20 +121,20 @@ public static ParamSql buildParamSql(Object object, Collection skipKeys,
public static ParamSql buildParamSql(Map objectMap, String prefix) {
StringJoiner whereSql = new StringJoiner(" and ");
for (Map.Entry entry : objectMap.entrySet()) {
- String key = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, entry.getKey());
+ String column = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, entry.getKey());
if (StringUtils.hasLength(prefix)) {
- key = prefix + "." + key;
+ column = prefix + "." + column;
}
Object value = entry.getValue();
String paramName = ":" + entry.getKey();
if (value instanceof String) {
- whereSql.add(key + " like " + paramName);
+ whereSql.add(column + " like " + paramName);
} else if (value instanceof Collection>) {
- whereSql.add(key + " in :" + paramName);
+ whereSql.add(column + " in :" + paramName);
} else {
- whereSql.add(key + " = " + paramName);
+ whereSql.add(column + " = " + paramName);
}
}
return ParamSql.of(whereSql, objectMap);
diff --git a/boot/platform/src/main/java/com/platform/boot/security/SecurityController.java b/boot/platform/src/main/java/com/platform/boot/security/SecurityController.java
index 369ff1b6..5d87fa4d 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/SecurityController.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/SecurityController.java
@@ -26,7 +26,6 @@
public class SecurityController {
private final SecurityManager securityManager;
-
private final PasswordEncoder passwordEncoder;
private final ServerOAuth2AuthorizedClientRepository clientRepository;
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantRequest.java b/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantRequest.java
index 92d68c2c..13e98e76 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantRequest.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantRequest.java
@@ -1,15 +1,15 @@
package com.platform.boot.security.core.tenant;
+import com.platform.boot.commons.query.ParamSql;
import com.platform.boot.commons.utils.BeanUtils;
import com.platform.boot.commons.utils.CriteriaUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import org.springframework.data.relational.core.query.Criteria;
-import org.springframework.util.StringUtils;
import java.io.Serializable;
-import java.util.Set;
+import java.util.List;
+import java.util.Map;
/**
* @author Alex bob
@@ -19,6 +19,8 @@
@ToString(callSuper = true)
public class TenantRequest extends Tenant implements Serializable {
+ private Map query;
+
private String securityCode;
public TenantRequest securityCode(String securityCode) {
@@ -30,14 +32,7 @@ public Tenant toTenant() {
return BeanUtils.copyProperties(this, Tenant.class);
}
- public Criteria toCriteria() {
-
- Criteria criteria = CriteriaUtils.build(this, Set.of("securityCode"));
-
- if (StringUtils.hasLength(this.securityCode)) {
- criteria = criteria.and("code").like(this.securityCode + "%");
- }
-
- return criteria;
+ public ParamSql bindParamSql() {
+ return CriteriaUtils.buildParamSql(this, List.of(), null);
}
}
\ No newline at end of file
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantsService.java b/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantsService.java
index e073baa4..50778545 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantsService.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/tenant/TenantsService.java
@@ -1,14 +1,15 @@
package com.platform.boot.security.core.tenant;
import com.platform.boot.commons.base.AbstractDatabase;
+import com.platform.boot.commons.query.ParamSql;
import com.platform.boot.commons.utils.BeanUtils;
import com.platform.boot.commons.utils.ContextUtils;
+import com.platform.boot.commons.utils.CriteriaUtils;
import com.platform.boot.security.core.tenant.member.TenantMembersRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
-import org.springframework.data.relational.core.query.Query;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -25,8 +26,9 @@ public class TenantsService extends AbstractDatabase {
public Flux search(TenantRequest request, Pageable pageable) {
var cacheKey = ContextUtils.cacheKey(request, pageable);
- var query = Query.query(request.toCriteria()).with(pageable);
- return super.queryWithCache(cacheKey, query, Tenant.class)
+ ParamSql paramSql = request.bindParamSql();
+ String query = "select * from se_tenants" + paramSql.whereSql() + CriteriaUtils.applyPage(pageable);
+ return super.queryWithCache(cacheKey, query, paramSql.params(), Tenant.class)
.flatMap(ContextUtils::serializeUserAuditor);
}
@@ -34,8 +36,9 @@ public Mono> page(TenantRequest request, Pageable pageable) {
var tenantsMono = this.search(request, pageable).collectList();
var cacheKey = ContextUtils.cacheKey(request);
- Query query = Query.query(request.toCriteria());
- var countMono = this.countWithCache(cacheKey, query, Tenant.class);
+ ParamSql paramSql = request.bindParamSql();
+ String query = "select count(*) from se_tenants" + paramSql.whereSql() + CriteriaUtils.applyPage(pageable);
+ var countMono = this.countWithCache(cacheKey, query, paramSql.params());
return Mono.zip(tenantsMono, countMono)
.map(tuple2 -> new PageImpl<>(tuple2.getT1(), pageable, tuple2.getT2()));
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/user/User.java b/boot/platform/src/main/java/com/platform/boot/security/core/user/User.java
index 92f9a2e7..61006cf2 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/user/User.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/user/User.java
@@ -25,6 +25,9 @@ public class User implements BaseEntity {
@NotBlank(message = "user code [code] cannot be empty!", groups = Update.class)
private String code;
+ @NotBlank(message = "Tenant [tenantCode] not be empty!")
+ private String tenantCode;
+
@NotBlank(message = "Login username [username] cannot be empty!")
@Pattern(regexp = "^[a-zA-Z0-9_-]{6,16}$", message = "Login username [username] must be " +
"6 to 16 characters (letters, numbers, _, -)!")
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/user/UserRequest.java b/boot/platform/src/main/java/com/platform/boot/security/core/user/UserRequest.java
index a7e5e2c5..17f0228f 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/user/UserRequest.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/user/UserRequest.java
@@ -1,7 +1,6 @@
package com.platform.boot.security.core.user;
import com.platform.boot.commons.query.ParamSql;
-import com.platform.boot.commons.query.QueryJson;
import com.platform.boot.commons.utils.BeanUtils;
import com.platform.boot.commons.utils.CriteriaUtils;
import lombok.Data;
@@ -22,17 +21,17 @@ public class UserRequest extends User {
private Map query;
+ private String securityCode;
+
+ public UserRequest securityCode(String securityCode) {
+ this.setSecurityCode(securityCode);
+ return this;
+ }
public User toUser() {
return BeanUtils.copyProperties(this, User.class);
}
public ParamSql bindParamSql() {
- ParamSql rescues = CriteriaUtils.buildParamSql(this, List.of("query"), null);
- var params = rescues.params();
- var sql = rescues.sql();
- ParamSql jsonParamSql = QueryJson.queryJson(this.getQuery());
- params.putAll(jsonParamSql.params());
- sql.merge(jsonParamSql.sql());
- return ParamSql.of(sql, params);
+ return CriteriaUtils.buildParamSql(this, List.of(), null);
}
}
\ No newline at end of file
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersController.java b/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersController.java
index 991b3425..912b1647 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersController.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersController.java
@@ -1,5 +1,6 @@
package com.platform.boot.security.core.user;
+import com.platform.boot.commons.utils.ContextUtils;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
@@ -23,12 +24,14 @@ public class UsersController {
@GetMapping("search")
public Flux search(UserRequest request, Pageable pageable) {
- return this.usersService.search(request, pageable);
+ return ContextUtils.securityDetails().flatMapMany(securityDetails ->
+ this.usersService.search(request.securityCode(securityDetails.getTenantCode()), pageable));
}
@GetMapping("page")
public Mono> page(UserRequest request, Pageable pageable) {
- return this.usersService.page(request, pageable);
+ return ContextUtils.securityDetails().flatMap(securityDetails ->
+ this.usersService.page(request.securityCode(securityDetails.getTenantCode()), pageable));
}
@PostMapping("add")
diff --git a/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersService.java b/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersService.java
index 1dd965fb..4a85dc0f 100644
--- a/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersService.java
+++ b/boot/platform/src/main/java/com/platform/boot/security/core/user/UsersService.java
@@ -3,7 +3,6 @@
import com.platform.boot.commons.base.AbstractDatabase;
import com.platform.boot.commons.exception.RestServerException;
import com.platform.boot.commons.query.ParamSql;
-import com.platform.boot.commons.query.QueryJson;
import com.platform.boot.commons.utils.BeanUtils;
import com.platform.boot.commons.utils.ContextUtils;
import com.platform.boot.commons.utils.CriteriaUtils;
@@ -39,7 +38,7 @@ public Mono> page(UserRequest request, Pageable pageable) {
var searchMono = this.search(request, pageable).collectList();
var cacheKey = ContextUtils.cacheKey(request);
- ParamSql paramSql = QueryJson.queryJson(request.getQuery());
+ ParamSql paramSql = request.bindParamSql();
String query = "select count(*) from se_users" + paramSql.whereSql();
var countMono = super.countWithCache(cacheKey, query, paramSql.params());
diff --git a/boot/platform/src/main/resources/data-postgres.sql b/boot/platform/src/main/resources/data-postgres.sql
index b1d33cd7..b251d032 100644
--- a/boot/platform/src/main/resources/data-postgres.sql
+++ b/boot/platform/src/main/resources/data-postgres.sql
@@ -1,12 +1,13 @@
-insert into se_users(code, username, password, name, creator, updater, extend)
-values ('U1000', 'admin', '{pbkdf2}7d8a68bc5d507bd19bc153ff10bcdef66f5a5f3d0c1ab2438630e50b5c65894bccc2c7e4404c5afa',
- '系统超级管理员', 'U1000', 'U1000', '{}');
+insert into se_users(code, tenant_code, username, password, name, creator, updater)
+values ('U1000', 'T1000', 'admin',
+ '{pbkdf2}7d8a68bc5d507bd19bc153ff10bcdef66f5a5f3d0c1ab2438630e50b5c65894bccc2c7e4404c5afa',
+ '系统超级管理员', 'U1000', 'U1000');
insert into se_authorities(code, user_code, authority, creator, updater)
values ('UA1000', 'U1000', 'ROLE_ADMINISTRATORS', 'U1000', 'U1000');
-insert into se_groups(code, name, creator, updater)
-values ('G1000', '默认组', 'U1000', 'U1000');
+insert into se_groups(code, tenant_code, name, creator, updater)
+values ('G1000', 'T1000', '默认组', 'U1000', 'U1000');
insert into se_group_members(code, group_code, user_code, creator, updater)
values ('GM1000', 'G1000', 'U1000', 'U1000', 'U1000');
@@ -15,21 +16,24 @@ insert into se_group_authorities(code, group_code, authority, creator, updater)
values ('GA1000', 'G1000', 'ROLE_GROUPS_ADMINISTRATORS', 'U1000', 'U1000');
insert into se_tenants(code, name, creator, updater)
-values ('T610115', '默认租户', 'U1000', 'U1000');
+values ('T1000', '默认租户', 'U1000', 'U1000');
insert into se_tenant_members(code, tenant_code, user_code, creator, updater)
-values ('TM1000', 'T610115', 'U1000', 'U1000', 'U1000');
+values ('TM1000', 'T1000', 'U1000', 'U1000', 'U1000');
/********Init menus****************/
insert into se_menus(code, type, authority, name, path, creator, updater, extend)
values ('M1000', 'FOLDER', 'ROLE_FOLDER_SYSTEM', '系统管理', '', 'U1000', 'U1000', '{
- "icons": "settings"}');
+ "icons": "settings"
+}');
insert into se_menus(code, pcode, type, authority, name, path, creator, updater, extend)
values ('M1001', 'M1000', 'MENU', 'ROLE_MENU_SYSTEM_USERS', '用户管理', '/system/users', 'U1000', 'U1000', '{
- "icons": "lock"}');
+ "icons": "lock"
+}');
insert into se_menus(code, pcode, type, authority, name, path, creator, updater, extend)
values ('M1002', 'M1000', 'MENU', 'ROLE_MENU_SYSTEM_GROUPS', '角色管理', '/system/groups', 'U1000', 'U1000', '{
- "icons": "users"}');
+ "icons": "users"
+}');
insert into se_menus(code, pcode, type, authority, name, path, creator, updater, extend)
values ('M1003', 'M1000', 'MENU', 'ROLE_MENU_SYSTEM_MENUS', '菜单管理', '/system/menus', 'U1000', 'U1000', '{
"icons": "menu-2"
diff --git a/boot/platform/src/main/resources/schema-postgres.sql b/boot/platform/src/main/resources/schema-postgres.sql
index cab7f6d0..62bca11b 100644
--- a/boot/platform/src/main/resources/schema-postgres.sql
+++ b/boot/platform/src/main/resources/schema-postgres.sql
@@ -19,7 +19,7 @@ create table if not exists se_users
(
id serial8 primary key,
code varchar(64) not null unique,
- tenant_code varchar(64) not null default '0',
+ tenant_code varchar(64) not null default 'T1000',
username varchar(256) not null unique,
password text not null,
disabled boolean not null default false,
@@ -61,7 +61,7 @@ create table if not exists se_groups
(
id serial8 primary key,
code varchar(64) not null unique,
- tenant_code varchar(64) not null default '0',
+ tenant_code varchar(64) not null default 'T1000',
name varchar(512) not null,
extend jsonb,
creator varchar(64),
@@ -142,7 +142,7 @@ create table if not exists se_menus
id serial8 primary key,
code varchar(64) not null unique,
pcode varchar(64) not null default '0',
- tenant_code varchar(64) not null default '0',
+ tenant_code varchar(64) not null default 'T1000',
type varchar(20) not null default 'MENU',
authority varchar(512) not null unique,
name varchar(512) not null,
@@ -163,7 +163,7 @@ create table if not exists se_loggers
(
id serial8 primary key,
code varchar(64) not null unique,
- tenant_code varchar(64) not null default '0',
+ tenant_code varchar(64) not null default 'T1000',
prefix varchar(64),
operator varchar(64),
status varchar(64),