提交 3db465e6 作者: 方治民

feat: postgres 适配、依赖升级、修复新增/更新权限没有写入 meta 字段问题

上级 cac2d7bb
...@@ -13,7 +13,7 @@ dependencies { ...@@ -13,7 +13,7 @@ dependencies {
runtimeOnly 'com.h2database:h2' runtimeOnly 'com.h2database:h2'
// 💬 Prod/Dev Env // 💬 Prod/Dev Env
runtimeOnly 'mysql:mysql-connector-java' runtimeOnly 'mysql:mysql-connector-java'
// runtimeOnly 'org.postgresql:postgresql' runtimeOnly 'org.postgresql:postgresql'
// 本地依赖 // 本地依赖
implementation fileTree(dir: project.rootDir.getPath() + '\\libs', includes: ['*jar']) implementation fileTree(dir: project.rootDir.getPath() + '\\libs', includes: ['*jar'])
......
# 环境变量
env:
host: 192.168.0.156
spring:
datasource:
url: jdbc:postgresql://${env.host}:5432/basic_app
username: admin
password: 123456
jpa:
database-platform: org.hibernate.dialect.PostgreSQL10Dialect
open-in-view: true
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
format_sql: true
redis:
database: 5
host: ${env.host}
port: 6379
password: 123456
# Optional: MyBatis Plus
mybatis-plus:
global-config:
banner: false
# knife4j
knife4j:
enable: true
basic:
enable: false
username: admin
password: 123456
setting:
enableOpenApi: true
enableDebug: true
# minio
minio:
access-key: minioadmin
secret-key: minioadmin
end-point: "http://${env.host}:18100"
bucket: basic
domain: ${minio.endpoint}/${minio.bucket}
logging:
level:
# sql bind parameter
org.hibernate.type.descriptor.sql.BasicBinder: trace
...@@ -13,7 +13,7 @@ spring: ...@@ -13,7 +13,7 @@ spring:
name: "basic-api-app" name: "basic-api-app"
profiles: profiles:
include: auth, conf-patch include: auth, conf-patch
active: beta active: dev-postgresql
# DEBUG # DEBUG
debug: false debug: false
...@@ -33,12 +33,7 @@ import org.hibernate.annotations.TypeDef; ...@@ -33,12 +33,7 @@ import org.hibernate.annotations.TypeDef;
@TypeDef(name = "json", typeClass = JsonType.class) @TypeDef(name = "json", typeClass = JsonType.class)
@Table( @Table(
name = "SYS_PERMISSION", name = "SYS_PERMISSION",
indexes = { indexes = { @Index(columnList = "type"), @Index(columnList = "pid"), @Index(columnList = "tree") }
@Index(columnList = "type"),
@Index(columnList = "pid"),
@Index(columnList = "tree"),
@Index(columnList = "uid", unique = true),
}
) )
@Comment("系统权限") @Comment("系统权限")
public class Permission extends BasicEntity implements Serializable { public class Permission extends BasicEntity implements Serializable {
......
...@@ -40,7 +40,7 @@ public class Role extends BasicEntity implements Serializable { ...@@ -40,7 +40,7 @@ public class Role extends BasicEntity implements Serializable {
private static final long serialVersionUID = 910404402503275957L; private static final long serialVersionUID = 910404402503275957L;
@Comment("标识") @Comment("标识")
@Column(unique = true, nullable = false) @Column(nullable = false)
String uid; String uid;
@Comment("名称") @Comment("名称")
......
...@@ -15,6 +15,7 @@ import lombok.experimental.FieldDefaults; ...@@ -15,6 +15,7 @@ import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants; import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment; import org.hibernate.annotations.Comment;
import org.hibernate.annotations.Where;
/** /**
* 用户 * 用户
...@@ -31,17 +32,9 @@ import org.hibernate.annotations.Comment; ...@@ -31,17 +32,9 @@ import org.hibernate.annotations.Comment;
@AllArgsConstructor @AllArgsConstructor
@FieldNameConstants @FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE) @FieldDefaults(level = AccessLevel.PRIVATE)
@Where(clause = "deleted = false")
@Entity @Entity
@Table( @Table(name = "SYS_USER", indexes = { @Index(columnList = "enabled"), @Index(columnList = "deleted") })
name = "SYS_USER",
indexes = {
@Index(columnList = "mobile", unique = true),
@Index(columnList = "username", unique = true),
@Index(columnList = "email", unique = true),
@Index(columnList = "enabled"),
@Index(columnList = "deleted"),
}
)
@Comment("系统用户") @Comment("系统用户")
public class User extends BasicEntity implements Serializable { public class User extends BasicEntity implements Serializable {
...@@ -81,13 +74,13 @@ public class User extends BasicEntity implements Serializable { ...@@ -81,13 +74,13 @@ public class User extends BasicEntity implements Serializable {
@JsonIgnore @JsonIgnore
@Builder.Default @Builder.Default
@Comment("角色集合") @Comment("角色集合")
@ManyToMany(fetch = FetchType.EAGER) @ManyToMany
@JoinTable( @JoinTable(
name = "SYS_USER_ROLES", name = "SYS_USER_ROLES",
joinColumns = { @JoinColumn(name = "user_id") }, joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = { @JoinColumn(name = "role_id") } inverseJoinColumns = @JoinColumn(name = "role_id")
) )
Set<Role> roles = new HashSet<>(); Set<Role> roles = new HashSet<>(0);
@Comment("最后登录IP地址") @Comment("最后登录IP地址")
String lastLoginIp; String lastLoginIp;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package com.yiring.auth.web.permission; package com.yiring.auth.web.permission;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.yiring.auth.domain.permission.Permission; import com.yiring.auth.domain.permission.Permission;
import com.yiring.auth.domain.permission.PermissionRepository; import com.yiring.auth.domain.permission.PermissionRepository;
...@@ -61,6 +62,7 @@ public class PermissionController { ...@@ -61,6 +62,7 @@ public class PermissionController {
Permission entity = new Permission(); Permission entity = new Permission();
BeanUtils.copyProperties(param, entity); BeanUtils.copyProperties(param, entity);
entity.setTree(getTreeNode(param.getPid())); entity.setTree(getTreeNode(param.getPid()));
entity.setMeta(JSON.parseObject(param.getMeta()));
permissionRepository.saveAndFlush(entity); permissionRepository.saveAndFlush(entity);
return Result.ok(); return Result.ok();
} }
...@@ -83,6 +85,7 @@ public class PermissionController { ...@@ -83,6 +85,7 @@ public class PermissionController {
BeanUtils.copyProperties(param, entity); BeanUtils.copyProperties(param, entity);
entity.setTree(getTreeNode(param.getPid())); entity.setTree(getTreeNode(param.getPid()));
entity.setMeta(JSON.parseObject(param.getMeta()));
permissionRepository.saveAndFlush(entity); permissionRepository.saveAndFlush(entity);
return Result.ok(); return Result.ok();
} }
......
...@@ -49,10 +49,10 @@ CREATE TABLE `sys_permission` ( ...@@ -49,10 +49,10 @@ CREATE TABLE `sys_permission` (
-- ---------------------------- -- ----------------------------
-- Records of sys_permission -- Records of sys_permission
-- ---------------------------- -- ----------------------------
INSERT INTO `sys_permission` VALUES ('1515550180340928512', '2022-04-17 12:38:15.212000', '2022-04-17 12:38:15.212000', 'LAYOUT', b'1', NULL, 'ion:grid-outline', '{\"title\": \"routes.dashboard.dashboard\", \"hideChildrenInMenu\": true}', 'Dashboard', '/dashboard', 0, '/dashboard/workbench', 1, '0', 'MENU', 'Dashboard'); INSERT INTO `sys_permission` VALUES ('1515550180340928512', '2022-04-17 12:38:15.212000', '2022-04-17 12:38:15.212000', 'LAYOUT', b'1', NULL, 'ion:grid-outline', '{"title": "routes.dashboard.dashboard", "hideChildrenInMenu": true}', 'Dashboard', '/dashboard', 0, '/dashboard/workbench', 1, '0', 'MENU', 'Dashboard');
INSERT INTO `sys_permission` VALUES ('1515627442394370048', '2022-04-17 17:45:15.941000', '2022-04-17 17:45:15.941000', '/dashboard/workbench/index', b'1', b'1', NULL, '{\"title\": \"routes.dashboard.workbench\", \"hideBreadcrumb\": true, \"currentActiveMenu\": \"/dashboard\", \"hideChildrenInMenu\": true}', 'Workbench', 'workbench', '1515550180340928512', NULL, 1, '0.1515550180340928512', 'MENU', 'Workbench'); INSERT INTO `sys_permission` VALUES ('1515627442394370048', '2022-04-17 17:45:15.941000', '2022-04-17 17:45:15.941000', '/dashboard/workbench/index', b'1', b'1', NULL, '{"title": "routes.dashboard.workbench", "hideBreadcrumb": true, "currentActiveMenu": "/dashboard", "hideChildrenInMenu": true}', 'Workbench', 'workbench', '1515550180340928512', NULL, 1, '0.1515550180340928512', 'MENU', 'Workbench');
INSERT INTO `sys_permission` VALUES ('1515627944716800000', '2022-04-17 17:47:15.683000', '2022-04-17 17:47:15.683000', 'LAYOUT', b'1', NULL, 'simple-icons:about-dot-me', '{\"title\": \"routes.dashboard.about\", \"hideChildrenInMenu\": true}', 'About', '/about', 0, '/about/index', 100000, '0', 'MENU', 'About'); INSERT INTO `sys_permission` VALUES ('1515627944716800000', '2022-04-17 17:47:15.683000', '2022-04-17 17:47:15.683000', 'LAYOUT', b'1', NULL, 'simple-icons:about-dot-me', '{"title": "routes.dashboard.about", "hideChildrenInMenu": true}', 'About', '/about', 0, '/about/index', 100000, '0', 'MENU', 'About');
INSERT INTO `sys_permission` VALUES ('1515628470086930432', '2022-04-17 17:49:20.941000', '2022-04-17 17:49:20.942000', '/sys/about/index', b'1', NULL, 'simple-icons:about-dot-me', '{\"title\": \"routes.dashboard.about\", \"hideMenu\": true}', 'AboutPage', 'index', '1515627944716800000', NULL, NULL, '0.1515627944716800000', 'MENU', 'AboutPage'); INSERT INTO `sys_permission` VALUES ('1515628470086930432', '2022-04-17 17:49:20.941000', '2022-04-17 17:49:20.942000', '/sys/about/index', b'1', NULL, 'simple-icons:about-dot-me', '{"title": "routes.dashboard.about", "hideMenu": true}', 'AboutPage', 'index', '1515627944716800000', NULL, NULL, '0.1515627944716800000', 'MENU', 'AboutPage');
-- ---------------------------- -- ----------------------------
-- Table structure for sys_role -- Table structure for sys_role
......
/*
Navicat Premium Data Transfer
Source Server : 192.168.0.156_5432
Source Server Type : PostgreSQL
Source Server Version : 130003
Source Host : 192.168.0.156:5432
Source Catalog : basic_app
Source Schema : public
Target Server Type : PostgreSQL
Target Server Version : 130003
File Encoding : 65001
Date: 27/05/2022 14:09:18
*/
-- ----------------------------
-- Table structure for sys_permission
-- ----------------------------
DROP TABLE IF EXISTS "public"."sys_permission";
CREATE TABLE "public"."sys_permission" (
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"create_time" timestamp(6) NOT NULL,
"update_time" timestamp(6) NOT NULL,
"component" varchar(255) COLLATE "pg_catalog"."default",
"enable" bool,
"hidden" bool,
"icon" varchar(255) COLLATE "pg_catalog"."default",
"meta" json,
"name" varchar(255) COLLATE "pg_catalog"."default",
"path" varchar(255) COLLATE "pg_catalog"."default",
"pid" varchar(255) COLLATE "pg_catalog"."default",
"redirect" varchar(255) COLLATE "pg_catalog"."default",
"serial" int4,
"tree" varchar(255) COLLATE "pg_catalog"."default",
"type" varchar(255) COLLATE "pg_catalog"."default",
"uid" varchar(255) COLLATE "pg_catalog"."default" NOT NULL
)
;
COMMENT ON COLUMN "public"."sys_permission"."id" IS '主键';
COMMENT ON COLUMN "public"."sys_permission"."create_time" IS '创建时间';
COMMENT ON COLUMN "public"."sys_permission"."update_time" IS '最后修改时间';
COMMENT ON COLUMN "public"."sys_permission"."component" IS '组件';
COMMENT ON COLUMN "public"."sys_permission"."enable" IS '是否启用';
COMMENT ON COLUMN "public"."sys_permission"."hidden" IS '是否隐藏';
COMMENT ON COLUMN "public"."sys_permission"."icon" IS '图标';
COMMENT ON COLUMN "public"."sys_permission"."meta" IS '扩展元数据信息';
COMMENT ON COLUMN "public"."sys_permission"."name" IS '名称';
COMMENT ON COLUMN "public"."sys_permission"."path" IS '路径';
COMMENT ON COLUMN "public"."sys_permission"."pid" IS '权限父级ID';
COMMENT ON COLUMN "public"."sys_permission"."redirect" IS '重定向';
COMMENT ON COLUMN "public"."sys_permission"."serial" IS '序号';
COMMENT ON COLUMN "public"."sys_permission"."tree" IS '树节点标识';
COMMENT ON COLUMN "public"."sys_permission"."type" IS '类型(MENU: 菜单, BUTTON: 按钮)';
COMMENT ON COLUMN "public"."sys_permission"."uid" IS '标识';
COMMENT ON TABLE "public"."sys_permission" IS '系统权限';
-- ----------------------------
-- Records of sys_permission
-- ----------------------------
INSERT INTO "public"."sys_permission" VALUES ('1515627442394370048', '2022-04-17 17:45:15.941', '2022-05-17 18:48:22.001', '/dashboard/workbench/index', 't', 't', NULL, '{"title": "routes.dashboard.workbench", "hideBreadcrumb": true, "currentActiveMenu": "/dashboard", "hideChildrenInMenu": true}', 'Workbenchdddd', 'workbench', '1515550180340928512', NULL, 1, '0.1515550180340928512', 'BUTTON', 'Workbench');
INSERT INTO "public"."sys_permission" VALUES ('1515627944716800000', '2022-04-17 17:47:15.683', '2022-05-25 16:18:06.724', 'LAYOUT', 't', NULL, 'simple-icons:about-dot-me', '{"title": "routes.dashboard.about", "hideChildrenInMenu": true}', 'About', '/about', '0', NULL, 100000, '0', 'MENU', 'About');
INSERT INTO "public"."sys_permission" VALUES ('1515628470086930432', '2022-04-17 17:49:20.941', '2022-05-17 18:02:15.969', '/sys/about/index', 'f', 't', 'simple-icons:about-dot-me', '{"title": "routes.dashboard.about", "hideMenu": true}', 'AboutPage', 'index', '1515627944716800000', NULL, NULL, '0.1515627944716800000', 'BUTTON', 'AboutPage');
INSERT INTO "public"."sys_permission" VALUES ('1515550180340928512', '2022-04-17 12:38:15.212', '2022-05-24 17:50:13.742', 'LAYOUT', 't', 't', 'ion:grid-outline', '{"title": "routes.dashboard.dashboard", "hideChildrenInMenu": true}', 'Dashboard', '/dashboard', '0', '/dashboard/workbench', 1, '0', 'MENU', 'Dashboard');
-- ----------------------------
-- Table structure for sys_role
-- ----------------------------
DROP TABLE IF EXISTS "public"."sys_role";
CREATE TABLE "public"."sys_role" (
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"create_time" timestamp(6) NOT NULL,
"update_time" timestamp(6) NOT NULL,
"name" varchar(255) COLLATE "pg_catalog"."default",
"uid" varchar(255) COLLATE "pg_catalog"."default" NOT NULL
)
;
COMMENT ON COLUMN "public"."sys_role"."id" IS '主键';
COMMENT ON COLUMN "public"."sys_role"."create_time" IS '创建时间';
COMMENT ON COLUMN "public"."sys_role"."update_time" IS '最后修改时间';
COMMENT ON COLUMN "public"."sys_role"."name" IS '名称';
COMMENT ON COLUMN "public"."sys_role"."uid" IS '标识';
COMMENT ON TABLE "public"."sys_role" IS '系统角色';
-- ----------------------------
-- Records of sys_role
-- ----------------------------
INSERT INTO "public"."sys_role" VALUES ('1530064847847297024', '2022-05-27 13:54:21.623', '2022-05-27 13:54:21.624', '管理员', 'admin');
-- ----------------------------
-- Table structure for sys_role_permissions
-- ----------------------------
DROP TABLE IF EXISTS "public"."sys_role_permissions";
CREATE TABLE "public"."sys_role_permissions" (
"role_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"permissions_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL
)
;
-- ----------------------------
-- Records of sys_role_permissions
-- ----------------------------
INSERT INTO "public"."sys_role_permissions" VALUES ('1530064847847297024', '1515627442394370048');
INSERT INTO "public"."sys_role_permissions" VALUES ('1530064847847297024', '1515627944716800000');
INSERT INTO "public"."sys_role_permissions" VALUES ('1530064847847297024', '1515628470086930432');
INSERT INTO "public"."sys_role_permissions" VALUES ('1530064847847297024', '1515550180340928512');
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS "public"."sys_user";
CREATE TABLE "public"."sys_user" (
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"create_time" timestamp(6) NOT NULL,
"update_time" timestamp(6) NOT NULL,
"avatar" varchar(255) COLLATE "pg_catalog"."default",
"deleted" bool,
"email" varchar(255) COLLATE "pg_catalog"."default",
"enabled" bool,
"introduction" varchar(255) COLLATE "pg_catalog"."default",
"last_login_ip" varchar(255) COLLATE "pg_catalog"."default",
"last_login_time" timestamp(6),
"mobile" varchar(255) COLLATE "pg_catalog"."default",
"password" varchar(255) COLLATE "pg_catalog"."default",
"real_name" varchar(255) COLLATE "pg_catalog"."default",
"username" varchar(255) COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "public"."sys_user"."id" IS '主键';
COMMENT ON COLUMN "public"."sys_user"."create_time" IS '创建时间';
COMMENT ON COLUMN "public"."sys_user"."update_time" IS '最后修改时间';
COMMENT ON COLUMN "public"."sys_user"."avatar" IS '头像';
COMMENT ON COLUMN "public"."sys_user"."deleted" IS '是否删除';
COMMENT ON COLUMN "public"."sys_user"."email" IS '邮箱';
COMMENT ON COLUMN "public"."sys_user"."enabled" IS '是否启用';
COMMENT ON COLUMN "public"."sys_user"."introduction" IS '简介';
COMMENT ON COLUMN "public"."sys_user"."last_login_ip" IS '最后登录IP地址';
COMMENT ON COLUMN "public"."sys_user"."last_login_time" IS '最后登录时间';
COMMENT ON COLUMN "public"."sys_user"."mobile" IS '手机号';
COMMENT ON COLUMN "public"."sys_user"."password" IS '密码';
COMMENT ON COLUMN "public"."sys_user"."real_name" IS '真实姓名';
COMMENT ON COLUMN "public"."sys_user"."username" IS '用户名';
COMMENT ON TABLE "public"."sys_user" IS '系统用户';
-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO "public"."sys_user" VALUES ('1530062713596678144', '2022-05-27 13:45:52.805', '2022-05-27 13:45:57.318', 'https://s1.ax1x.com/2022/03/30/qggJH0.jpg', 'f', NULL, 't', '平台管理员', '127.0.0.1', '2022-05-27 13:45:57.309', '13012345678', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', '管理员', 'admin');
-- ----------------------------
-- Table structure for sys_user_roles
-- ----------------------------
DROP TABLE IF EXISTS "public"."sys_user_roles";
CREATE TABLE "public"."sys_user_roles" (
"role_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"user_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL
)
;
-- ----------------------------
-- Records of sys_user_roles
-- ----------------------------
INSERT INTO "public"."sys_user_roles" VALUES ('1530064847847297024', '1530062713596678144');
-- ----------------------------
-- Table structure for test_table
-- ----------------------------
DROP TABLE IF EXISTS "public"."test_table";
CREATE TABLE "public"."test_table" (
"id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"age" int4,
"name" varchar(255) COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "public"."test_table"."id" IS '主键';
COMMENT ON COLUMN "public"."test_table"."age" IS '年龄';
COMMENT ON COLUMN "public"."test_table"."name" IS '姓名';
COMMENT ON TABLE "public"."test_table" IS '测试表';
-- ----------------------------
-- Records of test_table
-- ----------------------------
-- ----------------------------
-- Indexes structure for table sys_permission
-- ----------------------------
CREATE INDEX "idxcj5qpen847f3vkcgy7lsmqyug" ON "public"."sys_permission" USING btree (
"pid" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idxckpwmqmt2tsu8fyefxpgwypmr" ON "public"."sys_permission" USING btree (
"tree" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idxfgtwjg4pmylcko0v6ate29j2x" ON "public"."sys_permission" USING btree (
"type" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
-- ----------------------------
-- Uniques structure for table sys_permission
-- ----------------------------
ALTER TABLE "public"."sys_permission" ADD CONSTRAINT "uk_n5idwm5pmlgfwvau5vrwf65ai" UNIQUE ("uid");
-- ----------------------------
-- Primary Key structure for table sys_permission
-- ----------------------------
ALTER TABLE "public"."sys_permission" ADD CONSTRAINT "sys_permission_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Uniques structure for table sys_role
-- ----------------------------
ALTER TABLE "public"."sys_role" ADD CONSTRAINT "uko928jdlxprqf5qyw6rvor4lse" UNIQUE ("uid");
-- ----------------------------
-- Primary Key structure for table sys_role
-- ----------------------------
ALTER TABLE "public"."sys_role" ADD CONSTRAINT "sys_role_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table sys_role_permissions
-- ----------------------------
ALTER TABLE "public"."sys_role_permissions" ADD CONSTRAINT "sys_role_permissions_pkey" PRIMARY KEY ("role_id", "permissions_id");
-- ----------------------------
-- Indexes structure for table sys_user
-- ----------------------------
CREATE INDEX "idxeyi36w6acltgl5j4ujw0wlsyt" ON "public"."sys_user" USING btree (
"enabled" "pg_catalog"."bool_ops" ASC NULLS LAST
);
CREATE INDEX "idxner7sjf2kjerehlptwipdlst9" ON "public"."sys_user" USING btree (
"deleted" "pg_catalog"."bool_ops" ASC NULLS LAST
);
-- ----------------------------
-- Uniques structure for table sys_user
-- ----------------------------
ALTER TABLE "public"."sys_user" ADD CONSTRAINT "uk_ahtq5ew3v0kt1n7hf1sgp7p8l" UNIQUE ("email");
ALTER TABLE "public"."sys_user" ADD CONSTRAINT "uk_cvv4commjv5h4bai0h4vuqvkd" UNIQUE ("mobile");
ALTER TABLE "public"."sys_user" ADD CONSTRAINT "uk_51bvuyvihefoh4kp5syh2jpi4" UNIQUE ("username");
-- ----------------------------
-- Primary Key structure for table sys_user
-- ----------------------------
ALTER TABLE "public"."sys_user" ADD CONSTRAINT "sys_user_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table sys_user_roles
-- ----------------------------
ALTER TABLE "public"."sys_user_roles" ADD CONSTRAINT "sys_user_roles_pkey" PRIMARY KEY ("role_id", "user_id");
-- ----------------------------
-- Primary Key structure for table test_table
-- ----------------------------
ALTER TABLE "public"."test_table" ADD CONSTRAINT "test_table_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Foreign Keys structure for table sys_role_permissions
-- ----------------------------
ALTER TABLE "public"."sys_role_permissions" ADD CONSTRAINT "fkaa4k4qhr2qdj6br8p5nrb2lhb" FOREIGN KEY ("role_id") REFERENCES "public"."sys_role" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE "public"."sys_role_permissions" ADD CONSTRAINT "fkrg8k5oymm622ik067yjss31co" FOREIGN KEY ("permissions_id") REFERENCES "public"."sys_permission" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ----------------------------
-- Foreign Keys structure for table sys_user_roles
-- ----------------------------
ALTER TABLE "public"."sys_user_roles" ADD CONSTRAINT "fkp2804vh0ea810pitigxq5n6pn" FOREIGN KEY ("user_id") REFERENCES "public"."sys_user" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE "public"."sys_user_roles" ADD CONSTRAINT "fkqwiuml6b7mjmk48u5b9hmk853" FOREIGN KEY ("role_id") REFERENCES "public"."sys_role" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
...@@ -167,7 +167,7 @@ public record Minio(MinioConfig config, MinioClient client) { ...@@ -167,7 +167,7 @@ public record Minio(MinioConfig config, MinioClient client) {
public ObjectWriteResponse putBusinessObject(Path path, String object) throws Exception { public ObjectWriteResponse putBusinessObject(Path path, String object) throws Exception {
UploadObjectArgs args = UploadObjectArgs UploadObjectArgs args = UploadObjectArgs
.builder() .builder()
// 固定储存桶位置 // 固定储存桶位置
.bucket(BUSINESS_BUCKET) .bucket(BUSINESS_BUCKET)
.filename(path.toString()) .filename(path.toString())
.object(object) .object(object)
......
buildscript { plugins {
repositories { id 'java'
maven { url "https://plugins.gradle.org/m2/" } // https://start.spring.io
} id 'org.springframework.boot' version '2.6.8'
ext { // https://plugins.gradle.org/plugin/io.spring.dependency-management
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
// https://plugins.gradle.org/plugin/com.diffplug.spotless
id "com.diffplug.spotless" version "6.7.0"
// https://plugins.gradle.org/plugin/com.github.spotbugs
// id "com.github.spotbugs" version "5.0.7"
}
ext {
// Spotless
// https://www.npmjs.com/package/prettier
prettierVersion = '2.6.2'
// https://www.npmjs.com/package/prettier-plugin-java
prettierJavaVersion = '1.6.2'
// https://start.spring.io/
springCloudVersion = '2021.0.3'
// https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter // https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter
knife4jVersion = '2.0.9' knife4jVersion = '2.0.9'
// https://mvnrepository.com/artifact/io.swagger/swagger-annotations // https://mvnrepository.com/artifact/io.swagger/swagger-annotations
swaggerAnnotationsVersion = '1.6.6' swaggerAnnotationsVersion = '1.6.6'
// https://mvnrepository.com/artifact/cn.dev33/sa-token-spring-boot-starter // https://mvnrepository.com/artifact/cn.dev33/sa-token-spring-boot-starter
saTokenVersion = '1.29.1.trial' saTokenVersion = '1.30.0'
// https://mvnrepository.com/artifact/cn.hutool/hutool-all // https://mvnrepository.com/artifact/cn.hutool/hutool-all
hutoolVersion = '5.8.0' hutoolVersion = '5.8.2'
// https://mvnrepository.com/artifact/com.alibaba/fastjson // https://mvnrepository.com/artifact/com.alibaba/fastjson
fastJsonVersion = '2.0.2' fastJsonVersion = '2.0.6'
// https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core // https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core
xxlJobVersion = '2.3.0' xxlJobVersion = '2.3.1'
// https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp // https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
okhttpVersion = '4.9.3' okhttpVersion = '4.9.3'
// https://mvnrepository.com/artifact/io.minio/minio // https://mvnrepository.com/artifact/io.minio/minio
minioVersion = '8.4.0' minioVersion = '8.4.1'
// https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-55 // https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-55
hibernateTypesVersion = '2.16.2' hibernateTypesVersion = '2.16.2'
// https://mvnrepository.com/artifact/org.hibernate/hibernate-spatial // https://mvnrepository.com/artifact/org.hibernate/hibernate-spatial
hibernateSpatialVersion = '5.6.8.Final' hibernateSpatialVersion = '5.6.9.Final'
// https://mvnrepository.com/artifact/org.locationtech.jts/jts-core // https://mvnrepository.com/artifact/org.locationtech.jts/jts-core
jtsVersion = '1.18.2' jtsVersion = '1.18.2'
// https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter // https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter
mybatisPlusVersion = '3.5.1' mybatisPlusVersion = '3.5.2'
// https://mvnrepository.com/artifact/com.github.liaochong/myexcel // https://mvnrepository.com/artifact/com.github.liaochong/myexcel
myexcelVersion = '4.2.0' myexcelVersion = '4.2.0'
}
}
plugins {
id 'java'
id 'org.springframework.boot' version '2.6.7'
// https://plugins.gradle.org/plugin/io.spring.dependency-management
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
// https://plugins.gradle.org/plugin/com.diffplug.spotless
id "com.diffplug.spotless" version "6.5.2"
// https://plugins.gradle.org/plugin/com.github.spotbugs
// id "com.github.spotbugs" version "5.0.6"
} }
allprojects { allprojects {
...@@ -76,6 +81,12 @@ subprojects { ...@@ -76,6 +81,12 @@ subprojects {
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
} }
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
[compileJava,compileTestJava,javadoc]*.options*.encoding ='UTF-8' [compileJava,compileTestJava,javadoc]*.options*.encoding ='UTF-8'
tasks.withType(JavaCompile) { tasks.withType(JavaCompile) {
...@@ -86,7 +97,7 @@ subprojects { ...@@ -86,7 +97,7 @@ subprojects {
enabled = false enabled = false
} }
test { tasks.named('test') {
useJUnitPlatform() useJUnitPlatform()
} }
...@@ -110,9 +121,7 @@ subprojects { ...@@ -110,9 +121,7 @@ subprojects {
importOrder() importOrder()
removeUnusedImports() removeUnusedImports()
licenseHeader '/* (C) $YEAR YiRing, Inc. */' licenseHeader '/* (C) $YEAR YiRing, Inc. */'
// https://www.npmjs.com/package/prettier prettier(['prettier': prettierVersion, 'prettier-plugin-java': prettierJavaVersion]).config([
// https://www.npmjs.com/package/prettier-plugin-java
prettier(['prettier': '2.6.2', 'prettier-plugin-java': '1.6.1']).config([
'parser' : 'java', 'parser' : 'java',
'tabWidth' : 4, 'tabWidth' : 4,
'printWidth': 120, 'printWidth': 120,
...@@ -123,6 +132,7 @@ subprojects { ...@@ -123,6 +132,7 @@ subprojects {
} }
task hooks() { task hooks() {
// fix: CI/CD
try { try {
// GitHook pre-commit (spotless, spotbugs) // GitHook pre-commit (spotless, spotbugs)
def hook = new File("$rootProject.projectDir/.git/hooks/pre-commit") def hook = new File("$rootProject.projectDir/.git/hooks/pre-commit")
...@@ -139,7 +149,6 @@ task hooks() { ...@@ -139,7 +149,6 @@ task hooks() {
gradle.getTaskGraph().whenReady { gradle.getTaskGraph().whenReady {
def skipHooks = gradle.startParameter.getSystemPropertiesArgs().containsKey('skip-hooks') def skipHooks = gradle.startParameter.getSystemPropertiesArgs().containsKey('skip-hooks')
printf("skip-hooks: %s", skipHooks)
if (!skipHooks) { if (!skipHooks) {
hooks hooks
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论