初始化项目

This commit is contained in:
fangshunjian
2024-06-21 11:00:58 +08:00
commit 0f9fff2f41
58 changed files with 4445 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
magic-api:
web: /magic/web # UI请求的界面以及UI服务地址
resource: #配置存储方式
type: database # 配置存储在数据库中
tableName: magic_api_file # 数据库中的表名
# datasource: magic #指定数据源(单数据源时无需配置,多数据源时默认使用主数据源,如果存在其他数据源中需要指定。)
# prefix: /magic-api # key前缀
readonly: false # 是否是只读模式
prefix: / # 接口前缀,可以不配置
auto-import-module: db,http,log # 自动导入的模块
auto-import-package: java.lang.*,java.util.*,net.geedge.digitalhorizon.common.util.T #自动导包
allow-override: false #禁止覆盖应用接口
sql-column-case: camel #启用驼峰命名转换
editor-config: classpath:./static/magic-editor.js #编辑器配置
support-cross-domain: true # 跨域支持,默认开启
# secret-key: 123456789 # 远程推送时的秘钥,未配置则不开启推送
push-path: /_magic-api-sync #远程推送的路径,默认为/_magic-api-sync
show-sql: true #配置打印SQL
compile-cache-size: 500 #配置编译缓存容量
persistence-response-body: true #是否持久化保存ResponseBody
date-pattern: # 配置请求参数支持的日期格式
- yyyy-MM-dd
- yyyy-MM-dd HH:mm:ss
- yyyyMMddHHmmss
- yyyyMMdd
response: |- #配置JSON格式格式为magic-script中的表达式
{
code: code,
message: message,
data,
timestamp,
requestTime,
executeTime,
}
response-code:
success: 200 #执行成功的code值
invalid: 400 #参数验证未通过的code值
exception: 500 #执行出现异常的code值
banner: false # 打印banner
thread-pool-executor-size: 8 # async语句的线程池大小
throw-exception: false #执行出错时是否抛出异常
backup: #备份相关配置
enable: true #是否启用
max-history: -1 #备份保留天数,-1为永久保留
# datasource: magic #指定数据源(单数据源时无需配置,多数据源时默认使用主数据源,如果存在其他数据源中需要指定。)
table-name: magic_api_backup #使用数据库存储备份时的表名
crud: # CRUD相关配置
logic-delete-column: deleted #逻辑删除列
logic-delete-value: 1 #逻辑删除值
cache: # 缓存相关配置
capacity: 10000 #缓存容量
ttl: -1 # 永不过期
enable: true # 启用缓存
page:
size: size # 页大小的参数名称
page: current # 页码的参数名称
default-page: 1 # 未传页码时的默认首页
default-size: 20 # 未传页大小时的默认页大小
security: # 安全配置
username: admin # 登录用的用户名
password: 123456 # 登录用的密码
swagger:
version: 1.0
description: Digital Horizon API 接口信息
title: DH API Swagger Docs
name: DH API 接口
location: /v2/api-docs/dh-api/swagger2.json
debug:
timeout: 60 # 断点超时时间默认60s
task:
thread-name-prefix: dh-task- #线程池名字前缀
log: true # 打印日志
pool:
size: 8 #线程池大小默认值为CPU核心数
shutdown:
awaitTermination: false #关闭时是否等待任务执行完毕默认为false
awaitTerminationPeriod: 10s # 关闭时最多等待任务执行完毕的时间

View File

@@ -0,0 +1,61 @@
spring:
banner:
location: classpath:static/banner.txt
web:
resources:
static-locations: ./public/
cache:
cachecontrol:
no-cache: true
# max-age: 30d
# cache-public: true
profiles:
active: prod
include: magic-api
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://${database.host}:${database.port}/${database.name}?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
username: ${database.user}
password: ENC(${database.pin})
flyway:
enabled: true # 是否开启
encoding: UTF-8 # 编码
sql-migration-prefix: V # 脚本文件的前缀默认为V
sql-migration-separator: __ # 双下划线
baseline-on-migrate: true # 连接数据库中存在表时设置为true
locations: classpath:db/migration # 脚本路径
clean-disabled: false # flyway 的 clean 命令会删除指定 schema 下的所有 table, 生产务必禁掉。这个默认值是 false 理论上作为默认配置是不科学的
validate-on-migrate: true # 执行迁移时是否自动调用验证 当你的 版本不符合逻辑 比如 你先执行了 DML 而没有 对应的DDL 会抛出异常
placeholder-replacement: false # 不做取值替换 默认替换为 ${} 初始化sql中有sql语句存在freemarker替换所以禁用此项
servlet:
multipart:
max-file-size: 200MB
max-request-size: 200MB
enabled: true
main:
allow-circular-references: true
server:
# port: 2023
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
max-threads: 1000
min-spare-threads: 5
connection-timeout: 60000
keep-alive-timeout: 600000
compression:
enabled: true
mime-types: text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml
mybatis-plus:
mapper-locations: classpath:db/mapper/*Mapper.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
banner: false
logging:
config: ./config/logback-spring.xml

View File

@@ -0,0 +1,10 @@
server.port=80
database.port=3306
#database.host=192.168.44.23
#database.name=dh-test-f
#database.user=nezha
database.host=127.0.0.1
database.name=asw
database.user=user
#database.pin=NTV/OauZb0eHc9tqzQzG0bbfmzH0VRILYhGbU2ssJ1fDr5gqJ+gd5ELnND3wZ6EB
database.pin=TPe6maTtzzu0zD0n0H+UTqug9nnb6l+eESqvILQ1dy3e1bEVZHTXfsKjqKp3vAXQ

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<logger name="org.springframework.web" level="info" />
<logger name="org.springboot.sample" level="warn" />
<logger name="org.apache" level="warn" />
<logger name="org.springframework" level="info" />
<logger name="druid.sql" level="info" />
<property name="log.path" value="/var/log/dh/" />
<!-- 输出格式 -->
<property name="out.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" />
<!-- 活动文件的大小 -->
<property name="max.file.size" value="100MB"/>
<!-- 保留的归档文件的最大数量 -->
<property name="max.history" value="30"/>
<!-- 控制所有归档日志文件的总大小 -->
<property name="total.size.cap" value="10GB"/>
<!-- 2.2 level为 INFO 日志,时间滚动输出 -->
<appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/dh-web.log</file>
<!--日志文档输出格式 -->
<encoder>
<pattern>${out.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/dh-web-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${max.file.size}</maxFileSize>
<maxHistory>${max.history}</maxHistory>
<totalSizeCap>${total.size.cap}</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 2.1 level为 ERROR 日志,时间滚动输出 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/dh-web-error.log</file>
<!--日志文档输出格式 -->
<encoder>
<pattern>${out.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/dh-web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${max.file.size}</maxFileSize>
<maxHistory>${max.history}</maxHistory>
<totalSizeCap>${total.size.cap}</totalSizeCap>
</rollingPolicy>
<!-- 此日志文档只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<root level="INFO">
<appender-ref ref="LOG_FILE" />
<appender-ref ref="ERROR_FILE" />
</root>
</configuration>

View File

@@ -0,0 +1,136 @@
/**
* 1、新增 sys_user 表
* 2、添加默认用户 admin/admin
*/
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` varchar(64) NOT NULL,
`name` varchar(255) NOT NULL,
`user_name` varchar(255) NOT NULL,
`pwd` varchar(255) NOT NULL,
`create_timestamp` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_user_name` (`user_name`) USING BTREE,
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `sys_user`(`id`, `name`, `user_name`, `pwd`, `create_timestamp`) VALUES ('admin', 'admin', 'admin', 'ad9d757e620d5d9cd8e32c3dbcf37525', UNIX_TIMESTAMP(NOW())*1000);
/**
* 1、新增 sys_role 表
* 2、新增 sys_menu 表
* 3、新增 sys_user_role 表
* 4、新增 sys_role_menu 表
* 5、添加初始化数据
*/
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`id` varchar(64) NOT NULL,
`name` varchar(255) NOT NULL,
`i18n` varchar(255) NOT NULL,
`remark` varchar(255) NOT NULL,
`build_in` int(10) NOT NULL DEFAULT 0,
`create_timestamp` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`id` varchar(64) NOT NULL,
`name` varchar(255) NOT NULL,
`i18n` varchar(255) NOT NULL,
`pid` varchar(64) NOT NULL DEFAULT '',
`type` varchar(64) NOT NULL,
`perms` varchar(255) NOT NULL DEFAULT '',
`route` varchar(255) NOT NULL DEFAULT '',
`icon` varchar(255) NOT NULL DEFAULT '',
`order` int(10) NOT NULL DEFAULT 1,
`create_timestamp` bigint(20) NOT NULL,
`state` int(10) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
`user_id` varchar(64) NOT NULL,
`role_id` varchar(64) NOT NULL,
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE `sys_role_menu` (
`menu_id` varchar(64) NOT NULL,
`role_id` varchar(64) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 添加内置角色
INSERT INTO `sys_role` (`id`, `name`, `i18n`, `remark`, `build_in`, `create_timestamp`) VALUES ('admin', 'admin', 'admin', 'admin', 1, UNIX_TIMESTAMP(NOW())*1000);
/**
* 1、新增 sys_config 表
*/
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (
`param_key` varchar(50) NOT NULL COMMENT 'key',
`param_value` text DEFAULT NULL,
`status` tinyint(4) DEFAULT 1 COMMENT '状态 0隐藏 1显示',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`param_key`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';
/**
初始化 magic api 时区配置 ,默认 Asia/Shanghai
*/
INSERT INTO `sys_config` (`param_key`, `param_value`, `status`, `remark`) VALUES ( 'timezone', 'Asia/Shanghai', 1, '时区配置');
/**
* 新增 magic api file 表
*/
DROP TABLE IF EXISTS `magic_api_file`;
CREATE TABLE `magic_api_file` (
`file_path` varchar(512) NOT NULL,
`file_content` mediumtext,
PRIMARY KEY (`file_path`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `magic_api_backup`;
CREATE TABLE `magic_api_backup` (
`id` varchar(32) NOT NULL COMMENT '原对象ID',
`create_date` bigint(13) NOT NULL COMMENT '备份时间',
`tag` varchar(32) DEFAULT NULL COMMENT '标签',
`type` varchar(32) DEFAULT NULL COMMENT '类型',
`name` varchar(64) DEFAULT NULL COMMENT '原名称',
`content` blob COMMENT '备份内容',
`create_by` varchar(64) DEFAULT NULL COMMENT '操作人',
PRIMARY KEY (`id`,`create_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/**
* 新增 sys_file sys_file_content 表
*/
DROP TABLE IF EXISTS `sys_file`;
CREATE TABLE `sys_file` (
`id` varchar(64) NOT NULL COMMENT '文件md5值',
`name` varchar(255) NOT NULL,
`suffix` varchar(255) NOT NULL DEFAULT '' COMMENT '文件名后缀',
`content_type` varchar(255) DEFAULT NULL,
`size` bigint(20) NOT NULL,
`path` varchar(512) NOT NULL COMMENT 'file:相对路径 或 db:md5',
`create_timestamp` bigint(20) NOT NULL,
`remark` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DROP TABLE IF EXISTS `sys_file_content`;
CREATE TABLE `sys_file_content` (
`id` varchar(64) NOT NULL,
`content` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

@@ -0,0 +1,8 @@
_____ _ _ _ __ __ _
/\ / ____| | | | | | \ \ / / | |
/ \ _ __ _ __| (___ | | _____| |_ ___| |__ \ \ /\ / /__ _ __| | _____
/ /\ \ | '_ \| '_ \\___ \| |/ / _ \ __/ __| '_ \ \ \/ \/ / _ \| '__| |/ / __|
/ ____ \| |_) | |_) |___) | < __/ || (__| | | | \ /\ / (_) | | | <\__ \
/_/ \_\ .__/| .__/_____/|_|\_\___|\__\___|_| |_| \/ \/ \___/|_| |_|\_\___/
| | | |
|_| |_| Powered by GeedgeNetworks

View File

@@ -0,0 +1,10 @@
var MAGIC_EDITOR_CONFIG = {
title: 'digital horizon api',
header: {
skin: true, // 屏蔽皮肤按钮
document: true, // 屏蔽文档按钮
repo: false, // 屏蔽gitee和github
qqGroup: false // 屏蔽加入QQ群
}
// 其它配置参考本页中其它配置项
}