getAllModuleTree();
}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleResourceMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleResourceMapper.java
index 0ae0baae072339a520c10b710aa2c80164fae291..d35af85b2507c622b09bdfc7f7d6924a94a0921f 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleResourceMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleResourceMapper.java
@@ -2,11 +2,14 @@ package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zrkizzy.data.domain.ModuleResource;
-import com.zrkizzy.data.query.ModuleResourceQuery;
-import com.zrkizzy.data.vo.ResourceVO;
+import com.zrkizzy.data.domain.core.ModuleResource;
+import com.zrkizzy.data.query.resource.ModuleResourceQuery;
+import com.zrkizzy.data.vo.resource.ResourceVO;
+import com.zrkizzy.data.vo.resource.ResourceLeafVO;
import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
/**
*
* 资源模块关联数据持久化接口
@@ -24,6 +27,45 @@ public interface ModuleResourceMapper extends BaseMapper {
* @param moduleResourceQuery 模块资源查询对象
* @return 请求资源返回对象
*/
- Page listByModuleId(@Param("page") Page page, @Param("moduleResourceQuery") ModuleResourceQuery moduleResourceQuery);
+ Page pageByModuleId(@Param("page") Page page, @Param("moduleResourceQuery") ModuleResourceQuery moduleResourceQuery);
+
+ /**
+ * 获取当前模块中所有可以添加的资源集合
+ *
+ * @param moduleId 模块ID
+ * @return 指定模块可以添加请求资源叶子集合
+ */
+ List findMissingResourceByModuleId(Long moduleId);
+
+ /**
+ * 通过模块ID获取当前模块已有的请求资源
+ *
+ * @param moduleId 模块ID
+ * @return 当前模块中已有的资源ID集合
+ */
+ List listCheckById(Long moduleId);
+
+ /**
+ * 删除指定模块对应数据
+ *
+ * @param moduleId 模块ID
+ * @return 受影响行数
+ */
+ Integer deleteByModuleId(Long moduleId);
+
+ /**
+ * 批量插入模块资源数据
+ *
+ * @param moduleResourceList 模块资源集合
+ * @return 受影响行数
+ */
+ Integer insertBatch(@Param("moduleResourceList") List moduleResourceList);
+ /**
+ * 根据模块ID集合批量删除
+ *
+ * @param moduleIds 模块ID集合
+ * @return 受影响行数
+ */
+ Integer deleteByModuleIds(@Param("moduleIds") List moduleIds);
}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleRoleMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleRoleMapper.java
index 2691a564a4c26e4e948e6c00da98bf155758a0ec..6c4600a08da5e3bed68e58883d84eddc93ccff5a 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleRoleMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ModuleRoleMapper.java
@@ -1,10 +1,48 @@
package com.zrkizzy.data.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zrkizzy.data.domain.core.ModuleRole;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
/**
* 模块角色数据持久化接口
*
* @author zhangrongkang
* @since 2023/3/16
*/
-public interface ModuleRoleMapper {
+public interface ModuleRoleMapper extends BaseMapper {
+
+ /**
+ * 删除指定角色具有的所有请求权限
+ *
+ * @param roleId 角色ID
+ * @return 受影响行数
+ */
+ Integer deleteByRoleId(Long roleId);
+
+ /**
+ * 根据角色ID获取角色模块权限
+ *
+ * @param roleId 角色ID
+ * @return 所有选中的模块ID集合
+ */
+ List listModuleIdByRoleId(Long roleId);
+
+ /**
+ * 添加模块角色关联信息
+ *
+ * @param moduleRoleList 模块角色关联集合
+ * @return 受影响行数
+ */
+ Integer insertBatch(@Param("moduleRoleList") List moduleRoleList);
+
+ /**
+ * 统计指定模块ID集合的数据数量
+ *
+ * @param ids 模块ID集合
+ * @return 模块ID集合对应的数据总数
+ */
+ Integer countByModuleIds(@Param("ids") List ids);
}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ResourceMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ResourceMapper.java
index 58298e2315878d8abf456bd2bec9464d7b0b6e30..3293ca58d10daedf1d65175e0c9e3572a48d2062 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ResourceMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/ResourceMapper.java
@@ -1,8 +1,8 @@
package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zrkizzy.data.domain.Resource;
-import com.zrkizzy.data.dto.ResourceRoleDTO;
+import com.zrkizzy.data.domain.core.Resource;
+import com.zrkizzy.data.dto.resource.RoleSecurityDTO;
import java.util.List;
@@ -15,9 +15,9 @@ import java.util.List;
public interface ResourceMapper extends BaseMapper {
/**
- * 加载资源角色数据
+ * 加载角色权限数据
*
- * @return 资源角色数据集合
+ * @return 角色权限数据集合
*/
- List loadResourceRoleData();
+ List loadResourceRoleData();
}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/RoleMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/RoleMapper.java
index 8b72e1013de75328cc4169a557bdce7c514e10c8..1ace974273101a5b5d2d3c14c8288f867ef46c5e 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/RoleMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/RoleMapper.java
@@ -2,7 +2,7 @@ package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zrkizzy.common.base.response.OptionsVO;
-import com.zrkizzy.data.domain.Role;
+import com.zrkizzy.data.domain.core.Role;
import org.apache.ibatis.annotations.Param;
import java.util.List;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserInfoMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserInfoMapper.java
index 318e735fdc9ee68e7d260c7df66bdf87a81fae9f..b54f58d3ef8b9e8500b81abb1ee301fd4cf188d0 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserInfoMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserInfoMapper.java
@@ -1,7 +1,7 @@
package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zrkizzy.data.domain.UserInfo;
+import com.zrkizzy.data.domain.core.UserInfo;
/**
* 用户信息数据持久化接口
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserMapper.java
index 69459ae78921a1dad8bbe8cbba102cdc48cff88d..48c5509c5123cab2d053eec367d7c2af51897fb7 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserMapper.java
@@ -2,9 +2,9 @@ package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zrkizzy.data.domain.User;
+import com.zrkizzy.data.domain.core.User;
import com.zrkizzy.common.base.response.OptionsVO;
-import com.zrkizzy.data.query.UserQuery;
+import com.zrkizzy.data.query.core.UserQuery;
import com.zrkizzy.data.vo.UserVO;
import org.apache.ibatis.annotations.Param;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserRoleMapper.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserRoleMapper.java
index dcef46a24e9c00d88cb45fd2340ab3ad862ada9a..417249561fa119db2f9cf1b4cf630aeb31d91817 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserRoleMapper.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/mapper/UserRoleMapper.java
@@ -1,7 +1,7 @@
package com.zrkizzy.data.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zrkizzy.data.domain.UserRole;
+import com.zrkizzy.data.domain.core.UserRole;
import org.apache.ibatis.annotations.Param;
import java.util.List;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ArticleQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ArticleQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..cd6eb659d562585c6da850f2e97335577b521941
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ArticleQuery.java
@@ -0,0 +1,41 @@
+package com.zrkizzy.data.query;
+
+import com.zrkizzy.common.base.request.BasePage;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * 文章信息查询对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/18
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class ArticleQuery extends BasePage {
+
+ /**
+ * 文章名称
+ */
+ private String title;
+
+ /**
+ * 文章类型
+ */
+ private Byte type;
+
+ /**
+ * 可见范围
+ */
+ private Byte visibility;
+
+ /**
+ * 时间范围
+ */
+ private List dataRange;
+
+}
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogCategoryQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogCategoryQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..731e43e42de97cdd9226e7c43d87ed06f189eec2
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogCategoryQuery.java
@@ -0,0 +1,36 @@
+package com.zrkizzy.data.query;
+
+import com.zrkizzy.common.base.request.BasePage;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * 博客分类信息查询对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/4
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class BlogCategoryQuery extends BasePage {
+
+ /**
+ * 分类名称
+ */
+ private String name;
+
+ /**
+ * 博客分类访问类型:0 所有人不可见; 1 所有人可见; 2 仅自己可见
+ */
+ private Byte privacySetting;
+
+ /**
+ * 时间范围
+ */
+ private List dataRange;
+
+}
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogTagsQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogTagsQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..46774d3e5971c7b2780a8b18b249b02c32d06b95
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/BlogTagsQuery.java
@@ -0,0 +1,31 @@
+package com.zrkizzy.data.query;
+
+import com.zrkizzy.common.base.request.BasePage;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * 博客标签信息查询对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/5
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class BlogTagsQuery extends BasePage {
+
+ /**
+ * 标签名称
+ */
+ private String name;
+
+ /**
+ * 时间范围
+ */
+ private List dataRange;
+
+}
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/MenuQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/MenuQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d533958055b6a5a3d542d8d5a5bfcf63b939bf5
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/MenuQuery.java
@@ -0,0 +1,32 @@
+package com.zrkizzy.data.query;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 菜单信息查询对象
+ *
+ * @author zhangrongkang
+ * @since 2023/8/2
+ */
+@Data
+public class MenuQuery implements Serializable {
+
+ /**
+ * 菜单名称
+ */
+ private String name;
+
+ /**
+ * 状态,0:禁用,1:正常
+ */
+ private Boolean status;
+
+ /**
+ * 时间范围
+ */
+ private List dataRange;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/RoleQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/RoleQuery.java
similarity index 93%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/RoleQuery.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/RoleQuery.java
index 9cdd70457446a3ff5f8f888955440a7d23612085..4396ea4787e112eb535802508bdec6179cf7f06f 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/RoleQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/RoleQuery.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.query;
+package com.zrkizzy.data.query.core;
import com.zrkizzy.common.base.request.BasePage;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/UserQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/UserQuery.java
similarity index 93%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/UserQuery.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/UserQuery.java
index d031dacdf12bb0ecf6160c9776ee1aaea15cc1a7..286edce4440bde47d2c752357d468736232ee70f 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/UserQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/core/UserQuery.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.query;
+package com.zrkizzy.data.query.core;
import com.zrkizzy.common.base.request.BasePage;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/monitor/OperateLogQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/monitor/OperateLogQuery.java
index 17eba38cc6c237fac0c4c43bf17befb8c1700bf3..3e5d590d3c4a27f384e3fafbee3f62f068a69bd6 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/monitor/OperateLogQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/monitor/OperateLogQuery.java
@@ -18,11 +18,6 @@ import java.util.List;
@EqualsAndHashCode(callSuper = false)
public class OperateLogQuery extends BasePage {
- /**
- * 模块ID
- */
- private Long moduleId;
-
/**
* 操作类型 0 其他操作,1 新增,2 修改, 3 删除, 4 查询
*/
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleQuery.java
similarity index 92%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleQuery.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleQuery.java
index 15c7d8ae0e0a8897cd65ad7818642271d1dfdaec..2bcc82f45223af521d03ecbe522e29b76d71f5fc 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleQuery.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.query;
+package com.zrkizzy.data.query.resource;
import com.zrkizzy.common.base.request.BasePage;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleResourceQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleResourceQuery.java
similarity index 93%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleResourceQuery.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleResourceQuery.java
index 8a58a4983c9107b03ed3795fd368e7d42d6a1321..7b452958bd308937b84cad61defe00c997a3fa42 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ModuleResourceQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ModuleResourceQuery.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.query;
+package com.zrkizzy.data.query.resource;
import com.zrkizzy.common.base.request.BasePage;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ResourceQuery.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ResourceQuery.java
similarity index 93%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ResourceQuery.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ResourceQuery.java
index 8c300488331b5ed0df0a45e2c14c03f2db7366af..a1faabb99d206b09caeef76b050ea587b5943523 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/ResourceQuery.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/query/resource/ResourceQuery.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.query;
+package com.zrkizzy.data.query.resource;
import com.zrkizzy.common.base.request.BasePage;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/AboutMeVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/AboutMeVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..7685efab89cfdf4f33c6adfeac87f511156bafb8
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/AboutMeVO.java
@@ -0,0 +1,47 @@
+package com.zrkizzy.data.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 关于我数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/8
+ */
+@Data
+public class AboutMeVO implements Serializable {
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 标题
+ */
+ private String title;
+
+ /**
+ * 作者头像
+ */
+ private String avatar;
+
+ /**
+ * 内容
+ */
+ private String content;
+
+ /**
+ * 评论ID
+ */
+ private String commentId;
+
+ /**
+ * 更新时间
+ */
+ private LocalDateTime updateTime;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleMetaVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleMetaVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..731750237ed4fdd802b570b116ebca7ad8c145ed
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleMetaVO.java
@@ -0,0 +1,74 @@
+package com.zrkizzy.data.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 文章基本数据返回对象
+ * 用于文章管理页面将基本信息进行展示,无需将所有内容全部返回
+ *
+ * @author zhangrongkang
+ * @since 2023/9/23
+ */
+@Data
+public class ArticleMetaVO {
+
+ /**
+ * 文章主键
+ */
+ @JsonFormat(shape =JsonFormat.Shape.STRING)
+ private Long id;
+
+ /**
+ * 文章名称
+ */
+ private String title;
+
+ /**
+ * 文章封面
+ */
+ private String cover;
+
+ /**
+ * 文章类型:0 原创 1 转载 2 翻译
+ */
+ private Byte type;
+
+ /**
+ * 是否允许评论:1 允许 0 不允许
+ */
+ private Boolean allowComment;
+
+ /**
+ * 是否置顶:1 置顶 0 不置顶
+ */
+ private Boolean isSticky;
+
+ /**
+ * 是否开启打赏:1 开启
+ */
+ private Boolean allowDonation;
+
+ /**
+ * 可见范围:0 自己可见 1 全部可见
+ */
+ private Byte visibility;
+
+ /**
+ * 浏览数量
+ */
+ private Integer visitCount;
+
+ /**
+ * 评论数量
+ */
+ private Integer commentCount;
+
+ /**
+ * 文章发布时间
+ */
+ private LocalDateTime createTime;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..d39c317187ab4b23aadc739521dbd8e31b279c6b
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ArticleVO.java
@@ -0,0 +1,101 @@
+package com.zrkizzy.data.vo;
+
+import com.zrkizzy.common.base.response.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.util.List;
+
+/**
+ * 文章数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/18
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class ArticleVO extends BaseVO {
+
+ /**
+ * 文章名称
+ */
+ private String title;
+
+ /**
+ * 文章封面
+ */
+ private String cover;
+
+ /**
+ * 文章类型:0 原创 1 转载 2 翻译
+ */
+ private Byte type;
+
+ /**
+ * 文章摘要
+ */
+ private String summary;
+
+ /**
+ * 文章内容
+ */
+ private String content;
+
+ /**
+ * 原文链接
+ */
+ private String originalLink;
+
+ /**
+ * 是否允许评论:1 允许 0 不允许
+ */
+ private Boolean allowComment;
+
+ /**
+ * 是否置顶:1 置顶 0 不置顶
+ */
+ private Boolean isSticky;
+
+ /**
+ * 是否开启打赏:1 开启
+ */
+ private Boolean allowDonation;
+
+ /**
+ * 可见范围:0 自己可见 1 全部可见
+ */
+ private Byte visibility;
+
+ /**
+ * 浏览数量
+ */
+ private Integer visitCount;
+
+ /**
+ * 评论数量
+ */
+ private Integer commentCount;
+
+ /**
+ * 发布IP
+ */
+ private String createAddress;
+
+ /**
+ * 发布地址
+ */
+ private String createLocation;
+
+ /**
+ * 文章标签
+ */
+ private List tags;
+
+ /**
+ * 文章分类
+ */
+ private BlogCategoryVO category;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogCategoryVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogCategoryVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..350154d365e63bd2c787a31b7ebb03e35d2bcf68
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogCategoryVO.java
@@ -0,0 +1,45 @@
+package com.zrkizzy.data.vo;
+
+import com.zrkizzy.common.base.response.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+
+/**
+ * 博客分类数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/4
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class BlogCategoryVO extends BaseVO {
+
+ /**
+ * 分类名称
+ */
+ private String name;
+
+ /**
+ * 分类描述
+ */
+ private String description;
+
+ /**
+ * 分类图片
+ */
+ private String cover;
+
+ /**
+ * 博客分类访问类型:0 所有人不可见; 1 所有人可见; 2 仅自己可见
+ */
+ private Byte privacySetting;
+
+ /**
+ * 文章数量
+ */
+ private Integer count;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogTagsVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogTagsVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf79b97c8aee5c5742d97667bc7b13b42e255451
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/BlogTagsVO.java
@@ -0,0 +1,30 @@
+package com.zrkizzy.data.vo;
+
+import com.zrkizzy.common.base.response.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+
+/**
+ * 博客标签数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/9/5
+ */
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+public class BlogTagsVO extends BaseVO {
+
+ /**
+ * 标签名称
+ */
+ private String name;
+
+ /**
+ * 文章数量
+ */
+ private Integer count;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/MenuVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/MenuVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..921e5569be079c1d709c728afd1b63aaeb6632a3
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/MenuVO.java
@@ -0,0 +1,91 @@
+package com.zrkizzy.data.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zrkizzy.common.base.response.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 菜单数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/8/2
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class MenuVO extends BaseVO implements Comparable {
+
+ /**
+ * 菜单名称
+ */
+ private String name;
+
+ /**
+ * 父菜单ID
+ */
+ @JsonFormat(shape =JsonFormat.Shape.STRING)
+ private Long parentId;
+
+ /**
+ * 访问路径
+ */
+ private String path;
+
+ /**
+ * 菜单类型
+ */
+ private Character type;
+
+ /**
+ * 组件
+ */
+ private String component;
+
+ /**
+ * 是否缓存:0: 不缓存,1: 缓存
+ */
+ private Boolean isCache;
+
+ /**
+ * 是否外链:0: 不是外链, 1: 外链
+ */
+ private Boolean isLink;
+
+ /**
+ * 是否隐藏:0: 不隐藏, 1: 隐藏
+ */
+ private Boolean visible;
+
+ /**
+ * 菜单状态:0: 禁用,1: 正常
+ */
+ private Boolean status;
+
+ /**
+ * 图标
+ */
+ private String icon;
+
+ /**
+ * 菜单顺序
+ */
+ private Integer sort;
+
+ /**
+ * 子菜单
+ */
+ private List children;
+
+ /**
+ * 自定义排序规则
+ *
+ * @return 排序结果 升序:> 0,降序: < 0
+ */
+ @Override
+ public int compareTo(MenuVO menuVO) {
+ return this.sort - menuVO.getSort();
+ }
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/OperateLogVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/OperateLogVO.java
index ed7f6220548a75fa2df256679c9b764eac5146bd..a8d9db84454a3d41ae557f2ec8b781e697827dd3 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/OperateLogVO.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/OperateLogVO.java
@@ -22,11 +22,6 @@ public class OperateLogVO extends BaseVO {
*/
private String operateContent;
- /**
- * 模块名称
- */
- private String moduleName;
-
/**
* 操作类型 0 其他操作,1 新增,2 修改, 3 删除, 4 查询
*/
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/export/ApiScanVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/export/ApiScanVO.java
deleted file mode 100644
index 7970007c7fb8a3693539b532b5380b393b546e5f..0000000000000000000000000000000000000000
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/export/ApiScanVO.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.zrkizzy.data.vo.export;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.write.style.ColumnWidth;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * API接口Excel导出数据对象
- *
- * @author zhangrongkang
- * @since 2023/7/17
- */
-@Data
-@Builder
-@AllArgsConstructor
-public class ApiScanVO implements Serializable {
-
- /**
- * 所属类
- */
- @ColumnWidth(60)
- @ExcelProperty("请求类")
- private String className;
-
- /**
- * 所属类描述
- */
- @ColumnWidth(25)
- @ExcelProperty("请求类描述")
- private String classDesc;
-
- /**
- * 请求路径
- */
- @ColumnWidth(50)
- @ExcelProperty("请求路径")
- private String url;
-
- /**
- * 方法名称
- */
- @ColumnWidth(25)
- @ExcelProperty("方法名称")
- private String method;
-
- /**
- * 方法描述
- */
- @ColumnWidth(25)
- @ExcelProperty("方法描述")
- private String methodDesc;
-
- /**
- * 方法类型
- */
- @ColumnWidth(15)
- @ExcelProperty("方法类型")
- private String methodType;
-
- /**
- * 传入参数
- */
- @ColumnWidth(25)
- @ExcelProperty("传入参数")
- private String inParam;
-
- /**
- * 传入参数描述
- */
- @ColumnWidth(35)
- @ExcelProperty("入参描述")
- private String inDesc;
-
- /**
- * 传入参数类型
- */
- @ColumnWidth(40)
- @ExcelProperty("入参类型")
- private String inParamType;
-
- /**
- * 返回参数类型
- */
- @ColumnWidth(50)
- @ExcelProperty("返回参数类型")
- private String outType;
-
- /**
- * 返回参数描述
- */
- @ColumnWidth(25)
- @ExcelProperty("返回描述")
- private String outDesc;
-
-}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleResourceVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleResourceVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2536e352672b75dbf9cb08fe0b2fe3a0e78603e
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleResourceVO.java
@@ -0,0 +1,29 @@
+package com.zrkizzy.data.vo.resource;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 模块资源关联对象
+ *
+ * @author zhangrongkang
+ * @since 2023/7/30
+ */
+@Data
+@AllArgsConstructor
+public class ModuleResourceVO implements Serializable {
+
+ /**
+ * 请求资源树形数据
+ */
+ private List resourceTree;
+
+ /**
+ * 当前模块已有的请求资源
+ */
+ private List checkIds;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleRoleVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleRoleVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..b675ed0dbfce0c2b5ac2d5369af3c3aaf36ad573
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleRoleVO.java
@@ -0,0 +1,28 @@
+package com.zrkizzy.data.vo.resource;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 模块角色关联数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/7/31
+ */
+@Data
+@AllArgsConstructor
+public class ModuleRoleVO implements Serializable {
+
+ /**
+ * 当前模块选中的ID
+ */
+ private List checkIds;
+
+ /**
+ * 模块树形数据
+ */
+ private List moduleTree;
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleTreeVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleTreeVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..edeefe2d53f992fa2c7dfa7840d3918ac4b8a33a
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ModuleTreeVO.java
@@ -0,0 +1,28 @@
+package com.zrkizzy.data.vo.resource;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 模块树形数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/7/31
+ */
+@Data
+public class ModuleTreeVO implements Serializable {
+
+ /**
+ * 模块ID
+ */
+ @JsonFormat(shape =JsonFormat.Shape.STRING)
+ private Long id;
+
+ /**
+ * 模块名称
+ */
+ private String label;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceLeafVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceLeafVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..9c63a2417304eeb3508950683b7c5c37a9f29540
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceLeafVO.java
@@ -0,0 +1,33 @@
+package com.zrkizzy.data.vo.resource;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 请求资源叶子数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/7/30
+ */
+@Data
+public class ResourceLeafVO implements Serializable {
+
+ /**
+ * 请求资源ID
+ */
+ @JsonFormat(shape =JsonFormat.Shape.STRING)
+ private Long id;
+
+ /**
+ * 请求资源名称
+ */
+ private String label;
+
+ /**
+ * 请求资源路径
+ */
+ private String url;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceTreeVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceTreeVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..9d5b641f8d19686e61a400deec6d2210de2be241
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceTreeVO.java
@@ -0,0 +1,31 @@
+package com.zrkizzy.data.vo.resource;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 请求资源树形数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/7/30
+ */
+@Data
+@Builder
+@AllArgsConstructor
+public class ResourceTreeVO implements Serializable {
+
+ /**
+ * 节点描述
+ */
+ private String label;
+
+ /**
+ * 当前节点下的数据
+ */
+ private List children;
+
+}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ResourceVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceVO.java
similarity index 94%
rename from blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ResourceVO.java
rename to blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceVO.java
index a7bdcdb2800cfa1ecda7a69ab6210500fb9957a7..6f7c207f416adcd2b364c73b1d16e3a00a80bbc3 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/ResourceVO.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/resource/ResourceVO.java
@@ -1,4 +1,4 @@
-package com.zrkizzy.data.vo;
+package com.zrkizzy.data.vo.resource;
import com.zrkizzy.common.base.response.BaseVO;
import lombok.Data;
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/MetaVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/MetaVO.java
index 6ad061bf8cff84aa23c503cd55699abe17d1bbaa..c9db9bd841ca9a619b9769555ecc72b9f1a7ce1b 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/MetaVO.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/MetaVO.java
@@ -2,6 +2,7 @@ package com.zrkizzy.data.vo.route;
import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.io.Serializable;
@@ -12,6 +13,7 @@ import java.io.Serializable;
* @since 2023/4/18
*/
@Data
+@NoArgsConstructor
@AllArgsConstructor
public class MetaVO implements Serializable {
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/RouterVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/RouterVO.java
index 74de4291ffb1061e22c09df3eb638bcb741f01d1..556987bacca998ea58ad33c285e390c2c2ee0416 100644
--- a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/RouterVO.java
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/route/RouterVO.java
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
*/
@Data
@Builder
+@NoArgsConstructor
@AllArgsConstructor
public class RouterVO implements Comparable, Serializable {
@@ -58,7 +60,7 @@ public class RouterVO implements Comparable, Serializable {
* 菜单序号
*/
@JsonIgnore
- private Integer order;
+ private Integer sort;
/**
* 自定义排序规则
@@ -67,6 +69,6 @@ public class RouterVO implements Comparable, Serializable {
*/
@Override
public int compareTo(RouterVO routerVO) {
- return this.order - routerVO.getOrder();
+ return this.sort - routerVO.getSort();
}
}
diff --git a/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/system/BlogConfigVO.java b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/system/BlogConfigVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6e9504bab8562338a364920c8952d8e4b092dbe
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/java/com/zrkizzy/data/vo/system/BlogConfigVO.java
@@ -0,0 +1,58 @@
+package com.zrkizzy.data.vo.system;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 博客数据返回对象
+ *
+ * @author zhangrongkang
+ * @since 2023/8/24
+ */
+@Data
+public class BlogConfigVO implements Serializable {
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 是否展示Banner
+ */
+ private Boolean showBanner;
+
+ /**
+ * Banner背景图片
+ */
+ private String bannerImage;
+
+ /**
+ * 页脚背景图片
+ */
+ private String footerImage;
+
+ /**
+ * 亮色主题背景图片
+ */
+ private String lightImage;
+
+ /**
+ * 暗色主题背景图片
+ */
+ private String darkImage;
+
+ /**
+ * 评论是否需要审核
+ * true:需要,false:不需要
+ */
+ private Boolean commentApproval;
+
+ /**
+ * 留言是否需要审核
+ * true:需要,false:不需要
+ */
+ private Boolean messageApproval;
+
+}
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/ArticleMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/ArticleMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3cc944a1a769eabae086c92bee85d09a8d3d796b
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/resources/mapper/ArticleMapper.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, title, cover, `type`, summary, content, original_link, allow_comment, is_sticky, allow_donation, visibility, visit_count, comment_count, create_address, create_location, create_time, update_time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, title, `type`, cover, allow_comment, is_sticky, allow_donation, visibility, visit_count, comment_count, create_time
+
+
+
+
+
+
+
+
+ allow_comment
+ is_sticky
+ allow_donation
+
+
+
+
+
+
+
+
+ UPDATE tb_article
+
+
+ = #{value}
+
+ WHERE id = #{articleId}
+
+
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/BlogCategoryMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/BlogCategoryMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0c7a5ca501d979ee0be5617c03a817e4bbe73a8d
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/resources/mapper/BlogCategoryMapper.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, `name`, description, cover, privacy_setting, `count`, create_time, update_time
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/BlogTagsMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/BlogTagsMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..10cab8e6729c92a7826dcff743e5fd8a1edc49f5
--- /dev/null
+++ b/blog-springboot/blog-data/src/main/resources/mapper/BlogTagsMapper.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, name, count, create_time, update_time
+
+
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/MenuMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/MenuMapper.xml
index a1abf47ec7368dc25a039100e0e51d0c53166b83..e9fdb5a7305583b5ab9d4b98107d2dba6ca881df 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/MenuMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/MenuMapper.xml
@@ -3,20 +3,22 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
- id, `name`, parent_id, `path`, component, is_cache, is_link, visible, icon, `order`, create_time, update_time
+ id, `name`, parent_id, `type`, `path`, component, is_cache, is_link, visible, status, icon, `sort`, create_time, update_time
-
+
+
+
-
+
@@ -24,19 +26,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/ModuleMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/ModuleMapper.xml
index bacc54bd8d42fdf609d0312ffa82cd9fb68b9215..5ef6f0c7560267e4991ff5e612456307a1649bf1 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/ModuleMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/ModuleMapper.xml
@@ -14,4 +14,19 @@
SELECT id, name FROM tb_module;
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/ModuleResourceMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/ModuleResourceMapper.xml
index 8546a9e110799e86661bc111c6e5d342bfe7d52a..03861471b64572a8d58d271075b30f7ea748a487 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/ModuleResourceMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/ModuleResourceMapper.xml
@@ -3,7 +3,7 @@
-
+
@@ -11,10 +11,10 @@
- id, module_id, resource_id
+ id, module_id, resource_id, create_time
-
+
@@ -24,7 +24,7 @@
-
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/ModuleRoleMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/ModuleRoleMapper.xml
index 0203c94edd0b5144023b94e3fb5999a74341a56e..075f06f827ecd4f55aabab1ca628fc38b2a4fc2d 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/ModuleRoleMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/ModuleRoleMapper.xml
@@ -3,4 +3,49 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+
+
+ id, module_id, role_id, create_time
+
+
+
+
+ DELETE FROM tb_module_role WHERE role_id = #{roleId}
+
+
+
+
+ SELECT
+ module_id
+ FROM
+ tb_module_role
+ WHERE
+ role_id = #{roleId}
+
+
+
+
+ SELECT
+ COUNT(1)
+ FROM
+ tb_module_role
+
+ module_id IN
+
+ #{id}
+
+
+
+
+
+
+
+ INSERT INTO
+ tb_module_role()
+ VALUES
+
+ (#{moduleRole.id}, #{moduleRole.moduleId}, #{moduleRole.roleId}, #{moduleRole.createTime})
+
+
+
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/OperateLogMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/OperateLogMapper.xml
index c4330db55f2a26c7b82bb2796c764128fff5e447..2641766c6df663d8aabd978b3ae3ee4c22d18b51 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/OperateLogMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/OperateLogMapper.xml
@@ -6,7 +6,6 @@
-
@@ -23,7 +22,7 @@
- id, operate_content, module_id, `type`, method_name, request_method, user_id, operate_ip, operate_location, operate_param, operate_result, status, cost_time, create_time, update_time
+ id, operate_content, `type`, method_name, request_method, user_id, operate_ip, operate_location, operate_param, operate_result, status, cost_time, create_time, update_time
@@ -34,7 +33,6 @@
-
@@ -53,7 +51,6 @@
SELECT
o.id AS id,
o.operate_content AS operate_content,
- m.name AS module_name,
o.`type` AS `type`,
o.method_name AS method_name,
o.request_method AS request_method,
@@ -67,15 +64,9 @@
o.create_time AS create_time
FROM
tb_operate_log o,
- tb_module m,
tb_user u
WHERE
- o.module_id = m.id AND
o.user_id = u.id
-
-
- AND o.module_id = #{operateLogQuery.moduleId}
-
AND o.user_id = #{operateLogQuery.userId}
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/ResourceMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/ResourceMapper.xml
index 073d4c756d51b86ee171d35934096399588b5802..60077aad04588d472384bd1246fb65126fefdf61 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/ResourceMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/ResourceMapper.xml
@@ -4,7 +4,7 @@
-
+
@@ -14,30 +14,29 @@
-
-
+
-
-
+
+
+
-
-
+
+
SELECT
res.method AS method,
res.url AS url,
res.description AS description,
- mr.module_id AS module_id,
r.mark AS role_mark
FROM
tb_resource res
- LEFT JOIN tb_module_resource mres ON res.id = mres.resource_id
- LEFT JOIN tb_module_role mr ON mres.module_id = mr.module_id
- LEFT JOIN tb_role r ON mr.role_id = r.id
+ INNER JOIN tb_module_resource mres ON res.id = mres.resource_id
+ INNER JOIN tb_module_role mr ON mres.module_id = mr.module_id
+ INNER JOIN tb_role r ON mr.role_id = r.id
\ No newline at end of file
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/RoleMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/RoleMapper.xml
index 9bc28ccf2e109a18f7c325f2f7b3ba033b371ddd..9d9e86c51e92391bd1c83236810c94b48371ef78 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/RoleMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/RoleMapper.xml
@@ -26,7 +26,7 @@
-
+
SELECT
FROM
@@ -34,7 +34,7 @@
-
+
SELECT
FROM
@@ -44,7 +44,7 @@
-
+
SELECT
FROM
diff --git a/blog-springboot/blog-data/src/main/resources/mapper/UserMapper.xml b/blog-springboot/blog-data/src/main/resources/mapper/UserMapper.xml
index 509844026c610ac08f4f2e709717ee5ac0f8fbca..de1832cc0d748eb0619f2c1edc032a9bf3ba43e7 100644
--- a/blog-springboot/blog-data/src/main/resources/mapper/UserMapper.xml
+++ b/blog-springboot/blog-data/src/main/resources/mapper/UserMapper.xml
@@ -8,7 +8,7 @@
-
+
@@ -20,8 +20,8 @@
-
-
+
+
diff --git a/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/util/FreemarkerUtil.java b/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/util/FreemarkerUtil.java
index 6fe32a53f6d9ddf44769e54f10c965d55d88516e..4269e824b802ef3c7b59c181092621376a70abec 100644
--- a/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/util/FreemarkerUtil.java
+++ b/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/util/FreemarkerUtil.java
@@ -22,7 +22,7 @@ public class FreemarkerUtil {
/**
* Freemarker模板文件路径
*/
- private static final String FILE_PATH = "E:\\JavaProject\\blog\\blog-springboot\\blog-generator\\src\\main\\resources\\template\\";
+ private static final String FILE_PATH = "/Users/zhangrongkang/workspace/IdeaProject/blog/blog-springboot/blog-generator/src/main/resources/template/";
/**
* Freemarker模板类
diff --git a/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/vue/index.vue b/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/vue/index.vue
index 82eff80ce28dae0a522f463ca9bd912fa93b5c6e..c6ecb7b6eb743eab6a2604337cf4764f50a542b6 100644
--- a/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/vue/index.vue
+++ b/blog-springboot/blog-generator/src/main/java/com/zrkizzy/generator/vue/index.vue
@@ -5,7 +5,11 @@
-
+
+
+
+
+
编辑
- 删除
+ 删除
@@ -45,10 +49,10 @@
-
-
-
-
+
+
+
+
{{ scope.row.createTime | dateFilter }}
@@ -77,25 +81,25 @@
/>
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -125,10 +129,10 @@
import PageTitle from '../../../components/PageTitle/index.vue'
import Pagination from '../../../components/Pagination/index.vue'
import RightToolbar from '../../../components/RightToolbar/index.vue'
-import { listModuleResources, saveModuleResource, getModuleResourceById, deleteModuleResource } from '../../../api/moduleResource'
+import { listBlogTagss, saveBlogTags, getBlogTagsById, deleteBlogTags } from '../../../api/blogTags'
export default {
- name: 'ModuleResource',
+ name: 'BlogTags',
components: { PageTitle, Pagination, RightToolbar },
@@ -140,8 +144,8 @@ export default {
showSearch: true,
// 数据总条数
total: 0,
- // 资源模块关联对话框是否显示
- moduleResourceVisible: false,
+ // 博客标签对话框是否显示
+ blogTagsVisible: false,
// 数据表格等待框
loading: false,
// 查询参数
@@ -150,29 +154,33 @@ export default {
currentPage: 1,
// 页面大小
pageSize: 10,
+ // 标签名称
+ name: undefined,
// 时间范围
dataRange: []
},
- // 资源模块关联表单对象
+ // 博客标签表单对象
formData: {
- // 模块主键
- moduleId: undefined,
- // 资源主键
- resourceId: undefined,
+ // 标签名称
+ name: undefined,
+ // 文章数量
+ count: undefined,
},
- // 资源模块关联表单校验规则
+ // 博客标签表单校验规则
rules: {
+ // 标签名称
+ name: [{ required: true, message: '请输入标签名称', trigger: 'blur' }],
},
- // 资源模块关联对话框等待框
- moduleResourceLoading: false,
+ // 博客标签对话框等待框
+ blogTagsLoading: false,
// 对话框按钮等待框
buttonLoading: false,
// 列信息
columns: [
- // 模块主键
- { key: 0, label: '模块主键', visible: true },
- // 资源主键
- { key: 1, label: '资源主键', visible: true },
+ // 标签名称
+ { key: 0, label: '标签名称', visible: true },
+ // 文章数量
+ { key: 1, label: '文章数量', visible: true },
{ key: 2, label: '创建时间', visible: true },
{ key: 3, label: '更新时间', visible: true }
],
@@ -185,7 +193,7 @@ export default {
// 单数据禁用
multiple: true,
// 对话框标题
- moduleResourceTitle: ''
+ blogTagsTitle: ''
}
},
@@ -207,12 +215,15 @@ export default {
getTableData () {
// 开启加载框
this.loading = true
- listModuleResources(this.queryParams).then((res) => {
+ listBlogTagss(this.queryParams).then((res) => {
// 赋值数据参数
this.tableData = res.list
this.total = res.total
// 关闭等待框
this.loading = false
+ }).catch(() => {
+ // 确保加载框可以关闭
+ this.loading = false
})
},
// 点击查询按钮
@@ -222,102 +233,116 @@ export default {
},
// 点击重置按钮
handleReset () {
+ // 标签名称
+ this.queryParams.name = ''
this.queryParams.dataRange = []
},
- // 打开资源模块关联信息对话框
+ // 打开博客标签信息对话框
handleOpen () {
// 清除表单数据
- this.resetForm()
- this.moduleResourceVisible = true
+ this.reset()
+ this.blogTagsVisible = true
},
- // 关闭资源模块关联对话框表单
+ // 关闭博客标签对话框表单
handleClose () {
- this.resetForm()
- this.moduleResourceVisible = false
+ this.reset()
+ this.blogTagsVisible = false
},
// 点击新增按钮
handleAdd () {
- this.moduleResourceTitle = '新增资源模块关联'
+ this.blogTagsTitle = '新增博客标签'
this.handleOpen()
},
// 点击编辑按钮
handleUpdate (row) {
// 修改对话框标题
- this.moduleResourceTitle = '更新资源模块关联'
+ this.blogTagsTitle = '更新博客标签'
// 获取到传来的ID
- const moduleResourceId = row.id || this.ids
+ const blogTagsId = row.id || this.ids
// 打开加载框
- this.moduleResourceLoading = true
- // 根据资源模块关联ID获取对应的数据
- getModuleResourceById(moduleResourceId).then((res) => {
- // 赋值当前的资源模块关联数据
+ this.blogTagsLoading = true
+ // 根据博客标签ID获取对应的数据
+ getBlogTagsById(blogTagsId).then((res) => {
+ // 赋值当前的博客标签数据
this.formData = res
- // 打开编辑资源模块关联对话框
- this.moduleResourceVisible = true
+ // 打开编辑博客标签对话框
+ this.blogTagsVisible = true
// 关闭加载框
- this.moduleResourceLoading = false
+ this.blogTagsLoading = false
})
},
// 点击删除事件
handleDelete (row) {
- let moduleResourceIds = []
+ const that = this
+ let blogTagsIds = []
if (row.id) {
- moduleResourceIds.push(row.id)
+ blogTagsIds.push(row.id)
} else {
- moduleResourceIds = this.ids
+ blogTagsIds = this.ids
}
- console.log(moduleResourceIds)
- this.$confirm('是否确认删除选中的资源模块关联数据?', '提示', {
+ this.$confirm('是否确认删除选中的博客标签数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
- }).then(function () {
- return deleteModuleResource(moduleResourceIds)
}).then(() => {
- this.getTableData()
- this.$message.success('删除成功')
+ that.buttonLoading = true
+ that.loading = true
+ deleteBlogTags(blogTagsIds).then((res) => {
+ that.buttonLoading = false
+ that.$message.success('删除成功')
+ // 刷新数据
+ that.getTableData()
+ }).catch(() => {
+ // 确保加载框会关闭
+ that.buttonLoading = false
+ that.loading = false
+ })
}).catch(() => {})
},
// 提交表单
submitForm () {
const that = this
- this.$refs.moduleResourceForm.validate(valid => {
+ this.$refs.blogTagsForm.validate(valid => {
// 校验未通过则直接返回
if (!valid) return
// 开启加载框
that.buttonLoading = true
- that.moduleResourceLoading = true
+ that.blogTagsLoading = true
// 提交表单
- saveModuleResource(that.formData).then((res) => {
+ saveBlogTags(that.formData).then((res) => {
// 根据是否存在ID输出对应消息
if (that.formData.id) {
// 输出更新成功信息
- that.$message.success('资源模块关联信息更新成功')
+ that.$message.success('博客标签信息更新成功')
} else {
// 输出添加成功消息
- that.$message.success('资源模块关联添加成功')
+ that.$message.success('博客标签添加成功')
}
// 刷新表单数据并关闭对话框
that.handleClose()
- // 刷新资源模块关联数据
+ // 刷新博客标签数据
that.getTableData()
// 关闭加载框
that.buttonLoading = false
- that.moduleResourceLoading = false
+ that.blogTagsLoading = false
}).catch(() => {
// 关闭加载框
that.buttonLoading = false
- that.moduleResourceLoading = false
+ that.blogTagsLoading = false
})
})
},
// 重置表单
- resetForm () {
+ reset () {
// 清除校验条件
this.formData = {
- // 资源模块关联ID
+ // 博客标签ID
id: undefined,
+ // 标签名称
+ name: undefined,
}
+ // 清除表单校验
+ this.resetForm('blogTagsForm')
},
// 多选框
handleSelectionChange (selection) {
@@ -334,7 +359,7 @@ export default {
diff --git a/blog-vue/admin/src/components/IconSelect/requireIcons.js b/blog-vue/admin/src/components/IconSelect/requireIcons.js
new file mode 100644
index 0000000000000000000000000000000000000000..abeb46ba1dcc7414b0ee620a3653741ad0f2d35e
--- /dev/null
+++ b/blog-vue/admin/src/components/IconSelect/requireIcons.js
@@ -0,0 +1,11 @@
+// 这里是具体的SVG图标地址
+const req = require.context('../../icons/svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys()
+
+const re = /\.\/(.*)\.svg/
+
+const icons = requireAll(req).map(i => {
+ return i.match(re)[1]
+})
+
+export default icons
diff --git a/blog-vue/admin/src/components/SvgIcon/index.vue b/blog-vue/admin/src/components/SvgIcon/index.vue
index f15a588ad58c0084b5a2fd89101d4a6c806e1362..bd6e1f2dac654258d0251f42876bef5c74d2a27c 100644
--- a/blog-vue/admin/src/components/SvgIcon/index.vue
+++ b/blog-vue/admin/src/components/SvgIcon/index.vue
@@ -56,6 +56,7 @@ export default {
.svg-icon {
width: 1em;
height: 1em;
+ vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
diff --git a/blog-vue/admin/src/constant/index.js b/blog-vue/admin/src/constant/index.js
index 2cd39f9d7d7d62cbe949173baf7c8bbd178cfac1..36fedbf1ff4b7abcba40577aa85357a370ae0eb5 100644
--- a/blog-vue/admin/src/constant/index.js
+++ b/blog-vue/admin/src/constant/index.js
@@ -1,2 +1,17 @@
// 对外导出常量 token
export const TOKEN = 'token'
+
+// QQ登录
+export const QQ = 'QQ'
+
+// Gitee登录
+export const GIT_EE = 'Gitee'
+
+// 手机登录
+export const MOBILE = 'Mobile'
+
+// 微博登录
+export const WEI_BO = 'WeiBo'
+
+// 系统登录
+export const SYSTEM = 'System'
diff --git a/blog-vue/admin/src/layout/SideBar/index.vue b/blog-vue/admin/src/layout/SideBar/index.vue
index 43296c1885e0bed4045a4df9c09074aabb735147..d1fcfdf67fe92b175af2f22dbe5eb5af02d302f9 100644
--- a/blog-vue/admin/src/layout/SideBar/index.vue
+++ b/blog-vue/admin/src/layout/SideBar/index.vue
@@ -2,10 +2,10 @@
+
+
+
+
+
+
+
diff --git a/blog-vue/admin/src/layout/components/TagsView/index.vue b/blog-vue/admin/src/layout/components/TagsView/index.vue
index 9722c0dc6ef284b37bb4f52c6a1e0b2853a22358..ffd1d9060c35935a6d1e78ea23c05df722cedbc7 100644
--- a/blog-vue/admin/src/layout/components/TagsView/index.vue
+++ b/blog-vue/admin/src/layout/components/TagsView/index.vue
@@ -11,7 +11,8 @@
:style="{
backgroundColor: isActive(tag) ? '#409EFF' : '',
}"
- >{{ tag.meta.title }}
+ @contextmenu.prevent.native="openMenu($event, index)">
+ {{ tag.meta.title }}
-
-
- 关闭全部
-
+
+
+
+
+
diff --git a/blog-vue/admin/src/views/content/article/index.vue b/blog-vue/admin/src/views/content/article/index.vue
index e01b2dc6762a2103c7596e5fdbe239c609e2b35e..d3ec9cf607b4348440a6f39584122d2c19c9c911 100644
--- a/blog-vue/admin/src/views/content/article/index.vue
+++ b/blog-vue/admin/src/views/content/article/index.vue
@@ -1,29 +1,393 @@
-
- 文章管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 发布文章
+
+
+ 草稿箱
+
+
+ 删除文章
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 原创
+ 转载
+ 翻译
+
+
+
+
+
+
+
+
+
+ 自己可见
+ 全部可见
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.createTime | relativeTime }}
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
-
diff --git a/blog-vue/admin/src/views/content/category/index.vue b/blog-vue/admin/src/views/content/category/index.vue
index 6d5367f5ae1c6453b370c294a9168176b8f82402..c110d886ab6eaa2dc01215c680d5323205c6b3f9 100644
--- a/blog-vue/admin/src/views/content/category/index.vue
+++ b/blog-vue/admin/src/views/content/category/index.vue
@@ -1,29 +1,510 @@
-
- 分类
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+ 新增
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 所有人不可见
+ 所有人可见
+ 仅自己可见
+
+
+
+
+
+
+ {{ scope.row.createTime | dateFilter }}
+
+
+
+
+ {{ scope.row.updateTime | dateFilter }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击选择图片
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+ 取消
+
+
+ 保存
+
+
+
+
+
+
+
-
diff --git a/blog-vue/admin/src/views/content/tags/index.vue b/blog-vue/admin/src/views/content/tags/index.vue
index 9db192ad67329f75e95e0feadb9bf29a935f022d..00915a1bcb77487cbbdb35ab37350a76d4f85e09 100644
--- a/blog-vue/admin/src/views/content/tags/index.vue
+++ b/blog-vue/admin/src/views/content/tags/index.vue
@@ -1,29 +1,368 @@
-
- 标签管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+ 新增
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.name }}
+
+
+
+
+
+
+ {{ scope.row.createTime | dateFilter }}
+
+
+
+
+ {{ scope.row.updateTime | dateFilter }}
+
+ 未更新
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+
+ 保存
+
+
+
-
diff --git a/blog-vue/admin/src/views/login/Login.vue b/blog-vue/admin/src/views/login/Login.vue
index 7044aea94c4cc0d0ba78927de0c73fa042789056..813b0d283a4494b774291c2e5e9cf1b852677621 100644
--- a/blog-vue/admin/src/views/login/Login.vue
+++ b/blog-vue/admin/src/views/login/Login.vue
@@ -74,6 +74,7 @@
diff --git a/blog-vue/admin/src/views/system/role/index.vue b/blog-vue/admin/src/views/system/role/index.vue
index e0e2dbaad336e1964c457ac2bdbd14f554901f82..4428a4c7a48882e36e9bbcd05cc6b637c0d4e2d2 100644
--- a/blog-vue/admin/src/views/system/role/index.vue
+++ b/blog-vue/admin/src/views/system/role/index.vue
@@ -54,7 +54,13 @@
-
+
+
+
+ {{ scope.row.mark }}
+
+
+
@@ -70,11 +76,11 @@
编辑
删除
- handleCommand(command, scope.row)" style="margin-left: 10px;">
+ handleCommand(command, scope.row)" style="margin-left: 10px;">
更多
页面权限
- 资源权限
+ 资源权限
@@ -137,6 +143,45 @@
+
+
+
+
+
+
+
+
+
+ 取消
+
+
+ 保存
+
+
+
+
+
diff --git a/blog-vue/admin/src/views/website/config/Other.vue b/blog-vue/admin/src/views/website/config/Other.vue
index 8ceef4efedb6ac6698ed5ff06cf23d03d6e09bd8..6498c9ebb08a5a674740efdc0cc1aa454b62cb50 100644
--- a/blog-vue/admin/src/views/website/config/Other.vue
+++ b/blog-vue/admin/src/views/website/config/Other.vue
@@ -15,7 +15,7 @@
-
+
@@ -193,7 +193,8 @@ export default {
diff --git a/blog-vue/blog/src/assets/fonts/OldEnglishFive-2.ttf b/blog-vue/blog/src/assets/fonts/OldEnglishFive-2.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..29e54d33bf88fa9e3474be3a7dd3ddf10566bad8
Binary files /dev/null and b/blog-vue/blog/src/assets/fonts/OldEnglishFive-2.ttf differ
diff --git a/blog-vue/blog/src/assets/images/iPhone-background.jpg b/blog-vue/blog/src/assets/images/iPhone-background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ea43031952217f87bf21d991d70f0d2eb9cc661f
Binary files /dev/null and b/blog-vue/blog/src/assets/images/iPhone-background.jpg differ
diff --git a/blog-vue/blog/src/assets/logo.png b/blog-vue/blog/src/assets/logo.png
index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..316a4c54119350d9a0cdb32ffcf324a1a32b1cf6 100644
Binary files a/blog-vue/blog/src/assets/logo.png and b/blog-vue/blog/src/assets/logo.png differ
diff --git a/blog-vue/blog/src/components/ArticleList/index.vue b/blog-vue/blog/src/components/ArticleList/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..99f39017e597defd9e444792748a3a072a01f363
--- /dev/null
+++ b/blog-vue/blog/src/components/ArticleList/index.vue
@@ -0,0 +1,381 @@
+
+
+
+
+
+
+
+
+
+ 置顶
+ 文章标题
+
+
文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要
+
+
+
+
+
+
+
+
+
+
+ 文章标题
+
+
文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要
+
+
+
+
+
+
+
+
+
+
+ 文章标题
+
+
章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要
+
+
+
+
+
+
+
+
+
+
+ 文章标题
+
+
章摘要文章摘要文章摘要文章摘要文章摘要
+
+
+
+
+
+
+
+
+
+
+ 文章标题
+
+
文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要文章摘要
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/Banner/index.vue b/blog-vue/blog/src/components/Banner/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..31823deea1acfe77f371ad38882b0605b9c68240
--- /dev/null
+++ b/blog-vue/blog/src/components/Banner/index.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
YK'S Blog
+
+
+
+
+
+
+ fas fa-chevron-down
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/ButtonGroup/index.vue b/blog-vue/blog/src/components/ButtonGroup/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b22149cacbf621f71620383aff5cdfabfc26a850
--- /dev/null
+++ b/blog-vue/blog/src/components/ButtonGroup/index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ mdi-close
+
+
+ mdi-account-circle
+
+
+
+
+ mdi-plus
+
+
+ mdi-delete
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/HelloWorld.vue b/blog-vue/blog/src/components/HelloWorld.vue
deleted file mode 100644
index 8e9507112721585155b2b48617b60bdc6f254012..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/components/HelloWorld.vue
+++ /dev/null
@@ -1,151 +0,0 @@
-
-
-
-
-
-
-
-
-
- Welcome to Vuetify
-
-
-
- For help and collaboration with other Vuetify developers,
-
please join our online
- Discord Community
-
-
-
-
-
- What's next?
-
-
-
-
- {{ next.text }}
-
-
-
-
-
-
- Important Links
-
-
-
-
- {{ link.text }}
-
-
-
-
-
-
- Ecosystem
-
-
-
-
- {{ eco.text }}
-
-
-
-
-
-
-
-
diff --git a/blog-vue/blog/src/components/Pagination/index.vue b/blog-vue/blog/src/components/Pagination/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..82ae57354047c630e681019de5cbad4d2f5e6167
--- /dev/null
+++ b/blog-vue/blog/src/components/Pagination/index.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/SvgIcon/index.vue b/blog-vue/blog/src/components/SvgIcon/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..bd6e1f2dac654258d0251f42876bef5c74d2a27c
--- /dev/null
+++ b/blog-vue/blog/src/components/SvgIcon/index.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/Wave/index.vue b/blog-vue/blog/src/components/Wave/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f110877352b02710a713520c428db434234082c8
--- /dev/null
+++ b/blog-vue/blog/src/components/Wave/index.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/components/banner/Banner.vue b/blog-vue/blog/src/components/banner/Banner.vue
deleted file mode 100644
index d4c2fcf355fa8533d03273fac5ad475d28061bf2..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/components/banner/Banner.vue
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- fas fa-chevron-down
-
-
-
-
-
-
-
-
diff --git a/blog-vue/blog/src/filter/index.js b/blog-vue/blog/src/filter/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..9dc34acb6dd2bbd84e78c8938289a8841f7f4f90
--- /dev/null
+++ b/blog-vue/blog/src/filter/index.js
@@ -0,0 +1,63 @@
+import dayjs from 'dayjs'
+import rt from 'dayjs/plugin/relativeTime'
+import 'dayjs/locale/zh-cn'
+
+// 具体时间
+const dateFilter = (val, format = 'YYYY-MM-DD HH:mm:ss') => {
+ // 如果当前的 val 可以被转换为一个数字
+ if (!isNaN(val)) {
+ val = parseInt(val)
+ }
+ return dayjs(val).format(format)
+}
+
+dayjs.extend(rt)
+// 相对时间
+function relativeTime (val) {
+ // 如果当前的 val 可以被转换为一个数字
+ if (!isNaN(val)) {
+ val = parseInt(val)
+ }
+ return dayjs().locale('zh-cn').to(dayjs(val))
+}
+
+// 格式化文件大小,从字节转换为对应单位
+const fileSizeFilter = (bytes) => {
+ // 如果文件大小为0则直接返回0字节
+ if (bytes === 0) return '0B'
+ // 1k为1024字节
+ const k = 1024
+ // 定义数组存储不同文件大小单位的后缀(B、KB、MB等),以及相应的指数值
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
+ // 当前文件大小在哪个单位之内,并向下取整到最接近的整数
+ const i = Math.floor(Math.log(bytes) / Math.log(k))
+ // 计算文件大小,并使用toPrecision方法将其保留3位有效数字
+ const size = (bytes / Math.pow(k, i)).toPrecision(3)
+ const unit = sizes[i]
+ // 返回带有文件大小和单位后缀的字符串
+ return `${size} ${unit}`
+}
+
+// 文件类型过滤器
+const fileTypeFilter = (type) => {
+ // 将字符串转为小写
+ type = type.toLowerCase()
+ // 图片类型
+ const picture = ['.jpg', '.jpeg', '.png', '.gif']
+ if (picture.includes(type)) {
+ return '图片'
+ }
+ const office = ['.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx']
+ if (office.includes(type)) {
+ return '文档'
+ }
+ return '未知'
+}
+
+// 时间戳显示过滤器
+export default {
+ dateFilter,
+ relativeTime,
+ fileSizeFilter,
+ fileTypeFilter
+}
diff --git a/blog-vue/blog/src/icons/index.js b/blog-vue/blog/src/icons/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..cab068073bd69b52f8b1520b3d0ac4a46d025552
--- /dev/null
+++ b/blog-vue/blog/src/icons/index.js
@@ -0,0 +1,16 @@
+// 1. 导入所有的 svg 图标
+// 2. 完成 SvgIcon 的全局注册
+import SvgIcon from '@/components/SvgIcon'
+
+// 1. 导入所有的 svg 图标
+// 扫描 svg 文件夹,不含有子目录,要匹配所有以 .svg 结尾的文件
+const svgRequire = require.context('./svg', false, /\.svg$/)
+// 返回了一个 Require 函数,可以接收一个 request 的参数,用于 require 导入
+// 该函数提供了三个属性,可以通过 svgRequire.keys() 获得所有 svg 图标
+// 遍历图标,把图标作为 request 参数导入到 svgRequire 导入函数中,完成本地 svg 图标的导入
+svgRequire.keys().forEach((svgIcon) => svgRequire(svgIcon))
+
+// 2. 完成 SvgIcon 的全局注册
+export default (app) => {
+ app.component('svg-icon', SvgIcon)
+}
diff --git a/blog-vue/blog/src/icons/svg/IP.svg b/blog-vue/blog/src/icons/svg/IP.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3e8f0c3b6d8ae01b1c614ff7bbd6de247efaf111
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/IP.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/QQ.svg b/blog-vue/blog/src/icons/svg/QQ.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cbbaf4a4424e0d1879f140f9072f7020cafe780e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/QQ.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/access.svg b/blog-vue/blog/src/icons/svg/access.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bacf120e8079e48e87455f7293e8d076425ccfda
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/access.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/add.svg b/blog-vue/blog/src/icons/svg/add.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4e0e4672484cc9d4e639ba1801dd6481f5719e6c
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/add.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/analysis.svg b/blog-vue/blog/src/icons/svg/analysis.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3f8a3cc64bc07a5cdef8b5d34c2c48ed3fdba773
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/analysis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/article-create.svg b/blog-vue/blog/src/icons/svg/article-create.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dcbaa185a845cdf01a7fdfb849c224ce9c4af011
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/article-create.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/article-ranking.svg b/blog-vue/blog/src/icons/svg/article-ranking.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ab721040afd39856faa25be0667c34242a30f98d
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/article-ranking.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/article.svg b/blog-vue/blog/src/icons/svg/article.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1d36e79f4d6c22ccfe94661b39981f31334c5ebe
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/article.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/battery.svg b/blog-vue/blog/src/icons/svg/battery.svg
new file mode 100644
index 0000000000000000000000000000000000000000..87b0d37d334cdaeae8d9af25c57f156597ccc4f8
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/battery.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/bug.svg b/blog-vue/blog/src/icons/svg/bug.svg
new file mode 100644
index 0000000000000000000000000000000000000000..05a150dc3905ef7516e1b57b32bc49510c0f8763
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/bug.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/build.svg b/blog-vue/blog/src/icons/svg/build.svg
new file mode 100644
index 0000000000000000000000000000000000000000..97c468863287f37a472112dd18e717cd94471ee6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/build.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/button.svg b/blog-vue/blog/src/icons/svg/button.svg
new file mode 100644
index 0000000000000000000000000000000000000000..904fddc854ad072e887306b5d6e6539dca960f2b
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/button.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/cascader.svg b/blog-vue/blog/src/icons/svg/cascader.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e256024f9dd4142bef13a999df669d88ee9200f4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/cascader.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/category.svg b/blog-vue/blog/src/icons/svg/category.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2ced25ad62334f84453ca2e192b89d8f38394139
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/category.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/change-theme.svg b/blog-vue/blog/src/icons/svg/change-theme.svg
new file mode 100644
index 0000000000000000000000000000000000000000..74b6949319fc73ce24cfcdab378056bc0247b1d2
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/change-theme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/chart.svg b/blog-vue/blog/src/icons/svg/chart.svg
new file mode 100644
index 0000000000000000000000000000000000000000..27728fb0baae52c4430ef9d0332d1f0bbedaa564
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/checkbox.svg b/blog-vue/blog/src/icons/svg/checkbox.svg
new file mode 100644
index 0000000000000000000000000000000000000000..013fd3a273eec2b45ea72843d7b3334c5d750530
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/checkbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/clipboard.svg b/blog-vue/blog/src/icons/svg/clipboard.svg
new file mode 100644
index 0000000000000000000000000000000000000000..90923ff6282ec6aa403936bbe44b68e134cb9bcf
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/clipboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/code.svg b/blog-vue/blog/src/icons/svg/code.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ed4d23cf4021f72022fa8f99ff89154c3741b3d6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/comment.svg b/blog-vue/blog/src/icons/svg/comment.svg
new file mode 100644
index 0000000000000000000000000000000000000000..70eea21bb2014e38392eefde787684b97ded0465
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/comment.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/comments.svg b/blog-vue/blog/src/icons/svg/comments.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c8676acf8d48aa5f54d1dee20435efe31a6a154c
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/comments.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/component.svg b/blog-vue/blog/src/icons/svg/component.svg
new file mode 100644
index 0000000000000000000000000000000000000000..29c345809974665d96ed42e261734bc56c37b826
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/component.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/computer.svg b/blog-vue/blog/src/icons/svg/computer.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a18b23e86585c6025725ac899eeb7a996588c2d2
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/computer.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/content.svg b/blog-vue/blog/src/icons/svg/content.svg
new file mode 100644
index 0000000000000000000000000000000000000000..74f83dba09a54d3e98c8395ea06fc6c28ac6b637
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/content.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/dashboard.svg b/blog-vue/blog/src/icons/svg/dashboard.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5317d37029218281b4da78eccf40ce9e94941301
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/dashboard.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/date-range.svg b/blog-vue/blog/src/icons/svg/date-range.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fda571e700372418697293910f77957c07290cfe
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/date-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/date.svg b/blog-vue/blog/src/icons/svg/date.svg
new file mode 100644
index 0000000000000000000000000000000000000000..52dc73eecfaca2c315b54d99ba7030a79e549f36
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/date.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/delete.svg b/blog-vue/blog/src/icons/svg/delete.svg
new file mode 100644
index 0000000000000000000000000000000000000000..520c8c8b58302e75c975c36223ea7e1cd938bfa3
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/delete.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/dict.svg b/blog-vue/blog/src/icons/svg/dict.svg
new file mode 100644
index 0000000000000000000000000000000000000000..484937730750b9adb201df69abef2503760f7229
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/dict.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/documentation.svg b/blog-vue/blog/src/icons/svg/documentation.svg
new file mode 100644
index 0000000000000000000000000000000000000000..704312289e6ad2f65a3ace229e73fb5c7f3e94e9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/documentation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/download.svg b/blog-vue/blog/src/icons/svg/download.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c8969513493e7ac96725dcf2f01400e7c2c63df6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/drag.svg b/blog-vue/blog/src/icons/svg/drag.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4185d3cee36930abb40838829058537388cc6dc6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/drag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/druid.svg b/blog-vue/blog/src/icons/svg/druid.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a2b4b4ed2481975a127506a9516e5c12417ac93e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/druid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/edit.svg b/blog-vue/blog/src/icons/svg/edit.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d26101f29893ee07c575d62caf1d0d684e76b3bc
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/edit.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/education.svg b/blog-vue/blog/src/icons/svg/education.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7bfb01d180f9ac9cf45429412129a7b7be4d8daf
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/education.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/element.svg b/blog-vue/blog/src/icons/svg/element.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4bf4cfc43c1393da3535166bb0c840741541b8df
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/element.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/email.svg b/blog-vue/blog/src/icons/svg/email.svg
new file mode 100644
index 0000000000000000000000000000000000000000..74d25e21a6f98b90b34b2b8d2ce2dd90b38eb000
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/example.svg b/blog-vue/blog/src/icons/svg/example.svg
new file mode 100644
index 0000000000000000000000000000000000000000..46f42b5323d11686c44b573729db0df115343d5c
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/example.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/excel.svg b/blog-vue/blog/src/icons/svg/excel.svg
new file mode 100644
index 0000000000000000000000000000000000000000..74d97b802f8bf84caf4c623e77f890f74516d50f
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/excel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/exit-fullscreen.svg b/blog-vue/blog/src/icons/svg/exit-fullscreen.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0b1603bddd62d5060645ef44e6fc6f6bcf60afb9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/exit-fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/eye-open.svg b/blog-vue/blog/src/icons/svg/eye-open.svg
new file mode 100644
index 0000000000000000000000000000000000000000..88dcc98e6c80d145e3807f00a6e5ed91ce5371e4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/eye-open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/eye.svg b/blog-vue/blog/src/icons/svg/eye.svg
new file mode 100644
index 0000000000000000000000000000000000000000..16ed2d872d1cadeb36fc9101cbf77397fbf4fd70
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/fire.svg b/blog-vue/blog/src/icons/svg/fire.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3aee8ec27d0e55bd232a671336e429842572e29b
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/fire.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/form.svg b/blog-vue/blog/src/icons/svg/form.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dcbaa185a845cdf01a7fdfb849c224ce9c4af011
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/form.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/fullscreen.svg b/blog-vue/blog/src/icons/svg/fullscreen.svg
new file mode 100644
index 0000000000000000000000000000000000000000..655f0b6cc1ae2e6d3b7c1316bf044cdc3a1566ee
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/fullscreen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/gitee.svg b/blog-vue/blog/src/icons/svg/gitee.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3710358ac8162a9781b1b01bbd5ff1a69c2dc6b0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/gitee.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/github.svg b/blog-vue/blog/src/icons/svg/github.svg
new file mode 100644
index 0000000000000000000000000000000000000000..db0a0d4304731d60794b853cd8c06f4556fc95e9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/guide.svg b/blog-vue/blog/src/icons/svg/guide.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b2710017933e9088e002873cde651bac54cea449
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/guide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/hamburger-closed.svg b/blog-vue/blog/src/icons/svg/hamburger-closed.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4a70141921067b18d616b6b7c79eecf50ae575b9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/hamburger-closed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/hamburger-opened.svg b/blog-vue/blog/src/icons/svg/hamburger-opened.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f76a0550796bcbc689193e4cd47d44900e12d5cb
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/hamburger-opened.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/home.svg b/blog-vue/blog/src/icons/svg/home.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2cbcf7cbf42d2684b6f02f653663a7f9fd006000
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/home.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/icon.svg b/blog-vue/blog/src/icons/svg/icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..82be8eeedb3d3cc9161f4a4094ac20d2f91e3970
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/input.svg b/blog-vue/blog/src/icons/svg/input.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ab91381e6df0ec6307d677f0dce75b9c9d95e5d5
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/input.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/international.svg b/blog-vue/blog/src/icons/svg/international.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e9b56eee2c59774f0431186b9af2ba7593bffcc0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/international.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/introduce.svg b/blog-vue/blog/src/icons/svg/introduce.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7b9862ecd642bea666fc1e297fbc6c6308e1de57
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/introduce.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/java.svg b/blog-vue/blog/src/icons/svg/java.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8574e9347130ffa3fecb8ae36764e3ce42f12ac1
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/java.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/job.svg b/blog-vue/blog/src/icons/svg/job.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2a93a25195e29eba9c76d7ce5bdd6f1a71f9aee4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/job.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/language.svg b/blog-vue/blog/src/icons/svg/language.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f163ce651b131ece4e3dbfb73c9ef8813781699b
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/language.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/left.svg b/blog-vue/blog/src/icons/svg/left.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1234a1c10431d463dc52ab35e2e234e38199c3c4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/link.svg b/blog-vue/blog/src/icons/svg/link.svg
new file mode 100644
index 0000000000000000000000000000000000000000..48197ba4da7b4314a16a19a698fe96c1b2a7ad0b
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/link.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/logininfor.svg b/blog-vue/blog/src/icons/svg/logininfor.svg
new file mode 100644
index 0000000000000000000000000000000000000000..267f84474266c8ebe6ae61925a7c1cb4e3814079
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/logininfor.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/logout.svg b/blog-vue/blog/src/icons/svg/logout.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3c3d8f923c0ae8be4056dafb142fd56999c43c87
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/logout.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/menu.svg b/blog-vue/blog/src/icons/svg/menu.svg
new file mode 100644
index 0000000000000000000000000000000000000000..863515e955464f0eea7b78030b912132789ad5b0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/menu.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/message.svg b/blog-vue/blog/src/icons/svg/message.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a05d2ae0d1dfb5faf5325a3c049a93e7f4680053
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/message.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/money.svg b/blog-vue/blog/src/icons/svg/money.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c1580de10e1f1c504f7bfcaba4f41b24d816d8f2
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/monitor.svg b/blog-vue/blog/src/icons/svg/monitor.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bc308cb0f5f7afff5ba4b17fca06c721de14764e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/monitor.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/moon.svg b/blog-vue/blog/src/icons/svg/moon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fad12b62e5d9a43c7f207048ffbbc27ae6e776ec
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/moon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/more.svg b/blog-vue/blog/src/icons/svg/more.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f7d8e05cd940a22cd059783f1995876a63288b66
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/more.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/mybatis-plus.svg b/blog-vue/blog/src/icons/svg/mybatis-plus.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c73cb184f7e8c9003bcd805e7ad3db9799050f7d
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/mybatis-plus.svg
@@ -0,0 +1,370 @@
+
+
+
+
diff --git a/blog-vue/blog/src/icons/svg/nested.svg b/blog-vue/blog/src/icons/svg/nested.svg
new file mode 100644
index 0000000000000000000000000000000000000000..06713a86c6a3db0cd5eeb26cf81ffb27b538e9a1
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/nested.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/notice.svg b/blog-vue/blog/src/icons/svg/notice.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b9b5bf5ad208505c373437a68de0f9466b566dc1
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/notice.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/number.svg b/blog-vue/blog/src/icons/svg/number.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ad5ce9af2aaf54c43444a81535a599c7cd004be1
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/number.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/online.svg b/blog-vue/blog/src/icons/svg/online.svg
new file mode 100644
index 0000000000000000000000000000000000000000..330a202935b887236b34200b163f6a421bad592f
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/online.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/password.svg b/blog-vue/blog/src/icons/svg/password.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e291d85df22083536bb2e40fd18120ef6d6b141d
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/pdf.svg b/blog-vue/blog/src/icons/svg/pdf.svg
new file mode 100644
index 0000000000000000000000000000000000000000..957aa0cc3597c1277ded6367716067c9874552e0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/pdf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/people.svg b/blog-vue/blog/src/icons/svg/people.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2bd54aeb728197066e987e8d8d98364f50ed5be6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/people.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/peoples.svg b/blog-vue/blog/src/icons/svg/peoples.svg
new file mode 100644
index 0000000000000000000000000000000000000000..aab852e52a33a5823fcdd5302111b45f4a4e13a7
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/peoples.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/permission.svg b/blog-vue/blog/src/icons/svg/permission.svg
new file mode 100644
index 0000000000000000000000000000000000000000..947c983188f73b1098b6dd8e758d33c94f3a1473
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/permission.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/personnel-info.svg b/blog-vue/blog/src/icons/svg/personnel-info.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d51fc08f9fdcb8feb62d910e2397b6eab9fcf8bf
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/personnel-info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/personnel-manage.svg b/blog-vue/blog/src/icons/svg/personnel-manage.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9aaedac157b0742f20ab54a15523073b829a1143
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/personnel-manage.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/personnel.svg b/blog-vue/blog/src/icons/svg/personnel.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0b146de180adef02b2b641628d801a90d25ef166
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/personnel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/phone.svg b/blog-vue/blog/src/icons/svg/phone.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ab8e8c4e5b3765c92e98fd2ecfeeda892661ac17
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/phone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/picture-fill.svg b/blog-vue/blog/src/icons/svg/picture-fill.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7429e1868bb64cf4ff0d7fe442cd856b707ffc16
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/picture-fill.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/picture.svg b/blog-vue/blog/src/icons/svg/picture.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7d8d91f9fc835b7bf3e2f4c8dde1dc1573f48d86
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/picture.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/post.svg b/blog-vue/blog/src/icons/svg/post.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2922c613bddb847c6f411e27b5ad874f577a633f
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/post.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/question.svg b/blog-vue/blog/src/icons/svg/question.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cf75bd4bea55c98003ca97828fcb3e37d5c4450e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/question.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/rabbitmq.svg b/blog-vue/blog/src/icons/svg/rabbitmq.svg
new file mode 100644
index 0000000000000000000000000000000000000000..59dc8ceb5978b55d0ed04f7c5f8ff455ae42dc02
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/rabbitmq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/radio.svg b/blog-vue/blog/src/icons/svg/radio.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0cde34521ae7b5bddaaa2372a4472fc05f9135a4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/radio.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/rate.svg b/blog-vue/blog/src/icons/svg/rate.svg
new file mode 100644
index 0000000000000000000000000000000000000000..aa3b14d7de73af3e7d4a6c9dc41836a11003208e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/rate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/redis.svg b/blog-vue/blog/src/icons/svg/redis.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2f1d62dfc373a4921815fa1058c73916ca15aca2
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/redis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/refresh.svg b/blog-vue/blog/src/icons/svg/refresh.svg
new file mode 100644
index 0000000000000000000000000000000000000000..db1b120b1c49cbdc7175e5377dfbaba0e7e648dd
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/refresh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/reward.svg b/blog-vue/blog/src/icons/svg/reward.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5626794955a68b33596335fd618409bea1a96630
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/reward.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/right.svg b/blog-vue/blog/src/icons/svg/right.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4d746be9355fe1948ad91400a66d79319a3cc05d
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/role.svg b/blog-vue/blog/src/icons/svg/role.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bfacc9e2192c2748fa6a3616a0fa63a1ceef448a
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/role.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/row.svg b/blog-vue/blog/src/icons/svg/row.svg
new file mode 100644
index 0000000000000000000000000000000000000000..07809922264539672115e4866d65c3e1e6032df9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/row.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/search.svg b/blog-vue/blog/src/icons/svg/search.svg
new file mode 100644
index 0000000000000000000000000000000000000000..84233ddaa98a45d407cacdc869d9b7634f72d390
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/search.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/security.svg b/blog-vue/blog/src/icons/svg/security.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a48fa329dbb278fa68067d33a4ab6bf211da41d6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/security.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/select.svg b/blog-vue/blog/src/icons/svg/select.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d6283828bac413d2a10d4f6e267d7ba2f5f10aea
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/select.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/server.svg b/blog-vue/blog/src/icons/svg/server.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ca37b001e93c40a81dc3f9302795edc70e502457
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/shopping.svg b/blog-vue/blog/src/icons/svg/shopping.svg
new file mode 100644
index 0000000000000000000000000000000000000000..87513e7c5fdd4260e48f7ead3501e0b9f9798c2a
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/signal.svg b/blog-vue/blog/src/icons/svg/signal.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c9efa48600d1a6f2c986a6f1944720c15d0b0128
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/signal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/skill.svg b/blog-vue/blog/src/icons/svg/skill.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a3b7312186fbd305a0c0ab902e2cc01e2f804f32
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/skill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/spring-boot.svg b/blog-vue/blog/src/icons/svg/spring-boot.svg
new file mode 100644
index 0000000000000000000000000000000000000000..09bdab4b8d6552bff8bb68ffaaf381a75e8b0bca
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/spring-boot.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/star.svg b/blog-vue/blog/src/icons/svg/star.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6cf86e66add37b5562fc4793dd9a218163f485b4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/star.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/sun.svg b/blog-vue/blog/src/icons/svg/sun.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5eed7f028e0a5e805630bfbe374385d5bd6f456a
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/sun.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/swagger.svg b/blog-vue/blog/src/icons/svg/swagger.svg
new file mode 100644
index 0000000000000000000000000000000000000000..05d4e7bcee9829539a977c51c36560c4aad98c80
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/swagger.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/switch.svg b/blog-vue/blog/src/icons/svg/switch.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0ba61e38d72b9af4c6e5a400baa0561f06d8d0c0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/switch.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/system.svg b/blog-vue/blog/src/icons/svg/system.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dba28cf6fd1ad6992421638659003fdb0e07c032
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/system.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/tab.svg b/blog-vue/blog/src/icons/svg/tab.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b4b48e48085bb21b18da5386a6d4692a70301977
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/tab.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/table.svg b/blog-vue/blog/src/icons/svg/table.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0e3dc9dea5a0ff92d617cdfee4f10ef600a02433
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/tags.svg b/blog-vue/blog/src/icons/svg/tags.svg
new file mode 100644
index 0000000000000000000000000000000000000000..53179377a1613b9f29c490e2faa801aa965a5643
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/tags.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/textarea.svg b/blog-vue/blog/src/icons/svg/textarea.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2709f292ea23aa87ba87d5ee2622c94994c1fbfb
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/textarea.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/time-range.svg b/blog-vue/blog/src/icons/svg/time-range.svg
new file mode 100644
index 0000000000000000000000000000000000000000..13c1202bdafa11c73c89ee472f3c810e834dfeca
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/time-range.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/time.svg b/blog-vue/blog/src/icons/svg/time.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b376e32a608f33f906cda57da3df809c0413a44e
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/time.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/tool.svg b/blog-vue/blog/src/icons/svg/tool.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c813067ef74945d7fcd48c7092131abd20375168
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/tool.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/top.svg b/blog-vue/blog/src/icons/svg/top.svg
new file mode 100644
index 0000000000000000000000000000000000000000..fcaca224525a5a9d00bfad1709181478bd7b29f9
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/top.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/tree-table.svg b/blog-vue/blog/src/icons/svg/tree-table.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8aafdb829ebbe289f352a533d9764c4f9395e533
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/tree-table.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/tree.svg b/blog-vue/blog/src/icons/svg/tree.svg
new file mode 100644
index 0000000000000000000000000000000000000000..dd4b7dd22fe06076831935066592caec48e323b0
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/tree.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/upload.svg b/blog-vue/blog/src/icons/svg/upload.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bae49c0a50e7bc0683d82e3af2e0064adc4108ad
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/upload.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/user.svg b/blog-vue/blog/src/icons/svg/user.svg
new file mode 100644
index 0000000000000000000000000000000000000000..0ba0716a62a92f7cb2f2e6f3c745ace2be6b3b31
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/validCode.svg b/blog-vue/blog/src/icons/svg/validCode.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cfb10214c53ee9e021a97733c9b5b5c39e388787
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/validCode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/vue.svg b/blog-vue/blog/src/icons/svg/vue.svg
new file mode 100644
index 0000000000000000000000000000000000000000..28b34ebda5c282398bc35e98c279ae4c38e47a36
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/vue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/wechat.svg b/blog-vue/blog/src/icons/svg/wechat.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c586e5511722843f9c741d7530db146dfab864a4
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/wechat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/wifi.svg b/blog-vue/blog/src/icons/svg/wifi.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f785d220840800469693bcd16e16b91ad4acb58d
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/wifi.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/icons/svg/zip.svg b/blog-vue/blog/src/icons/svg/zip.svg
new file mode 100644
index 0000000000000000000000000000000000000000..f806fc4825739224caf820e6edf54e808961b1a6
--- /dev/null
+++ b/blog-vue/blog/src/icons/svg/zip.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/blog-vue/blog/src/layout/Footer.vue b/blog-vue/blog/src/layout/Footer.vue
index 379baacd31d5b59fd95516197a64fbee5b2aa907..5d772719b1df9a58898f0b6e04b65c49024ecb9c 100644
--- a/blog-vue/blog/src/layout/Footer.vue
+++ b/blog-vue/blog/src/layout/Footer.vue
@@ -1,13 +1,6 @@
-
-
+
+
- {{ new Date().getFullYear() }} — 世纪末的架构师
+ {{ new Date().getFullYear() }} — Vuetify
@@ -38,27 +31,42 @@
export default {
name: 'BlogFooter',
- data() {
+ data () {
return {
icons: [
'mdi-facebook',
'mdi-twitter',
'mdi-linkedin',
- 'mdi-instagram',
- ],
- };
+ 'mdi-instagram'
+ ]
+ }
},
- mounted() {
-
+ computed: {
+ cover () {
+ // 定义要拼接的CSS
+ const cover = 'https://www.static.banq.ink/photos/fa74451429d178e2682a3cf6e833c019.png'
+ // 循环获取首页的图片
+ // this.$store.getters.navBarList.forEach((item) => {
+ // if (item.label === 'home') {
+ // cover = item.image
+ // }
+ // })
+ // 返回对应的CSS
+ return 'background: url(' + cover + ') bottom center / cover no-repeat;background-attachment: fixed;'
+ }
},
- methods: {
-
+ mounted () {
+
},
-};
+
+ methods: {
+
+ }
+}
-
\ No newline at end of file
+
diff --git a/blog-vue/blog/src/layout/Header.vue b/blog-vue/blog/src/layout/Header.vue
deleted file mode 100644
index b3bfaa95c4f37d1a2b072aed506ee11fd4ec64ed..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/layout/Header.vue
+++ /dev/null
@@ -1,346 +0,0 @@
-
-
-
-
-
-
-
diff --git a/blog-vue/blog/src/layout/NavBar.vue b/blog-vue/blog/src/layout/NavBar.vue
new file mode 100644
index 0000000000000000000000000000000000000000..25a2e97ec4262325953afebe8654ce2fea91c58a
--- /dev/null
+++ b/blog-vue/blog/src/layout/NavBar.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+ 雅康的个人博客
+
+
+
+
+
+ -
+
+
+ 首页
+
+
+ -
+
+
+ 归档
+
+
+ -
+
+
+ 分类
+
+
+ -
+
+
+ 标签
+
+
+ -
+
+
+ 关于
+
+
+ -
+
+
+ 友链
+
+
+ -
+
+
+ 留言
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 站内搜索
+
+
+
+
+
+
+
+
+ 切换主题
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/layout/SideBar/components/Phone.vue b/blog-vue/blog/src/layout/SideBar/components/Phone.vue
new file mode 100644
index 0000000000000000000000000000000000000000..50d0058d64663435f093b3b080250f731f22184b
--- /dev/null
+++ b/blog-vue/blog/src/layout/SideBar/components/Phone.vue
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/layout/SideBar/index.vue b/blog-vue/blog/src/layout/SideBar/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6b48dd951aa18ef48fb551ea5bf447454ae665f4
--- /dev/null
+++ b/blog-vue/blog/src/layout/SideBar/index.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/main.js b/blog-vue/blog/src/main.js
index 9da1ebe734d5732de010cfbd8f41a83107364237..b8b628c1138b61917df74c6fad031438be70e348 100644
--- a/blog-vue/blog/src/main.js
+++ b/blog-vue/blog/src/main.js
@@ -3,48 +3,35 @@ import App from './App.vue'
import router from './router'
import store from './store'
import vuetify from './plugins/vuetify'
-// ========================= 导入外部组件 =========================
-import axios from "axios";
-import animate from "animate.css";
-import NProgress from "nprogress";
-import VueTypedJs from "vue-typed-js";
-// ========================= 导入CSS样式 =========================
-import './style/css/index.css'
-import "nprogress/nprogress.css";
+import SvgIcons from './icons'
+import filters from './filter/index'
-Vue.prototype.$axios = axios;
+import './styles/index.scss'
+import 'animate.css'
+import 'nprogress/nprogress.css'
-Vue.use(NProgress)
-Vue.use(animate)
-Vue.use(VueTypedJs)
+import './permission'
-// 调整进度条的速度
-NProgress.configure({ easing: "ease", speed: 400 });
+import WowPlugin from './plugins/wow'
+import ToastPlugin from './plugins/toast'
+import VueTypedJs from 'vue-typed-js'
+import animated from 'wowjs/css/libs/animate.css'
+import axios from 'axios'
-// 路由导航守卫
-// to:当前位置,from:从哪来
-router.beforeEach(async (to, from, next) => {
- // 开启页面进度条
- NProgress.start();
- // 修改网站的标题
- // if (to.meta.title) {
- // window.document.title = to.meta.title;
- // }
- // 放行
- next();
-});
+Vue.config.productionTip = false
+Vue.prototype.$axios = axios
-router.afterEach((to, from) => {
- // 切换路由时返回到顶部
- window.scrollTo({
- top: 0,
- behavior: "instant",
- });
- // 关闭进度条
- NProgress.done();
-});
+// 全局组件挂载
+Vue.use(SvgIcons)
+Vue.use(animated)
+Vue.use(VueTypedJs)
+Vue.use(WowPlugin)
+Vue.use(ToastPlugin)
-Vue.config.productionTip = false
+// 时间过滤器
+Object.keys(filters).forEach((key) => {
+ Vue.filter(key, filters[key])
+})
new Vue({
router,
diff --git a/blog-vue/blog/src/permission.js b/blog-vue/blog/src/permission.js
new file mode 100644
index 0000000000000000000000000000000000000000..29eb8a542c7148f7e31b8c848ffc9778f03dcbfe
--- /dev/null
+++ b/blog-vue/blog/src/permission.js
@@ -0,0 +1,23 @@
+import router from './router'
+import NProgress from 'nprogress'
+
+// 调整进度条的速度
+NProgress.configure({ easing: 'ease', speed: 500 })
+
+// to:当前位置,from:从哪来
+router.beforeEach(async (to, from, next) => {
+ // 开启页面进度条
+ NProgress.start()
+ // 放行
+ next()
+})
+
+router.afterEach((to, from) => {
+ // 关闭进度条
+ NProgress.done()
+ // 切换路由时返回到顶部
+ window.scrollTo({
+ top: 0,
+ behavior: 'instant'
+ })
+})
diff --git a/blog-vue/blog/src/plugins/toast.js b/blog-vue/blog/src/plugins/toast.js
new file mode 100644
index 0000000000000000000000000000000000000000..98c0de47223d2fa7e083c91a722cb721f132a115
--- /dev/null
+++ b/blog-vue/blog/src/plugins/toast.js
@@ -0,0 +1,48 @@
+import Vue from 'vue'
+import Toast from 'vue-toastification'
+import 'vue-toastification/dist/index.css'
+
+// 配置自定义通知弹窗
+const options = {
+ // 通知消息出现和消失时的动画效果
+ transition: 'Vue-Toastification__bounce',
+ // 同时通知的最大数量
+ maxToasts: 3,
+ // 是否最新的通知应该显示在顶部
+ newestOnTop: true,
+ // 在页面上的哪个位置显示通知,top-right
+ position: 'top-center',
+ // 通知消息显示的时间
+ timeout: 3000,
+ // 当用户点击通知时是否关闭通知
+ closeOnClick: true,
+ // 用户切换到其他标签或应用程序时,通知是否暂停显示
+ pauseOnFocusLoss: true,
+ // 当用户将鼠标悬停在通知上时,是否暂停通知
+ pauseOnHover: false,
+ // 用户是否可以拖动通知消息
+ draggable: true,
+ // 用户在通知消息上拖动时的拖动百分比
+ draggablePercent: 0.7,
+ // 关闭按钮是否在用户将鼠标悬停在通知上时显示
+ showCloseButtonOnHover: false,
+ // 是否在通知消息上显示进度条
+ hideProgressBar: true,
+ // 通知消息上的关闭按钮的类型
+ closeButton: 'button',
+ // 是否显示通知消息的图标
+ icon: true,
+ // 通知消息是否应该从右到左显示
+ rtl: false
+}
+
+// 安装 Toast 插件
+Vue.use(Toast, options)
+
+// 定义全局 Vue 插件
+export default {
+ install (Vue) {
+ // 将 toast 实例挂载到 Vue 原型上
+ Vue.prototype.$toast = Vue.$toast
+ }
+}
diff --git a/blog-vue/blog/src/plugins/vuetify.js b/blog-vue/blog/src/plugins/vuetify.js
index 9d7d04ea0e8f3a7fdce54b70adf0e42ec1f31250..13c7b0adbc91697ef7f43dfde902af6065ef11e4 100644
--- a/blog-vue/blog/src/plugins/vuetify.js
+++ b/blog-vue/blog/src/plugins/vuetify.js
@@ -1,12 +1,11 @@
-import Vue from 'vue';
-import Vuetify from 'vuetify/lib';
+import Vue from 'vue'
+import Vuetify from 'vuetify/lib/framework'
import '@fortawesome/fontawesome-free/css/all.css'
-Vue.use(Vuetify);
+Vue.use(Vuetify)
export default new Vuetify({
- // 添加 Vuetify 的图标
icons: {
- iconfont: 'fa', // 'mdi' || 'mdiSvg' || 'md' || 'fa' || 'fa4' || 'faSvg'
- },
-});
+ iconfont: 'fa'
+ }
+})
diff --git a/blog-vue/blog/src/plugins/wow.js b/blog-vue/blog/src/plugins/wow.js
new file mode 100644
index 0000000000000000000000000000000000000000..ccd40584598231ea1d5a702ed8d3f3b504d04d94
--- /dev/null
+++ b/blog-vue/blog/src/plugins/wow.js
@@ -0,0 +1,25 @@
+import { WOW } from 'wowjs'
+import 'animate.css'
+
+// 创建全局实例
+const wow = new WOW({
+ // 需要执行动画的元素的 class
+ boxClass: 'wow',
+ // animation.css 动画的 class
+ animateClass: 'animated',
+ // 距离可视区域多少开始执行动画
+ offset: 0,
+ // 是否在移动设备上执行动画
+ mobile: true,
+ // 异步加载的内容是否有效
+ live: true
+})
+
+wow.init()
+
+// 定义全局 Vue 插件
+export default {
+ install (Vue) {
+ Vue.prototype.$wow = wow // 将 wow 实例挂载到 Vue 原型上
+ }
+}
diff --git a/blog-vue/blog/src/router/index.js b/blog-vue/blog/src/router/index.js
index e13a2d647252c97de818233fd434ca4fc1151190..79ffbc8a1c38240b62364bd3fb97561f9adebd97 100644
--- a/blog-vue/blog/src/router/index.js
+++ b/blog-vue/blog/src/router/index.js
@@ -6,13 +6,36 @@ Vue.use(VueRouter)
const routes = [
{
path: '/',
- name: 'Home',
- component: () => import('../views/home/Home.vue')
+ name: 'BlogHome',
+ component: () => import('../views/Home/index.vue')
},
{
path: '/about',
- name: 'About',
- component: () => import('../views/About.vue')
+ name: 'BlogAbout',
+ component: () => import('../views/About/index.vue')
+ },
+ {
+ path: '/category',
+ name: 'BlogCategory',
+ component: () => import('../views/Category/index.vue')
+ },
+ {
+ path: '/tags',
+ name: 'BlogTags',
+ redirect: 'tags/list',
+ component: () => import('../views/Tags/index.vue'),
+ children: [
+ {
+ path: 'list',
+ name: 'TagsList',
+ component: () => import('../views/Tags/components/TagsList.vue')
+ },
+ {
+ path: 'article-list/:id',
+ name: 'TagsArticle',
+ component: () => import('../views/Tags/components/TagsArticle.vue')
+ }
+ ]
}
]
@@ -22,4 +45,30 @@ const router = new VueRouter({
routes
})
+// 获取原型对象push函数
+const originalPush = VueRouter.prototype.push
+// 获取原型对象replace函数
+const originalReplace = VueRouter.prototype.replace
+
+/**
+ * 修改原型对象中的push函数
+ *
+ * @param {*} location 当前要跳转路径的对象
+ * @returns
+ */
+VueRouter.prototype.push = function push (location) {
+ // this指向当前VueRouter的实例对象
+ return originalPush.call(this, location).catch(err => err)
+}
+
+/**
+ * 修改原型对象中的replace函数
+ *
+ * @param {*} location 当前要跳转路径的对象
+ * @returns
+ */
+VueRouter.prototype.replace = function replace (location) {
+ return originalReplace.call(this, location).catch(err => err)
+}
+
export default router
diff --git a/blog-vue/blog/src/settings.js b/blog-vue/blog/src/settings.js
new file mode 100644
index 0000000000000000000000000000000000000000..19b82ae20fd201c0acc612f8db112c5b0b383cd8
--- /dev/null
+++ b/blog-vue/blog/src/settings.js
@@ -0,0 +1,6 @@
+module.exports = {
+ /**
+ * 博客主题 深色主题blog-dark,浅色主题blog-light
+ */
+ blogTheme: 'blog-light'
+}
diff --git a/blog-vue/blog/src/store/getter.js b/blog-vue/blog/src/store/getter.js
new file mode 100644
index 0000000000000000000000000000000000000000..649a34c2a5cee1a6cd78d794094ac2057e07a45a
--- /dev/null
+++ b/blog-vue/blog/src/store/getter.js
@@ -0,0 +1,9 @@
+// 快速获取数据
+const getters = {
+ // 主题色
+ blogTheme: state => state.settings.blogTheme,
+ // 是否展示Banner
+ showBanner: state => state.settings.showBanner
+}
+
+export default getters
diff --git a/blog-vue/blog/src/store/index.js b/blog-vue/blog/src/store/index.js
index 332b916928b6051df5dc7286ead3e04ee067f4ab..4615bc5f7f3fd7b7887868b1bf679f8216874394 100644
--- a/blog-vue/blog/src/store/index.js
+++ b/blog-vue/blog/src/store/index.js
@@ -1,15 +1,16 @@
import Vue from 'vue'
import Vuex from 'vuex'
+import getters from './getter'
+import settings from './modules/settings'
+
Vue.use(Vuex)
-export default new Vuex.Store({
- state: {
- },
- mutations: {
- },
- actions: {
- },
+const store = new Vuex.Store({
+ getters,
modules: {
+ settings
}
})
+
+export default store
diff --git a/blog-vue/blog/src/store/modules/settings.js b/blog-vue/blog/src/store/modules/settings.js
new file mode 100644
index 0000000000000000000000000000000000000000..a087d5545863cef80f175817239435cb0b33e6e1
--- /dev/null
+++ b/blog-vue/blog/src/store/modules/settings.js
@@ -0,0 +1,32 @@
+import defaultSettings from '../../settings'
+// 从默认的主题配置中获取到默认参数
+const { blogTheme } = defaultSettings
+// 获取本地配置的参数
+const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
+
+const setting = {
+ namespaced: true,
+ state: {
+ // 主题色
+ blogTheme: storageSetting.blogTheme || blogTheme,
+ // 是否展示Banner
+ showBanner: false
+ },
+ mutations: {
+ /**
+ * 修改主题配置
+ */
+ CHANGE_SETTING: (state) => {
+ state.blogTheme = state.blogTheme === 'blog-light' ? 'blog-dark' : 'blog-light'
+ }
+ },
+ // 异步处理方式
+ actions: {
+ // 修改布局设置
+ changeSetting ({ commit }) {
+ commit('CHANGE_SETTING')
+ }
+ }
+}
+
+export default setting
diff --git a/blog-vue/blog/src/style/css/index.css b/blog-vue/blog/src/style/css/index.css
deleted file mode 100644
index 5bdfaa8b3af88300c0435890de3e8ada1fb23db6..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/style/css/index.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/* 修改垂直滚动条 */
-::-webkit-scrollbar {
- width: 7px; /* 设置滚动条宽度 */
-}
-::-webkit-scrollbar-track {
- background-color: #eee; /* 设置轨道颜色 */
-}
-::-webkit-scrollbar-thumb {
- border-radius: 3px;
- background-color: #cbcaca; /* 设置拖拽块颜色 */
-}
-/* 修改水平滚动条,与上面类似,只需将“vertical”改为“horizontal”即可 */
-::-webkit-scrollbar-horizontal {
- height: 10px;
-}
-::-webkit-scrollbar-track-piece {
- background-color:#eee;
-}
-
-::-webkit-scrollbar-thumb:hover{
- border-radius: 3px;
- background-color:#a9a9a9
-}
-
- ::-webkit-resizer{
- display:none
- }
-
- .v-toolbar__content, .v-toolbar__extension {
- align-items: center;
- display: flex;
- position: relative;
- z-index: 0;
- width: 100%;
- padding: 12px 16px;
-}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/blog.scss b/blog-vue/blog/src/styles/blog.scss
new file mode 100644
index 0000000000000000000000000000000000000000..f7f6849275a1292fa48e4e1f684884091f31f261
--- /dev/null
+++ b/blog-vue/blog/src/styles/blog.scss
@@ -0,0 +1,17 @@
+.page-container {
+ margin-top: 56px;
+ display: flex;
+ margin-bottom: 2rem;
+}
+.card-container {
+ width: calc(100% - 16.5rem);
+ margin-left: 1.25rem;
+}
+.sidebar-container {
+ width: 16.5rem;
+}
+.blog-container {
+ display: flex;
+ margin-top: 12px;
+ margin-bottom: 2rem;
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/font.scss b/blog-vue/blog/src/styles/font.scss
new file mode 100644
index 0000000000000000000000000000000000000000..6ae0d69ae0993e78d8ccf08bff6a3d9db5a53fd2
--- /dev/null
+++ b/blog-vue/blog/src/styles/font.scss
@@ -0,0 +1,6 @@
+@font-face {
+ /* 字体名称 */
+ font-family: 'OldEnglish';
+ /* 字体文件路径 */
+ src: url('../assets/fonts/OldEnglishFive-2.ttf');
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/index.scss b/blog-vue/blog/src/styles/index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..97098591e678e58ccb10e928c1d8bf5c9cdac0a8
--- /dev/null
+++ b/blog-vue/blog/src/styles/index.scss
@@ -0,0 +1,7 @@
+@import './style.scss';
+@import './transition.scss';
+@import './theme-light.scss';
+@import './theme-dark.scss';
+@import './font.scss';
+@import './variable.scss';
+@import './blog.scss';
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/style.scss b/blog-vue/blog/src/styles/style.scss
new file mode 100644
index 0000000000000000000000000000000000000000..47b3e9aaf9d3625d194359ad00db6ed5c33ccb58
--- /dev/null
+++ b/blog-vue/blog/src/styles/style.scss
@@ -0,0 +1,41 @@
+body {
+ margin: 0;
+ padding: 0;
+ cursor: url(https://blog-springbot.oss-cn-hangzhou.aliyuncs.com/css/default.cur),default !important;
+}
+a, button, img {
+ cursor: url(https://blog-springbot.oss-cn-hangzhou.aliyuncs.com/css/pointer.cur),default !important;
+}
+
+// #app {
+// background-color: #efefef;
+// background-image: linear-gradient(90deg,rgba(60,10,30,.04) 3%,transparent 0),linear-gradient(1turn,rgba(60,10,30,.04) 3%,transparent 0);
+// background-size: 20px 20px;
+// background-position: 50%;
+// background-repeat: repeat;
+// transition: all 0.5s;
+// }
+
+/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
+::-webkit-scrollbar {
+ overflow-x: hidden;
+ background-color: #f5f5f5;
+ width: 8px;
+}
+
+/*滚动条里面小方块 */
+::-webkit-scrollbar-thumb {
+ border-radius: 1.25rem;
+ background-clip: padding-box;
+ background-color: #dedddf;
+ background-image: linear-gradient(45deg, rgba(253,253,253,0.5) 25%,transparent 0,transparent 50%,rgba(253,253,253,0.5) 0, rgba(253,253,253,0.5) 75%,transparent 0,transparent);
+ transition: all 0.5s;
+}
+::-webkit-scrollbar-thumb:hover {
+ background-color: #ccaff8;
+ background-image: linear-gradient(45deg, rgba(253,253,253,0.5) 25%,transparent 0,transparent 50%,rgba(253,253,253,0.5) 0, rgba(253,253,253,0.5) 75%,transparent 0,transparent)
+}
+
+a {
+ text-decoration: none !important;
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/theme-dark.scss b/blog-vue/blog/src/styles/theme-dark.scss
new file mode 100644
index 0000000000000000000000000000000000000000..4add02ea4f6cafd1d3b863a4494bd3ed3481a47e
--- /dev/null
+++ b/blog-vue/blog/src/styles/theme-dark.scss
@@ -0,0 +1,318 @@
+// 暗色主题
+
+.blog-dark {
+ transition: all 0.5s !important;
+ background-color: #302f2f !important;
+ background-image: linear-gradient(90deg,rgba(189, 186, 187, 0.04) 3%,transparent 0),linear-gradient(1turn,rgba(189, 186, 187, 0.04) 3%,transparent 0) !important;
+ background-size: 20px 20px !important;
+ background-position: 50% !important;
+ background-repeat: repeat !important;
+ transition: all 0.5s !important;
+
+ // 顶部导航栏样式
+ .navbar-body {
+ display: flex;
+ justify-content: right;
+ height: 100%;
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+ }
+ .navbar-item {
+ font-size: 16px;
+ color: #fff;
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ padding-bottom: 5px;
+ a {
+ color: #fff;
+ }
+
+ .svg-icon {
+ margin-right: 5px;
+ font-size: 14px;
+ color: #fff;
+ }
+ }
+ .navbar-item::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 3px; /* 设置横线的高度 */
+ border-radius: 2px;
+ background-color: #fff; /* 设置横线的颜色 */
+ transform: scaleX(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .navbar-item:hover::after {
+ transform: scaleX(1); /* 悬停时横线出现 */
+ }
+
+ // 菜单高亮
+ .navbar-active.navbar-item::after {
+ transform: scaleX(1)
+ }
+
+ .navbar-item-scroll {
+ font-size: 16px;
+ position: relative;
+ display: inline-block;
+ padding-bottom: 5px;
+ color: #fff;
+ cursor: pointer;
+
+ a {
+ color: #fff;
+ }
+ .svg-icon {
+ margin-right: 5px;
+ font-size: 14px;
+ color: #fff;
+ }
+ }
+
+ .navbar-item-scroll::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 3px; /* 设置横线的高度 */
+ border-radius: 2px;
+ background-color: #fff; /* 设置横线的颜色 */
+ transform: scaleX(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .navbar-item-scroll:hover::after {
+ transform: scaleX(1); /* 悬停时横线出现 */
+ }
+
+ // 菜单高亮
+ .navbar-active.navbar-item-scroll {
+ a {
+ color: #9999ff;
+ text-shadow: 0 4px 20px #9999ff;
+ }
+ .svg-icon {
+ color: #9999ff;
+ }
+ }
+ .navbar-active.navbar-item-scroll::after {
+ background-color: #9999ff;
+ transform: scaleX(1)
+ }
+
+ ul {
+ list-style: none;
+
+ li {
+ margin: 0 0.5rem;
+ }
+
+ a {
+ display: flex;
+ align-items: center;
+ text-decoration: none;
+ }
+ }
+ .blog-avatar {
+ width: 60px;
+ transition: all 0.5s;
+ cursor: pointer;
+ }
+ .blog-avatar:hover {
+ transform: rotate(360deg);
+ }
+ .logo {
+ display: flex;
+ align-items: center;
+
+ span {
+ font-weight: 700;
+ margin-left: 5px;
+ font-size: 18px;
+ color: #fff;
+ }
+ }
+ .logo-scroll {
+ display: flex;
+ align-items: center;
+
+ span {
+ font-weight: 700;
+ margin-left: 5px;
+ font-size: 18px;
+ color: #fff;
+ }
+ }
+
+ // 动态标签
+ .dynamics-container {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 1.25rem;
+ color: #fff;
+ font-size: 16px;
+ background-color: #232323;
+ margin-bottom: 1.25rem;
+ height: 3rem;
+ border-radius: 12px;
+ // border: 1px solid #000;
+ transition: all 0.5s;
+
+ .dynamics-title {
+ color: #fff;
+ font-weight: 700;
+ font-size: 18px;
+ display: flex;
+ align-items: center;
+
+ .svg-icon {
+ font-size: 20px;
+ margin-right: 0.7rem;
+ animation-name: jump;
+ animation-duration: 0.75s;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+ }
+ }
+ }
+
+ .dynamics-container:hover {
+ // border: 1px solid #9999ff;
+ box-shadow: 0 2px 12px 0 rgba(153,153,255, 0.5);
+
+ .dynamics-body {
+ transition: all .3s;
+ color: #9999ff;;
+ }
+ }
+
+ // 博客主页
+ .home-container {
+ color: #fff;
+ border-radius: 0.875rem;
+ background-color: #232323;
+ padding: 20px;
+
+ .v-carousel__controls {
+ align-items: center;
+ background: rgba(0, 0, 0, 0.3) !important;
+ bottom: 0;
+ display: flex;
+ height: 50px;
+ justify-content: right;
+ list-style-type: none;
+ position: absolute;
+ width: 100%;
+ z-index: 1;
+ }
+
+ .v-item-group {
+ flex: 0 1 auto;
+ position: relative;
+ border-radius: 10px !important;
+ max-width: 100%;
+ transition: 0.3s cubic-bezier(0.25, 0.8, 0.5, 1);
+ }
+ }
+ .index_title {
+ color: #9999ff;
+ }
+
+ // 精选分类标题
+ .index_hot-container {
+ border-bottom: 1px solid #414243;
+
+ .index_hot-all:hover {
+ color: #9999ff
+ }
+ }
+
+ // 最新文章标题
+ .index_article-container {
+ border-bottom: 1px solid #414243;
+ }
+ // 单篇文章边框
+ .index_article-item {
+ border-bottom: 1px solid #414243;
+
+ &> .index_article-info{
+ // 文章标题
+ &> .article-title> a {
+ font-weight: 600;
+ transition: color .35s;
+ color: #999;
+ }
+ &> .article-title> a:hover {
+ color: #9999ff;
+ }
+ // 文章标签
+ &> .article-meta> .meta-item> .item-tags {
+ color: #606266;
+ }
+ &> .article-meta> .meta-item> .item-tags:hover {
+ color: #9999ff;
+ }
+
+ // 文章分类
+ &> .article-meta> .item-category {
+ color: #606266;
+ }
+ &> .article-meta> .item-category:hover {
+ color: #9999ff;
+ }
+ }
+ }
+
+ .index_article-item::after {
+ content: "";
+ position: absolute;
+ left: -1.25rem;
+ top: 1rem;
+ height: 2rem;
+ width: 4px;
+ border-radius: 2px;
+ background-color: #9999ff; /* 设置横线的颜色 */
+ transform: scaleY(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .index_article-item:hover::after {
+ transform: scaleY(1); /* 悬停时横线出现 */
+ }
+ // 查看更多按钮
+ .index_article-more-btn {
+ background-color: #9999ff !important;
+ }
+
+ // 标签页标签列表
+ .tags-container {
+ &> .tags-item {
+ background: #454545;
+ border: 1px solid #454545;
+
+ em {
+ color: #9999ff;
+ }
+ }
+
+ &> .tags-item:hover {
+ transition: .5s;
+ background-color: #9999ff;
+
+ span {
+ color: #ebeef5;
+ }
+ em {
+ color: #ebeef5;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/theme-light.scss b/blog-vue/blog/src/styles/theme-light.scss
new file mode 100644
index 0000000000000000000000000000000000000000..3e6cc9784f2b129717e48a78fb91e38a08cf11c7
--- /dev/null
+++ b/blog-vue/blog/src/styles/theme-light.scss
@@ -0,0 +1,319 @@
+// 亮色主题
+.blog-light {
+ background-color: #efefef !important;
+ background-image: linear-gradient(90deg,rgba(60,10,30,.04) 3%,transparent 0),linear-gradient(1turn,rgba(60,10,30,.04) 3%,transparent 0) !important;
+ background-size: 20px 20px !important;
+ background-position: 50% !important;
+ background-repeat: repeat !important;
+ transition: all 0.5s !important;
+
+ // 顶部导航栏样式
+ .navbar-body {
+ display: flex;
+ justify-content: right;
+ height: 100%;
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+ }
+ .navbar-item {
+ font-size: 16px;
+ color: #fff;
+ cursor: pointer;
+ position: relative;
+ display: inline-block;
+ padding-bottom: 5px;
+ a {
+ color: #fff;
+ }
+
+ .svg-icon {
+ margin-right: 5px;
+ font-size: 14px;
+ color: #fff;
+ }
+ }
+ .navbar-item::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 3px; /* 设置横线的高度 */
+ border-radius: 2px;
+ background-color: #fff; /* 设置横线的颜色 */
+ transform: scaleX(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .navbar-item:hover::after {
+ transform: scaleX(1); /* 悬停时横线出现 */
+ }
+
+ // 菜单高亮
+ .navbar-active.navbar-item::after {
+ transform: scaleX(1)
+ }
+
+ .navbar-item-scroll {
+ font-size: 16px;
+ position: relative;
+ display: inline-block;
+ padding-bottom: 5px;
+ color: #333;
+ cursor: pointer;
+
+ a {
+ color: #333;
+ }
+ .svg-icon {
+ margin-right: 5px;
+ font-size: 14px;
+ color: #333;
+ }
+ }
+
+ .navbar-item-scroll::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 3px; /* 设置横线的高度 */
+ border-radius: 2px;
+ background-color: #333; /* 设置横线的颜色 */
+ transform: scaleX(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .navbar-item-scroll:hover::after {
+ transform: scaleX(1); /* 悬停时横线出现 */
+ }
+
+ // 菜单高亮
+ .navbar-active.navbar-item-scroll {
+ a {
+ color: #fb6c28;
+ text-shadow: 0 4px 20px #fb6c28;
+ // background-color: #fb6c28;
+ }
+ .svg-icon {
+ color: #fb6c28;
+ }
+ }
+ .navbar-active.navbar-item-scroll::after {
+ background-color: #fb6c28;
+ transform: scaleX(1)
+ }
+
+ ul {
+ list-style: none;
+
+ li {
+ margin: 0 0.5rem;
+ }
+
+ a {
+ display: flex;
+ align-items: center;
+ text-decoration: none;
+ }
+ }
+ .blog-avatar {
+ width: 60px;
+ transition: all 0.5s;
+ cursor: pointer;
+ }
+ .blog-avatar:hover {
+ transform: rotate(360deg);
+ }
+ .logo {
+ display: flex;
+ align-items: center;
+
+ span {
+ font-weight: 700;
+ margin-left: 5px;
+ font-size: 18px;
+ color: #fff;
+ }
+ }
+ .logo-scroll {
+ display: flex;
+ align-items: center;
+
+ span {
+ font-weight: 700;
+ margin-left: 5px;
+ font-size: 18px;
+ color: #000;
+ }
+ }
+
+ // 动态标签
+ .dynamics-container {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background-color: #fff;
+ color: #000;
+ font-size: 16px;
+ padding: 0 1.25rem;
+ margin-bottom: 1.25rem;
+ height: 3rem;
+ border-radius: 12px;
+ // border: 1px solid #fff;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
+ transition: all .3s;
+
+ .dynamics-title {
+ font-weight: 700;
+ font-size: 18px;
+ display: flex;
+ align-items: center;
+
+ .svg-icon {
+ font-size: 20px;
+ margin-right: 0.7rem;
+ animation-name: jump;
+ animation-duration: 0.75s;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+ }
+ }
+ }
+
+ .dynamics-container:hover {
+ // border: 1px solid #fb6c28;
+ box-shadow: 0 2px 12px 0 rgba(251,108,40, 0.5);
+
+ .dynamics-body {
+ transition: all .3s;
+ color: #fb6c28;
+ }
+ }
+
+ // 博客主页
+ .home-container {
+ color: #000;
+ border-radius: 0.875rem;
+ background-color: #fff;
+ padding: 20px;
+
+ .v-carousel__controls {
+ align-items: center;
+ background: rgba(0, 0, 0, 0.3) !important;
+ bottom: 0;
+ display: flex;
+ height: 50px;
+ justify-content: right;
+ list-style-type: none;
+ position: absolute;
+ width: 100%;
+ z-index: 1;
+ }
+
+ .v-item-group {
+ flex: 0 1 auto;
+ position: relative;
+ border-radius: 10px !important;
+ max-width: 100%;
+ transition: 0.3s cubic-bezier(0.25, 0.8, 0.5, 1);
+ }
+
+ }
+ .index_title {
+ color: #fb6c28;
+ }
+
+ // 精选分类标题
+ .index_hot-container {
+ border-bottom: 1px solid #ebeef5;
+
+ .index_hot-all:hover {
+ color: #fb6c28
+ }
+ }
+
+ // 最新文章标题
+ .index_article-container {
+ border-bottom: 1px solid #ebeef5;
+ }
+ // 单篇文章边框
+ .index_article-item {
+ border-bottom: 1px solid #ebeef5;
+
+ &> .index_article-info{
+ // 文章标题
+ &> .article-title> a {
+ font-weight: 600;
+ transition: color .35s;
+ color: #303133;
+ }
+ &> .article-title> a:hover {
+ color: #fb6c28;
+ }
+ // 文章标签
+ &> .article-meta> .meta-item> .item-tags {
+ color: #303133;
+ }
+ &> .article-meta> .meta-item> .item-tags:hover {
+ color: #fb6c28;
+ }
+
+ // 文章分类
+ &> .article-meta> .item-category {
+ color: #606266;
+ }
+ &> .article-meta> .item-category:hover {
+ color: #fb6c28;
+ }
+ }
+ }
+
+ .index_article-item::after {
+ content: "";
+ position: absolute;
+ left: -1.25rem;
+ top: 1rem;
+ height: 2rem;
+ width: 4px;
+ border-radius: 2px;
+ background-color: #fb6c28; /* 设置横线的颜色 */
+ transform: scaleY(0); /* 初始时横线不可见 */
+ transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
+ }
+
+ .index_article-item:hover::after {
+ transform: scaleY(1); /* 悬停时横线出现 */
+ }
+ // 查看更多按钮
+ .index_article-more-btn {
+ background-color: #fb6c28 !important;
+ }
+
+ // 标签页标签列表
+ .tags-container {
+ &> .tags-item {
+ color: #888;
+ background: #e9f2ff;
+ border: 1px solid #e4e7ed;
+
+ em {
+ color: #fb6c28;
+ }
+ }
+
+ &> .tags-item:hover {
+ transition: .5s;
+ background-color: #fb6c28;
+
+ span {
+ color: #efefef;
+ }
+ em {
+ color: #efefef;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/transition.scss b/blog-vue/blog/src/styles/transition.scss
new file mode 100644
index 0000000000000000000000000000000000000000..ceb46fb18d2bce72ae69d73af43b3bb694b9b920
--- /dev/null
+++ b/blog-vue/blog/src/styles/transition.scss
@@ -0,0 +1,285 @@
+// 响应比
+@media (max-width: 1263px) {
+ .blog-container {
+ &> .card-container> .home-container> .swiper-wrapper {
+ height: 400px !important;
+ }
+
+ &> .card-container> .home-container> .index_article-list> .index_article-item {
+ height: 10rem;
+
+ &> .index_article-cover {
+ width: 12rem;
+ height: 8rem;
+ }
+
+ &> .index_article-info {
+ width: calc(100% - (7.5rem + 15px));
+
+ &> .article-meta> .meta-item> .item-view {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: none;
+ }
+ }
+ }
+ }
+
+
+ // 为了让带ArticleList组件的页面响应比仍然生效
+ .page-container> .card-container> .home-container> .tags-article-container> .index_article-list> .index_article-item {
+ height: 10rem;
+
+ &> .index_article-cover {
+ width: 12rem;
+ height: 8rem;
+ }
+
+ &> .index_article-info {
+ width: calc(100% - (7.5rem + 15px));
+
+ &> .article-meta> .meta-item> .item-view {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: none;
+ }
+ }
+ }
+}
+
+@media (min-width: 769px) and (max-width: 960px) {
+ .banner-container {
+ height: calc(90vh) !important;
+ }
+ .sidebar-container {
+ display: none;
+ }
+ .blog-container {
+ &> .card-container {
+ width: 100%;
+ margin-left: 0;
+
+ &> .home-container {
+ &> .swiper-wrapper {
+ height: 350px !important;
+ }
+
+ &> .index_article-list {
+ &> .index_article-item {
+ height: 12rem;
+
+ .index_article-cover {
+ width: 16.875rem;
+ height: 10rem;
+ }
+
+ &> .index_article-info {
+ width: calc(100% - 210px);
+
+ &> .article-meta> .meta-item> .item-view {
+ display: flex;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: flex;
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ .page-container {
+ &> .card-container {
+ width: 100%;
+ margin-left: 0;
+
+ &> .home-container {
+ &> .swiper-wrapper {
+ height: 350px !important;
+ }
+
+ &> .index_article-list {
+ &> .index_article-item {
+ height: 12rem;
+
+ .index_article-cover {
+ width: 16.875rem;
+ height: 10rem;
+ }
+
+ &> .index_article-info {
+ width: calc(100% - 210px);
+
+ &> .article-meta> .meta-item> .item-view {
+ display: flex;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: flex;
+ }
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+
+}
+
+@media (max-width: 768px) {
+ .banner-container {
+ height: calc(70vh) !important;
+ }
+ .blog-container {
+ width: 100% !important;
+ padding: 0 !important;
+
+ &> .sidebar-container {
+ display: none;
+ }
+
+ &> .card-container {
+ width: 100%;
+ margin-left: 0;
+
+ &> .home-container {
+ &> .swiper-wrapper {
+ height: 300px !important;
+ }
+
+ &> .index_hot-list {
+ grid-template-columns: repeat(2,1fr);
+ gap: 10px;
+ }
+ }
+ }
+ }
+
+ .page-container {
+ width: 100% !important;
+ padding: 0 !important;
+
+ &> .sidebar-container {
+ display: none;
+ }
+
+ &> .card-container {
+ width: 100%;
+ margin-left: 0;
+ }
+ }
+
+ .index_article-info {
+ &> .article-meta> .meta-item> .item-view {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-tags {
+ display: none;
+ }
+ }
+}
+
+@media (max-width: 560px) {
+ .blog-container {
+ padding: 0 !important;
+ margin: 0 !important;
+
+ &> .card-container {
+
+ &> .home-container {
+ border-radius: 0;
+
+ &> .swiper-wrapper {
+ width: 100%;
+ height: 220px !important;
+ }
+
+ &> .index_article-list {
+ &> .index_article-item {
+ height: 7rem;
+
+ &> .index_article-cover {
+ width: 7.5rem;
+ height: 5rem;
+ }
+
+ .index_article-info {
+ // width: calc(100% - (7.5rem + 15px));
+
+ .article-abstract {
+ display: none;
+ }
+ .article-title {
+ margin-bottom: 2.1875rem;
+ }
+ &> .article-meta> .meta-item> .item-tags {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-view {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: none;
+ }
+ }
+ }
+ }
+ }
+
+ &> .dynamics-container {
+ display: none;
+ }
+ }
+ }
+
+ .page-container> .card-container> .home-container> .tags-article-container {
+ &> .index_article-list {
+ &> .index_article-item {
+ height: 7rem;
+
+ &> .index_article-cover {
+ width: 7.5rem;
+ height: 5rem;
+ }
+
+ .index_article-info {
+ // width: calc(100% - (7.5rem + 15px));
+
+ .article-abstract {
+ display: none;
+ }
+ .article-title {
+ margin-bottom: 2.1875rem;
+ }
+ &> .article-meta> .meta-item> .item-tags {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-view {
+ display: none;
+ }
+ &> .article-meta> .meta-item> .item-comment {
+ display: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+// 动画样式
+@keyframes jump {
+ 0%,
+ 100% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.2);
+ }
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/styles/variable.scss b/blog-vue/blog/src/styles/variable.scss
new file mode 100644
index 0000000000000000000000000000000000000000..d18fec5fddebc8f0f56fc6ac3eeb08e9193973f2
--- /dev/null
+++ b/blog-vue/blog/src/styles/variable.scss
@@ -0,0 +1,3 @@
+:export {
+
+}
\ No newline at end of file
diff --git a/blog-vue/blog/src/utils/request.js b/blog-vue/blog/src/utils/request.js
new file mode 100644
index 0000000000000000000000000000000000000000..c95a76b59c46f14ac82fc8c1167d6ea2e506797c
--- /dev/null
+++ b/blog-vue/blog/src/utils/request.js
@@ -0,0 +1,9 @@
+import axios from 'axios'
+
+const service = axios.create({
+ baseURL: '/api',
+ // 超时时间 => 15s
+ timeout: 15 * 1000
+})
+
+export default service
diff --git a/blog-vue/blog/src/utils/validate.js b/blog-vue/blog/src/utils/validate.js
new file mode 100644
index 0000000000000000000000000000000000000000..513e6c3e372f1f74ae54819f0633447f070f1095
--- /dev/null
+++ b/blog-vue/blog/src/utils/validate.js
@@ -0,0 +1,8 @@
+/**
+ * 判断是否为外部资源
+ * @param {*} path
+ */
+export function isExternal (path) {
+ // 只要是以 https、mailto、tel开头的则认为是外部资源
+ return /^(https?:|mailto:|tel:)/.test(path)
+}
diff --git a/blog-vue/blog/src/views/About.vue b/blog-vue/blog/src/views/About.vue
deleted file mode 100644
index 3fa28070de24f2055171ca2e20543881cb7fdf1c..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/views/About.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
This is an about page
-
-
diff --git a/blog-vue/blog/src/views/About/index.vue b/blog-vue/blog/src/views/About/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..bc2e8d91e2da9b1a7b83179a0de8949f6f574c10
--- /dev/null
+++ b/blog-vue/blog/src/views/About/index.vue
@@ -0,0 +1,29 @@
+
+
+
This is an about page
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/Category/index.vue b/blog-vue/blog/src/views/Category/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b6168a9999c95bd99e1c5de6657c97c688ab0eae
--- /dev/null
+++ b/blog-vue/blog/src/views/Category/index.vue
@@ -0,0 +1,29 @@
+
+
+ 这里是分类
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/Home/components/HelloWorld.vue b/blog-vue/blog/src/views/Home/components/HelloWorld.vue
new file mode 100644
index 0000000000000000000000000000000000000000..8dc779812f225099dcbcfbbade29a34127488a68
--- /dev/null
+++ b/blog-vue/blog/src/views/Home/components/HelloWorld.vue
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+ 动态
+
+
+ 这里是动态这里是动态这里是动态这里是动态这里是动里是动态这里是动态这里是动态
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 再见2022,再见我的大学生活
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/Home/index.vue b/blog-vue/blog/src/views/Home/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7aa9e892b55468dcd5281bb870182c56f379dfd0
--- /dev/null
+++ b/blog-vue/blog/src/views/Home/index.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/HomeView.vue b/blog-vue/blog/src/views/HomeView.vue
deleted file mode 100644
index 636303a678d43b9fdc7ce6fc30ba5799302e66a7..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/views/HomeView.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
diff --git a/blog-vue/blog/src/views/Tags/components/TagsArticle.vue b/blog-vue/blog/src/views/Tags/components/TagsArticle.vue
new file mode 100644
index 0000000000000000000000000000000000000000..be64cbfb53b9ed1147a6842a99f0b3c1918f96f1
--- /dev/null
+++ b/blog-vue/blog/src/views/Tags/components/TagsArticle.vue
@@ -0,0 +1,39 @@
+
+
+
+
+ 以下是 默认标签 的相关文章
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/Tags/components/TagsList.vue b/blog-vue/blog/src/views/Tags/components/TagsList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..4a3cb57d00a7ef2f43157ad15eed38ef0ede18d7
--- /dev/null
+++ b/blog-vue/blog/src/views/Tags/components/TagsList.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/Tags/index.vue b/blog-vue/blog/src/views/Tags/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e8ad9e3d5e366d5e6fdf204d14488fe9c1bd669c
--- /dev/null
+++ b/blog-vue/blog/src/views/Tags/index.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blog-vue/blog/src/views/home/Home.vue b/blog-vue/blog/src/views/home/Home.vue
deleted file mode 100644
index ee504db2cf847e8c15798d6dd378bbfe3c453ea2..0000000000000000000000000000000000000000
--- a/blog-vue/blog/src/views/home/Home.vue
+++ /dev/null
@@ -1,812 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 这是一款 Material Design 风格的 Hexo
- 主题,以简约的设计帮助你专注于写作,本篇文章可预览主题的样式及功能。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Vercel使用有不少需要仔细配置的地方,可惜的是,自定义Vercel缓存时间,Vercel重定向等使用方法略复杂,不是开箱即用,有一定使用门槛,故这里单独列一篇文章详细说明Vercel的一些高级使用方法!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Docker
- 是一种轻量级的虚拟机环境,可以隔离主机的运行环境,内核公用主机的,运行库和环境是
- Docker 私有的。运行 Docker
- 程序只比主机直接运行程序性能损失微乎其微。使用 Docker
- 你可以同时运行各种各样运行库环境而不用担心搞乱你的主机运行库环境!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 通过 Coding 持续集成同步 GitHub 仓库,实现自建图床功能
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 几行代码把自己博客的流量轻松变现
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 通过 Netlify CMS 实现在线编辑文章和修改主题配置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 想增加一些花里胡哨的功能又不想修改主题源代码?本文介绍 Hexo
- 官方支持的一种无侵入式的修改方式,适用于所有主题。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Fluid 1.8.4
- 版本支持自定义页脚内容了,群友常改的网站运行时长,这次无需再修改源代码。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECharts 是一个使用 JavaScript
- 实现的开源可视化库,涵盖各行业图表,满足各种需求,本文介绍如何在
- Hexo 博客中使用 ECharts 插件。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 在 Hexo 博客使用 NodePPT 插件实现演示功能
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/blog-vue/blog/vue.config.js b/blog-vue/blog/vue.config.js
index 2ae460b7a5a079f11a2e4db80dfa46d12b5a101d..05b48b3747080be485735ce3becfe3b8a4b7e49a 100644
--- a/blog-vue/blog/vue.config.js
+++ b/blog-vue/blog/vue.config.js
@@ -1,5 +1,42 @@
+// 使用svg图标时的路径处理
+const path = require('path')
+function resolve (dir) {
+ return path.join(__dirname, dir)
+}
+
module.exports = {
+ devServer: {
+ host: 'localhost',
+ port: 8080,
+ proxy: {
+ // 所有带'/api'请求的都要进行代理转发
+ '/api': {
+ // websocket
+ ws: false,
+ // 代理的目标地址
+ target: process.env.VUE_APP_BASE_URL,
+ // 配置跨域
+ changeOrigin: true,
+ // 将请求中的'/api'替换为空
+ pathRewrite: { '^/api': '' }
+ }
+ }
+ },
transpileDependencies: [
'vuetify'
- ]
+ ],
+ // 配置使用svg图标
+ chainWebpack (config) {
+ config.module.rule('svg').exclude.add(resolve('src/icons')).end()
+ config.module
+ .rule('icons')
+ .test(/\.svg$/)
+ .include.add(resolve('src/icons'))
+ .end()
+ .use('svg-sprite-loader')
+ .loader('svg-sprite-loader')
+ .options({
+ symbolId: 'icon-[name]'
+ }).end()
+ }
}
diff --git a/myblog.sql b/myblog.sql
index abf047e09aa45a98fc20076bc4dd38a19c44ee88..39252c36846ccfe3830f6e259fda865b89baa6ff 100644
--- a/myblog.sql
+++ b/myblog.sql
@@ -1,624 +1,842 @@
/*
Navicat Premium Data Transfer
- Source Server : blog@49.234.13.224
+ Source Server : MySQL@localhost
Source Server Type : MySQL
Source Server Version : 80013
- Source Host : 49.234.13.224:3306
+ Source Host : localhost:3306
Source Schema : myblog
Target Server Type : MySQL
Target Server Version : 80013
File Encoding : 65001
- Date: 28/07/2023 16:07:25
+ Date: 01/10/2023 21:26:32
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
+-- ----------------------------
+-- Table structure for tb_article
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_article`;
+CREATE TABLE `tb_article` (
+ `id` bigint(20) NOT NULL COMMENT '主键',
+ `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文章名称',
+ `cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文章封面',
+ `type` tinyint(1) NOT NULL COMMENT '文章类型:0 原创,1 转载,2翻译',
+ `summary` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文章摘要',
+ `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '文章内容',
+ `original_link` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '原文链接',
+ `allow_comment` tinyint(1) NULL DEFAULT NULL COMMENT '是否允许评论:1 允许 0 不允许',
+ `is_sticky` tinyint(1) NULL DEFAULT NULL COMMENT '是否置顶:1 置顶 0 不置顶',
+ `allow_donation` tinyint(1) NULL DEFAULT NULL COMMENT '是否开启打赏:1 开启',
+ `visibility` tinyint(1) NULL DEFAULT NULL COMMENT '可见范围 0 自己可见 1 全部可见',
+ `visit_count` int(11) NULL DEFAULT NULL COMMENT '浏览数量',
+ `comment_count` int(11) NULL DEFAULT NULL COMMENT '评论数量',
+ `create_address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '发布IP',
+ `create_location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '发布地址',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '发布时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `idx_title`(`title`) USING BTREE COMMENT '文章标题索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '文章表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of tb_article
+-- ----------------------------
+INSERT INTO `tb_article` VALUES (1704512382509776896, '测试', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 0, '摘要', '测试内容', NULL, 1, 1, 1, 0, 100, 100, '127.0.0.1 ', '内网地址', '2023-09-20 23:07:00', '2023-09-20 23:07:02');
+INSERT INTO `tb_article` VALUES (1704512382509776897, '这是一篇转载文章,测试标题', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 1, '摘要', '测试内容', NULL, 1, 1, 1, 0, 100, 100, '127.0.0.1 ', '内网地址', '2023-09-22 23:07:00', '2023-09-23 23:07:02');
+INSERT INTO `tb_article` VALUES (1704512382509776898, '这是一篇翻译文章,测试标题', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 2, '摘要', '测试内容', NULL, 1, 1, 1, 1, 100, 100, '127.0.0.1 ', '内网地址', '2023-09-23 23:07:00', '2023-09-23 23:07:02');
+
+-- ----------------------------
+-- Table structure for tb_blog_category
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_blog_category`;
+CREATE TABLE `tb_blog_category` (
+ `id` bigint(20) NOT NULL COMMENT '主键',
+ `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名称',
+ `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类描述',
+ `cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类图片',
+ `privacy_setting` tinyint(4) NOT NULL COMMENT '分类展示:0 不展示 1 公开 2 尽自己可见',
+ `count` int(11) NULL DEFAULT NULL COMMENT '文章数量',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `idx_privacy_setting`(`privacy_setting`) USING BTREE COMMENT '分类状态索引',
+ INDEX `idx_name`(`name`) USING BTREE COMMENT '分类名称索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '博客分类表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of tb_blog_category
+-- ----------------------------
+INSERT INTO `tb_blog_category` VALUES (1698725448252391424, '测试分类', '测试分类', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230604215201.jpeg', 0, 0, '2023-09-04 23:51:22', '2023-09-06 22:20:33');
+INSERT INTO `tb_blog_category` VALUES (1699078935502913536, '测试', '测试哈哈哈', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 2, 0, '2023-09-05 23:16:00', '2023-09-06 22:20:25');
+INSERT INTO `tb_blog_category` VALUES (1699085088492355584, '测试2', '测试', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530224316.jpg', 1, 0, '2023-09-05 23:40:27', '2023-09-27 22:41:18');
+
+-- ----------------------------
+-- Table structure for tb_blog_tags
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_blog_tags`;
+CREATE TABLE `tb_blog_tags` (
+ `id` bigint(20) NOT NULL COMMENT '主键',
+ `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标签名称',
+ `count` int(11) NULL DEFAULT NULL COMMENT '文章数量',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `idx_name`(`name`) USING BTREE COMMENT '标签名称索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '博客标签表' ROW_FORMAT = DYNAMIC;
+
+-- ----------------------------
+-- Records of tb_blog_tags
+-- ----------------------------
+INSERT INTO `tb_blog_tags` VALUES (1699074651667300352, '测试标签', 0, '2023-09-05 22:58:59', NULL);
+INSERT INTO `tb_blog_tags` VALUES (1699074689038548992, '测试标签2', 0, '2023-09-05 22:59:08', NULL);
+INSERT INTO `tb_blog_tags` VALUES (1699077363863650304, '完全没有注意到', 0, '2023-09-05 23:09:46', '2023-09-05 23:12:14');
+INSERT INTO `tb_blog_tags` VALUES (1699077658102464512, '啊啊啊啊啊', 0, '2023-09-05 23:10:56', '2023-09-05 23:13:32');
+INSERT INTO `tb_blog_tags` VALUES (1699077945127075840, '我去', 0, '2023-09-05 23:12:04', NULL);
+INSERT INTO `tb_blog_tags` VALUES (1699087064009539584, '我去2', 0, '2023-09-05 23:48:18', '2023-09-05 23:48:26');
+
-- ----------------------------
-- Table structure for tb_config
-- ----------------------------
DROP TABLE IF EXISTS `tb_config`;
-CREATE TABLE `tb_config` (
+CREATE TABLE `tb_config` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户默认头像',
- `notice` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '系统公告',
- `upload` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件上传策略:local 本地策略,oss OSS策略',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '用户默认头像',
+ `notice` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '系统公告',
+ `upload` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件上传策略:local 本地策略,oss OSS策略',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='系统配置表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统配置表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_config
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_config` (`id`, `avatar`, `notice`, `upload`, `create_time`, `update_time`) VALUES (1682761996493127680, 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', '尊敬的用户:
欢迎来到我的个人博客! 我是Dream_飞翔,非常感谢您的来访。这里是我分享自己生活、学习和工作中的一些体验与见解的地方。您可以随意浏览我的文章以及后台的所有页面,也可以在评论区分享您的想法和反馈。如果您有任何问题或建议,请与我联系,祝您生活愉快!
其他:
目前项目的技术栈为SpringBoot2,后续我会向SpringBoot3进行迁移
', 'oss', '2023-07-22 22:38:28', '2023-07-27 13:56:12');
-COMMIT;
+INSERT INTO `tb_config` VALUES (1682761996493127680, 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', '尊敬的用户:
欢迎来到我的个人博客! 我是Dream_飞翔,非常感谢您的来访。这里是我分享自己生活、学习和工作中的一些体验与见解的地方。您可以随意浏览我的文章以及后台的所有页面,也可以在评论区分享您的想法和反馈。如果您有任何问题或建议,请与我联系,祝您生活愉快!
其他:
目前项目的技术栈为SpringBoot2,后续我会向SpringBoot3进行迁移
', 'oss', '2023-07-22 22:38:28', '2023-08-27 20:02:40');
-- ----------------------------
-- Table structure for tb_file
-- ----------------------------
DROP TABLE IF EXISTS `tb_file`;
-CREATE TABLE `tb_file` (
+CREATE TABLE `tb_file` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件名称',
+ `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件名称',
`path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件存储位置',
- `src` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件访问路径',
- `size` bigint(20) DEFAULT NULL COMMENT '文件大小',
- `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件类型',
+ `src` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件访问路径',
+ `size` bigint(20) NULL DEFAULT NULL COMMENT '文件大小',
+ `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件类型',
`mode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上传模式',
- `user_id` bigint(20) DEFAULT NULL COMMENT '上传用户ID',
- `file_type_id` bigint(20) DEFAULT NULL COMMENT '文件分类ID',
- `md5` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件唯一标识(MD5哈希值)',
+ `user_id` bigint(20) NULL DEFAULT NULL COMMENT '上传用户ID',
+ `file_type_id` bigint(20) NULL DEFAULT NULL COMMENT '文件分类ID',
+ `md5` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件唯一标识(MD5哈希值)',
`create_time` datetime NOT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='文件表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '文件表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_file
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663144125785964544, '20230529192353.jpg', 'avatar/20230529192353.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192353.jpg', 72708, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'bee1e765d72ab1eb20e3cdfb3de68abb', '2023-05-29 19:23:54', '2023-05-30 09:36:07');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663144536764841984, '20230529192531.jpg', 'avatar/20230529192531.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', 152031, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'fd43ed5490db1894cb5c46cb300e1cf2', '2023-05-29 19:25:32', '2023-05-30 09:36:07');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663144640041189376, '20230529192556.jpg', 'avatar/20230529192556.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192556.jpg', 149077, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, '8a8aa84284c227bad891e840561cc2a4', '2023-05-29 19:25:57', '2023-05-30 09:36:07');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663144694911074304, '20230529192609.jpeg', 'avatar/20230529192609.jpeg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192609.jpeg', 444745, '.jpeg', 'oss', 1653794265890816000, 1656676089927303170, '1a3376b08f3ed911caa689e479fb552d', '2023-05-29 19:26:10', '2023-05-30 09:36:07');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663196287383633920, '20230529225103.jpg', 'avatar/20230529225103.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529225103.jpg', 97766, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'e960ac942f4cd2c10af9bcbacba5f4e6', '2023-05-29 22:51:10', '2023-05-30 09:36:07');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663554855068762112, '20230530223559.png', 'cover/20230530223559.png', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 181272, '.png', 'oss', 1653794265890816000, 1656676089927303168, 'fa74451429d178e2682a3cf6e833c019', '2023-05-30 22:35:59', '2023-05-30 22:35:59');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1663556688776527872, '20230530224316.jpg', 'cover/20230530224316.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530224316.jpg', 50746, '.jpg', 'oss', 1653794265890816000, 1656676089927303168, '8c2eb375053690cb1ae6e9cdc2253a23', '2023-05-30 22:43:17', '2023-05-30 22:43:17');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1665355748768481280, '20230604215201.jpeg', 'cover/20230604215201.jpeg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230604215201.jpeg', 604332, '.jpeg', 'oss', 1653794265890816000, 1656676089927303168, '67bd2983a12ea08bffa358d68e1169f7', '2023-06-04 21:52:06', '2023-06-04 21:52:06');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1667556674283503616, '20230610233746.jpg', 'article/20230610233746.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/article/20230610233746.jpg', 1284390, '.jpg', 'oss', 1653794265890816000, 1656676089927303169, 'e8afdebb8420ad7822f75df100c8cc99', '2023-06-10 23:37:48', '2023-06-10 23:37:48');
-INSERT INTO `tb_file` (`id`, `name`, `path`, `src`, `size`, `type`, `mode`, `user_id`, `file_type_id`, `md5`, `create_time`, `update_time`) VALUES (1683472159025922048, '20230724214014.jpeg', 'article/20230724214014.jpeg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/article/20230724214014.jpeg', 604332, '.jpeg', 'oss', 1653794265890816000, 1656676089927303169, '67bd2983a12ea08bffa358d68e1169f7', '2023-07-24 21:40:15', '2023-07-24 21:40:15');
-COMMIT;
+INSERT INTO `tb_file` VALUES (1663144125785964544, '20230529192353.jpg', 'avatar/20230529192353.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192353.jpg', 72708, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'bee1e765d72ab1eb20e3cdfb3de68abb', '2023-05-29 19:23:54', '2023-05-30 09:36:07');
+INSERT INTO `tb_file` VALUES (1663144536764841984, '20230529192531.jpg', 'avatar/20230529192531.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', 152031, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'fd43ed5490db1894cb5c46cb300e1cf2', '2023-05-29 19:25:32', '2023-05-30 09:36:07');
+INSERT INTO `tb_file` VALUES (1663144640041189376, '20230529192556.jpg', 'avatar/20230529192556.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192556.jpg', 149077, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, '8a8aa84284c227bad891e840561cc2a4', '2023-05-29 19:25:57', '2023-05-30 09:36:07');
+INSERT INTO `tb_file` VALUES (1663144694911074304, '20230529192609.jpeg', 'avatar/20230529192609.jpeg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192609.jpeg', 444745, '.jpeg', 'oss', 1653794265890816000, 1656676089927303170, '1a3376b08f3ed911caa689e479fb552d', '2023-05-29 19:26:10', '2023-05-30 09:36:07');
+INSERT INTO `tb_file` VALUES (1663196287383633920, '20230529225103.jpg', 'avatar/20230529225103.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529225103.jpg', 97766, '.jpg', 'oss', 1653794265890816000, 1656676089927303170, 'e960ac942f4cd2c10af9bcbacba5f4e6', '2023-05-29 22:51:10', '2023-05-30 09:36:07');
+INSERT INTO `tb_file` VALUES (1663554855068762112, '20230530223559.png', 'cover/20230530223559.png', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530223559.png', 181272, '.png', 'oss', 1653794265890816000, 1656676089927303168, 'fa74451429d178e2682a3cf6e833c019', '2023-05-30 22:35:59', '2023-05-30 22:35:59');
+INSERT INTO `tb_file` VALUES (1663556688776527872, '20230530224316.jpg', 'cover/20230530224316.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230530224316.jpg', 50746, '.jpg', 'oss', 1653794265890816000, 1656676089927303168, '8c2eb375053690cb1ae6e9cdc2253a23', '2023-05-30 22:43:17', '2023-05-30 22:43:17');
+INSERT INTO `tb_file` VALUES (1665355748768481280, '20230604215201.jpeg', 'cover/20230604215201.jpeg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/cover/20230604215201.jpeg', 604332, '.jpeg', 'oss', 1653794265890816000, 1656676089927303168, '67bd2983a12ea08bffa358d68e1169f7', '2023-06-04 21:52:06', '2023-06-04 21:52:06');
+INSERT INTO `tb_file` VALUES (1667556674283503616, '20230610233746.jpg', 'article/20230610233746.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/article/20230610233746.jpg', 1284390, '.jpg', 'oss', 1653794265890816000, 1656676089927303169, 'e8afdebb8420ad7822f75df100c8cc99', '2023-06-10 23:37:48', '2023-06-10 23:37:48');
+INSERT INTO `tb_file` VALUES (1695768706853896192, '20230827200219.jpg', 'article/20230827200219.jpg', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/article/20230827200219.jpg', 152031, '.jpg', 'oss', 1653794265890816000, 1656676089927303169, 'fd43ed5490db1894cb5c46cb300e1cf2', '2023-08-27 20:02:20', '2023-08-27 20:02:20');
-- ----------------------------
-- Table structure for tb_file_type
-- ----------------------------
DROP TABLE IF EXISTS `tb_file_type`;
-CREATE TABLE `tb_file_type` (
+CREATE TABLE `tb_file_type` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件分类名称',
- `mark` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件分类标识',
- `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件分类描述',
- `sort` int(11) DEFAULT NULL COMMENT '文件分类排序',
+ `mark` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件分类标识',
+ `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '文件分类描述',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '文件分类排序',
`create_time` datetime NOT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='文件分类表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '文件分类表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_file_type
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_file_type` (`id`, `name`, `mark`, `description`, `sort`, `create_time`, `update_time`) VALUES (1656676089927303168, '封面图片', 'cover', '文章封面图片', 1, '2023-05-11 23:02:37', '2023-05-23 16:02:28');
-INSERT INTO `tb_file_type` (`id`, `name`, `mark`, `description`, `sort`, `create_time`, `update_time`) VALUES (1656676089927303169, '文章图片', 'article', '文章中的图片', 2, '2023-05-11 23:03:05', '2023-05-23 16:02:50');
-INSERT INTO `tb_file_type` (`id`, `name`, `mark`, `description`, `sort`, `create_time`, `update_time`) VALUES (1656676089927303170, '头像文件', 'avatar', '分类图片', 3, '2023-05-11 23:03:24', '2023-05-23 16:06:41');
-INSERT INTO `tb_file_type` (`id`, `name`, `mark`, `description`, `sort`, `create_time`, `update_time`) VALUES (1656676089927303171, '其他文件', 'other', '其他类型文件', 4, '2023-05-11 23:03:45', '2023-05-23 16:03:01');
-COMMIT;
+INSERT INTO `tb_file_type` VALUES (1656676089927303168, '封面图片', 'cover', '文章封面图片', 1, '2023-05-11 23:02:37', '2023-05-23 16:02:28');
+INSERT INTO `tb_file_type` VALUES (1656676089927303169, '文章图片', 'article', '文章中的图片', 2, '2023-05-11 23:03:05', '2023-05-23 16:02:50');
+INSERT INTO `tb_file_type` VALUES (1656676089927303170, '头像文件', 'avatar', '分类图片', 3, '2023-05-11 23:03:24', '2023-05-23 16:06:41');
+INSERT INTO `tb_file_type` VALUES (1656676089927303171, '其他文件', 'other', '其他类型文件', 4, '2023-05-11 23:03:45', '2023-05-23 16:03:01');
-- ----------------------------
-- Table structure for tb_link
-- ----------------------------
DROP TABLE IF EXISTS `tb_link`;
-CREATE TABLE `tb_link` (
+CREATE TABLE `tb_link` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '网站名称',
- `website` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网站域名',
- `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网站Logo',
- `introduce` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '网站介绍',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `website` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '网站域名',
+ `logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '网站Logo',
+ `introduce` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '网站介绍',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
- KEY `index_name` (`name`) USING BTREE COMMENT '网站名称索引'
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='友情链接表';
+ INDEX `index_name`(`name`) USING BTREE COMMENT '网站名称索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '友情链接表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_link
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_link` (`id`, `name`, `website`, `logo`, `introduce`, `create_time`, `update_time`) VALUES (1671411053646315520, '半晴Miko', 'https://banq.ink/', 'https://www.static.banq.ink/sunnyBlog/avatar/fcc72d35fc928185c3e70773a29a310f.jpg', 'Semisunny', '2023-06-21 14:53:43', '2023-06-21 15:17:31');
-COMMIT;
+INSERT INTO `tb_link` VALUES (1671411053646315520, '半晴Miko', 'https://banq.ink/', 'https://www.static.banq.ink/sunnyBlog/avatar/fcc72d35fc928185c3e70773a29a310f.jpg', 'Semisunny', '2023-06-21 14:53:43', '2023-06-21 15:17:31');
-- ----------------------------
-- Table structure for tb_login_info
-- ----------------------------
DROP TABLE IF EXISTS `tb_login_info`;
-CREATE TABLE `tb_login_info` (
+CREATE TABLE `tb_login_info` (
`id` bigint(20) NOT NULL COMMENT '主键',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '登录用户名称',
- `login_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '登录IP',
- `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '登录位置',
- `browser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '浏览器版本',
- `os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作系统',
+ `login_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录IP',
+ `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录位置',
+ `browser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '浏览器版本',
+ `os` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作系统',
`status` tinyint(4) NOT NULL COMMENT '登录状态:0 失败; 1 成功',
- `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '登录消息提示',
+ `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '登录消息提示',
`login_time` datetime NOT NULL COMMENT '登录时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='用户登录信息表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户登录信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_login_info
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1681897322843209728, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-20 13:22:24');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1681931684896833536, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-20 15:38:56');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1682397470891442176, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-21 22:29:49');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1682748766060281856, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-22 21:45:44');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683012474535673856, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 15:13:37');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683091885125533696, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 20:29:10');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683126491543502848, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 22:46:41');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683361700956340224, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-24 14:21:19');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683461001057402880, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 20:55:54');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683461454834958336, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 20:57:43');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683491805116497920, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 22:58:19');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683493188335042560, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:03:48');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683493260846170112, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:04:06');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495082721804288, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:11:20');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495142473859072, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:11:34');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495226779369472, '17@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '服务器内部错误', '2023-07-24 23:11:55');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495248019324928, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '服务器内部错误', '2023-07-24 23:11:59');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495262355456000, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:12:03');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495299261136896, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:12:12');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495811566010368, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '验证码错误', '2023-07-24 23:14:14');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495829056258048, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '密码错误', '2023-07-24 23:14:18');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495849553821696, '11@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '用户不存在', '2023-07-24 23:14:23');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495861897658368, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:14:26');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683495904398540800, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:14:36');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683838807415193600, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:57:10');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683838967784407040, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '用户不存在', '2023-07-25 21:57:49');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683838999594008576, '26755255371@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:57:56');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683839290091503616, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:59:06');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683839780061708288, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 22:01:02');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683856599656955904, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:07:52');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683856728036212736, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:08:23');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683856867131916288, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '当前用户已禁用', '2023-07-25 23:08:56');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683856896798228480, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:09:03');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683862868178501632, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '密码错误', '2023-07-25 23:32:47');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683862884087496704, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:32:51');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1683863040220463104, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:33:28');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684007310982119424, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 09:06:44');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684045536325271552, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 11:38:38');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684076064227196928, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 13:39:56');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684115834097631232, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 16:17:59');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684207327927861248, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:21:32');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684208831892029440, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:27:31');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684209009000710144, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:28:13');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684369189361418240, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 09:04:42');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684405187155853312, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 11:27:46');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684436695002382336, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 13:32:58');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684539020152930304, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-27 20:19:34');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684576785045389312, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-27 22:49:38');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684743829787246592, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 09:53:24');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684799218218172416, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 13:33:30');
-INSERT INTO `tb_login_info` (`id`, `username`, `login_ip`, `login_location`, `browser`, `os`, `status`, `message`, `login_time`) VALUES (1684832579586359296, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 15:46:04');
-COMMIT;
+INSERT INTO `tb_login_info` VALUES (1681897322843209728, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-20 13:22:24');
+INSERT INTO `tb_login_info` VALUES (1681931684896833536, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-20 15:38:56');
+INSERT INTO `tb_login_info` VALUES (1682397470891442176, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-21 22:29:49');
+INSERT INTO `tb_login_info` VALUES (1682748766060281856, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-22 21:45:44');
+INSERT INTO `tb_login_info` VALUES (1683012474535673856, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 15:13:37');
+INSERT INTO `tb_login_info` VALUES (1683091885125533696, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 20:29:10');
+INSERT INTO `tb_login_info` VALUES (1683126491543502848, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-23 22:46:41');
+INSERT INTO `tb_login_info` VALUES (1683361700956340224, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-24 14:21:19');
+INSERT INTO `tb_login_info` VALUES (1683461001057402880, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 20:55:54');
+INSERT INTO `tb_login_info` VALUES (1683461454834958336, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 20:57:43');
+INSERT INTO `tb_login_info` VALUES (1683491805116497920, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 22:58:19');
+INSERT INTO `tb_login_info` VALUES (1683493188335042560, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:03:48');
+INSERT INTO `tb_login_info` VALUES (1683493260846170112, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:04:06');
+INSERT INTO `tb_login_info` VALUES (1683495082721804288, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:11:20');
+INSERT INTO `tb_login_info` VALUES (1683495142473859072, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:11:34');
+INSERT INTO `tb_login_info` VALUES (1683495226779369472, '17@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '服务器内部错误', '2023-07-24 23:11:55');
+INSERT INTO `tb_login_info` VALUES (1683495248019324928, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '服务器内部错误', '2023-07-24 23:11:59');
+INSERT INTO `tb_login_info` VALUES (1683495262355456000, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:12:03');
+INSERT INTO `tb_login_info` VALUES (1683495299261136896, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:12:12');
+INSERT INTO `tb_login_info` VALUES (1683495811566010368, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '验证码错误', '2023-07-24 23:14:14');
+INSERT INTO `tb_login_info` VALUES (1683495829056258048, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '密码错误', '2023-07-24 23:14:18');
+INSERT INTO `tb_login_info` VALUES (1683495849553821696, '11@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '用户不存在', '2023-07-24 23:14:23');
+INSERT INTO `tb_login_info` VALUES (1683495861897658368, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:14:26');
+INSERT INTO `tb_login_info` VALUES (1683495904398540800, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-24 23:14:36');
+INSERT INTO `tb_login_info` VALUES (1683838807415193600, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:57:10');
+INSERT INTO `tb_login_info` VALUES (1683838967784407040, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '用户不存在', '2023-07-25 21:57:49');
+INSERT INTO `tb_login_info` VALUES (1683838999594008576, '26755255371@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:57:56');
+INSERT INTO `tb_login_info` VALUES (1683839290091503616, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 21:59:06');
+INSERT INTO `tb_login_info` VALUES (1683839780061708288, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 22:01:02');
+INSERT INTO `tb_login_info` VALUES (1683856599656955904, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:07:52');
+INSERT INTO `tb_login_info` VALUES (1683856728036212736, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:08:23');
+INSERT INTO `tb_login_info` VALUES (1683856867131916288, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '当前用户已禁用', '2023-07-25 23:08:56');
+INSERT INTO `tb_login_info` VALUES (1683856896798228480, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:09:03');
+INSERT INTO `tb_login_info` VALUES (1683862868178501632, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '密码错误', '2023-07-25 23:32:47');
+INSERT INTO `tb_login_info` VALUES (1683862884087496704, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:32:51');
+INSERT INTO `tb_login_info` VALUES (1683863040220463104, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-25 23:33:28');
+INSERT INTO `tb_login_info` VALUES (1684007310982119424, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 09:06:44');
+INSERT INTO `tb_login_info` VALUES (1684045536325271552, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 11:38:38');
+INSERT INTO `tb_login_info` VALUES (1684076064227196928, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 13:39:56');
+INSERT INTO `tb_login_info` VALUES (1684115834097631232, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-26 16:17:59');
+INSERT INTO `tb_login_info` VALUES (1684207327927861248, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:21:32');
+INSERT INTO `tb_login_info` VALUES (1684208831892029440, '123@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:27:31');
+INSERT INTO `tb_login_info` VALUES (1684209009000710144, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-26 22:28:13');
+INSERT INTO `tb_login_info` VALUES (1684369189361418240, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 09:04:42');
+INSERT INTO `tb_login_info` VALUES (1684405187155853312, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 11:27:46');
+INSERT INTO `tb_login_info` VALUES (1684436695002382336, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-27 13:32:58');
+INSERT INTO `tb_login_info` VALUES (1684539020152930304, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-27 20:19:34');
+INSERT INTO `tb_login_info` VALUES (1684576785045389312, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-27 22:49:38');
+INSERT INTO `tb_login_info` VALUES (1684743829787246592, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 09:53:24');
+INSERT INTO `tb_login_info` VALUES (1684799218218172416, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 13:33:30');
+INSERT INTO `tb_login_info` VALUES (1684832579586359296, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-07-28 15:46:04');
+INSERT INTO `tb_login_info` VALUES (1685314474354933760, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-29 23:40:57');
+INSERT INTO `tb_login_info` VALUES (1685590070666461184, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-30 17:56:04');
+INSERT INTO `tb_login_info` VALUES (1685606379118657536, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-30 19:00:52');
+INSERT INTO `tb_login_info` VALUES (1685642070636625920, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-30 21:22:42');
+INSERT INTO `tb_login_info` VALUES (1685673287306182656, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-30 23:26:44');
+INSERT INTO `tb_login_info` VALUES (1686011104968310784, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 0, '验证码错误', '2023-07-31 21:49:07');
+INSERT INTO `tb_login_info` VALUES (1686011153454465024, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-31 21:49:18');
+INSERT INTO `tb_login_info` VALUES (1686025919895961600, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-07-31 22:47:59');
+INSERT INTO `tb_login_info` VALUES (1686274351525003264, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-08-01 15:15:09');
+INSERT INTO `tb_login_info` VALUES (1686362139901558784, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-01 21:03:59');
+INSERT INTO `tb_login_info` VALUES (1686552064252968960, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-08-02 09:38:41');
+INSERT INTO `tb_login_info` VALUES (1686584852884750336, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-08-02 11:48:58');
+INSERT INTO `tb_login_info` VALUES (1686615025369743360, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-08-02 13:48:52');
+INSERT INTO `tb_login_info` VALUES (1686715449984679936, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-02 20:27:55');
+INSERT INTO `tb_login_info` VALUES (1686716481636663296, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-02 20:32:01');
+INSERT INTO `tb_login_info` VALUES (1686716619499241472, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-02 20:32:34');
+INSERT INTO `tb_login_info` VALUES (1686747583441010688, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-02 22:35:37');
+INSERT INTO `tb_login_info` VALUES (1687063236039409664, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 19:29:54');
+INSERT INTO `tb_login_info` VALUES (1687098901963735040, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 21:51:37');
+INSERT INTO `tb_login_info` VALUES (1687101365509160960, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:01:25');
+INSERT INTO `tb_login_info` VALUES (1687101793634353152, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:03:07');
+INSERT INTO `tb_login_info` VALUES (1687102038950805504, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:04:05');
+INSERT INTO `tb_login_info` VALUES (1687107003211579392, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:23:49');
+INSERT INTO `tb_login_info` VALUES (1687108280339398656, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:28:53');
+INSERT INTO `tb_login_info` VALUES (1687108375487184896, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-03 22:29:16');
+INSERT INTO `tb_login_info` VALUES (1687139008796164096, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-04 00:31:00');
+INSERT INTO `tb_login_info` VALUES (1687846170191200256, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-05 23:21:00');
+INSERT INTO `tb_login_info` VALUES (1688038500617682944, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 12:05:15');
+INSERT INTO `tb_login_info` VALUES (1688045805128122368, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 12:34:17');
+INSERT INTO `tb_login_info` VALUES (1688045900380766208, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 12:34:40');
+INSERT INTO `tb_login_info` VALUES (1688046092769296384, '1@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 12:35:25');
+INSERT INTO `tb_login_info` VALUES (1688046326694019072, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 12:36:21');
+INSERT INTO `tb_login_info` VALUES (1688091659499208704, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 15:36:29');
+INSERT INTO `tb_login_info` VALUES (1688200048535404544, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-06 22:47:11');
+INSERT INTO `tb_login_info` VALUES (1688567100093759488, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-07 23:05:43');
+INSERT INTO `tb_login_info` VALUES (1691458807126818816, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-15 22:36:20');
+INSERT INTO `tb_login_info` VALUES (1694704942524137472, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 0, '验证码已过期', '2023-08-24 21:35:19');
+INSERT INTO `tb_login_info` VALUES (1694704995540140032, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 0, '验证码已过期', '2023-08-24 21:35:32');
+INSERT INTO `tb_login_info` VALUES (1694705072639836160, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-24 21:35:50');
+INSERT INTO `tb_login_info` VALUES (1694707353309413376, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-24 21:44:54');
+INSERT INTO `tb_login_info` VALUES (1694738919339327488, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-24 23:50:20');
+INSERT INTO `tb_login_info` VALUES (1694739366305333248, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-24 23:52:06');
+INSERT INTO `tb_login_info` VALUES (1695063223612473344, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-25 21:19:00');
+INSERT INTO `tb_login_info` VALUES (1695438039637032960, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-26 22:08:23');
+INSERT INTO `tb_login_info` VALUES (1695442333480255488, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-26 22:25:27');
+INSERT INTO `tb_login_info` VALUES (1695768414850646016, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-08-27 20:01:10');
+INSERT INTO `tb_login_info` VALUES (1698717523391807488, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-04 23:19:53');
+INSERT INTO `tb_login_info` VALUES (1699073177491079168, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-05 22:53:07');
+INSERT INTO `tb_login_info` VALUES (1699398095399288832, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-06 20:24:14');
+INSERT INTO `tb_login_info` VALUES (1699428345789284352, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-06 22:24:26');
+INSERT INTO `tb_login_info` VALUES (1699781037111902208, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-07 21:45:54');
+INSERT INTO `tb_login_info` VALUES (1700870461870571520, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-10 21:54:53');
+INSERT INTO `tb_login_info` VALUES (1700872632863293440, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-10 22:03:31');
+INSERT INTO `tb_login_info` VALUES (1700875254869524480, '2675525537@qq.com', '0:0:0:0:0:0:0:1', '本地登录', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-10 22:13:56');
+INSERT INTO `tb_login_info` VALUES (1704134664475639808, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-09-19 22:05:39');
+INSERT INTO `tb_login_info` VALUES (1704510481848336384, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-09-20 22:59:01');
+INSERT INTO `tb_login_info` VALUES (1704881343587942400, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-09-21 23:32:42');
+INSERT INTO `tb_login_info` VALUES (1705474625665761280, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-09-23 14:50:11');
+INSERT INTO `tb_login_info` VALUES (1705504932355899392, '2675525537@qq.com', '127.0.0.1', '本地登录', 'Chrome 11', 'Mac OS X', 1, '登录成功', '2023-09-23 16:50:37');
+INSERT INTO `tb_login_info` VALUES (1707000576715259904, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-27 19:53:46');
+INSERT INTO `tb_login_info` VALUES (1707028516085694464, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-27 21:44:48');
+INSERT INTO `tb_login_info` VALUES (1707063286849077248, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-28 00:02:58');
+INSERT INTO `tb_login_info` VALUES (1707741756512010240, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-29 20:58:57');
+INSERT INTO `tb_login_info` VALUES (1708078838170255360, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-09-30 19:18:24');
+INSERT INTO `tb_login_info` VALUES (1708472110755610624, '2675525537@qq.com', '127.0.0.1', '内网IP', 'Chrome 11', 'Windows 10', 1, '登录成功', '2023-10-01 21:21:07');
-- ----------------------------
-- Table structure for tb_menu
-- ----------------------------
DROP TABLE IF EXISTS `tb_menu`;
-CREATE TABLE `tb_menu` (
+CREATE TABLE `tb_menu` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '菜单名称',
- `parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单',
- `path` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '访问路径',
- `component` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '组件',
- `is_cache` tinyint(4) DEFAULT NULL COMMENT '是否缓存 (0: 不缓存 1: 缓存)',
- `is_link` tinyint(4) DEFAULT NULL COMMENT '是否外链 (0: 不是外链 1: 外链)',
- `visible` tinyint(4) DEFAULT NULL COMMENT '是否隐藏 (0: 不隐藏 1: 隐藏)',
- `icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '图标',
- `order` int(11) DEFAULT NULL COMMENT '菜单顺序',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '菜单名称',
+ `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '菜单类型:D:目录,P:页面',
+ `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父菜单',
+ `path` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '访问路径',
+ `component` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '组件',
+ `is_cache` tinyint(4) NULL DEFAULT NULL COMMENT '是否缓存 (0: 不缓存 1: 缓存)',
+ `is_link` tinyint(4) NULL DEFAULT NULL COMMENT '是否外链 (0: 不是外链 1: 外链)',
+ `visible` tinyint(4) NULL DEFAULT NULL COMMENT '是否隐藏 (0: 不隐藏 1: 隐藏)',
+ `status` tinyint(255) NULL DEFAULT NULL COMMENT '状态,0:禁用,1:正常',
+ `icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图标',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '菜单顺序',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='菜单表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_menu
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1647951751875133440, '内容管理', 0, 'content', NULL, 0, 0, 0, 'content', 1, '2023-04-17 21:17:07', '2023-04-29 14:18:27');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1647951751875133441, '网站管理', 0, 'website', NULL, 0, 0, 0, 'message', 2, '2023-04-17 21:17:46', '2023-04-28 06:21:28');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1647951751875133442, '项目文档', 0, 'https://www.zrkizzy.com', NULL, 0, 1, 0, 'guide', 5, '2023-04-17 21:19:30', '2023-04-29 14:15:50');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1647952968122630144, '文章管理', 1647951751875133440, 'article', 'content/article/index', 0, 0, 0, 'article-create', 1, '2023-04-17 21:22:42', '2023-04-26 01:51:59');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1648539108017963008, '评论管理', 1647951751875133440, 'comment', 'content/comment/index', 0, 0, 0, 'comments', 2, '2023-04-19 12:09:46', '2023-04-26 01:52:00');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651040949146484736, '留言管理', 1647951751875133440, 'message', 'content/message/index', 0, 0, 0, 'message', 3, '2023-04-26 09:51:28', '2023-04-26 01:53:57');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651040949146484737, '分类管理', 1647951751875133440, 'category', 'content/category/index', 0, 0, 0, 'category', 4, '2023-04-26 09:52:57', '2023-04-26 01:53:59');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651042040491802625, '标签管理', 1647951751875133440, 'tags', 'content/tags/index', 0, 0, 0, 'tags', 5, '2023-04-26 09:53:51', '2023-04-26 01:54:48');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343552, '文件管理', 1647951751875133441, 'file', 'website/file/index', 0, 0, 0, 'article-ranking', 1, '2023-04-26 21:33:29', '2023-04-26 13:54:53');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343553, '相册管理', 1647951751875133441, 'photo', 'website/photo/index', 0, 0, 0, 'tool', 2, '2023-04-26 21:33:31', '2023-04-26 13:54:25');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343554, '页面管理', 1647951751875133441, 'page', 'website/page/index', 0, 0, 0, 'documentation', 3, '2023-04-26 21:33:29', '2023-04-26 13:55:21');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343555, '角色管理', 1652313423859417088, 'role', 'system/role/index', 0, 0, 0, 'role', 4, '2023-04-26 21:33:29', '2023-04-29 14:11:36');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343556, '友链管理', 1647951751875133441, 'link', 'website/link/index', 0, 0, 0, 'personnel', 5, '2023-04-26 21:33:29', '2023-04-26 13:53:02');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343557, '用户管理', 1652313423859417088, 'user', 'system/user/index', 0, 0, 0, 'personnel-manage', 6, '2023-04-26 21:33:29', '2023-04-29 14:11:16');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343558, '公告管理', 1647951751875133441, 'notice', 'website/notice/index', 0, 0, 0, 'email', 7, '2023-04-26 21:33:29', '2023-04-26 13:53:49');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343559, '接口管理', 1652313423859417088, 'interface', 'system/interface/index', 0, 0, 0, 'dict', 8, '2023-04-26 21:33:29', '2023-07-27 22:53:34');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343560, '菜单管理', 1652313423859417088, 'menu', 'system/menu/index', 0, 0, 0, 'menu', 9, '2023-04-26 21:33:29', '2023-04-29 14:11:25');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651217423560343561, '网站配置', 1647951751875133441, 'config', 'website/config/index', 0, 0, 0, 'edit', 10, '2023-04-26 21:33:29', '2023-07-03 23:23:03');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641536, '系统监控', 0, 'monitor', NULL, 0, 0, 0, 'monitor', 4, '2023-04-26 22:15:11', '2023-04-29 14:07:25');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641537, '在线用户', 1651227500568641536, 'online', 'monitor/online/index', 0, 0, 0, 'online', 1, '2023-04-26 22:15:55', '2023-04-26 14:21:40');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641538, '服务监控', 1651227500568641536, 'server', 'monitor/server/index', 0, 0, 0, 'server', 2, '2023-04-26 22:16:24', '2023-04-26 14:21:47');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641539, '缓存管理', 1651227500568641536, 'cache', 'monitor/cache/index', 0, 0, 0, 'redis', 3, '2023-04-26 22:16:59', '2023-07-13 23:24:56');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641540, '操作日志', 1651227500568641536, 'operate-log', 'monitor/operate-log/index', 0, 0, 0, 'form', 4, '2023-04-26 22:18:09', '2023-04-26 14:22:03');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1651227500568641541, '登录日志', 1651227500568641536, 'login-log', 'monitor/login-log/index', 0, 0, 0, 'logininfor', 5, '2023-04-26 22:18:32', '2023-04-26 14:24:06');
-INSERT INTO `tb_menu` (`id`, `name`, `parent_id`, `path`, `component`, `is_cache`, `is_link`, `visible`, `icon`, `order`, `create_time`, `update_time`) VALUES (1652313423859417088, '系统管理', 0, 'system', NULL, 0, 0, 0, 'system', 3, '2023-04-29 22:08:18', '2023-04-29 14:08:20');
-COMMIT;
+INSERT INTO `tb_menu` VALUES (1647951751875133440, '内容管理', 'D', 0, 'content', NULL, 0, 0, 0, 1, 'content', 1, '2023-04-17 21:17:07', '2023-08-06 22:50:10');
+INSERT INTO `tb_menu` VALUES (1647951751875133441, '网站管理', 'D', 0, 'website', NULL, 0, 0, 0, 1, 'message', 2, '2023-04-17 21:17:46', '2023-08-03 19:34:56');
+INSERT INTO `tb_menu` VALUES (1647951751875133442, '项目文档', 'D', 0, 'https://www.zrkizzy.com', NULL, 0, 1, 0, 1, 'guide', 5, '2023-04-17 21:19:30', '2023-08-06 22:51:45');
+INSERT INTO `tb_menu` VALUES (1647952968122630144, '文章管理', 'P', 1647951751875133440, 'article', 'content/article/index', 0, 0, 0, 1, 'article-create', 1, '2023-04-17 21:22:42', '2023-08-03 19:35:00');
+INSERT INTO `tb_menu` VALUES (1648539108017963008, '评论管理', 'P', 1647951751875133440, 'comment', 'content/comment/index', 0, 0, 0, 1, 'comments', 2, '2023-04-19 12:09:46', '2023-08-03 19:35:01');
+INSERT INTO `tb_menu` VALUES (1651040949146484736, '留言管理', 'P', 1647951751875133440, 'message', 'content/message/index', 0, 0, 0, 1, 'message', 3, '2023-04-26 09:51:28', '2023-08-03 19:35:09');
+INSERT INTO `tb_menu` VALUES (1651040949146484737, '分类管理', 'P', 1647951751875133440, 'category', 'content/category/index', 0, 0, 0, 1, 'category', 4, '2023-04-26 09:52:57', '2023-08-03 19:35:02');
+INSERT INTO `tb_menu` VALUES (1651042040491802625, '标签管理', 'P', 1647951751875133440, 'tags', 'content/tags/index', 0, 0, 0, 1, 'tags', 5, '2023-04-26 09:53:51', '2023-08-03 19:35:02');
+INSERT INTO `tb_menu` VALUES (1651217423560343552, '文件管理', 'P', 1647951751875133441, 'file', 'website/file/index', 0, 0, 0, 1, 'article-ranking', 1, '2023-04-26 21:33:29', '2023-08-03 19:35:08');
+INSERT INTO `tb_menu` VALUES (1651217423560343553, '相册管理', 'P', 1647951751875133441, 'photo', 'website/photo/index', 0, 0, 0, 1, 'tool', 2, '2023-04-26 21:33:31', '2023-08-03 19:35:03');
+INSERT INTO `tb_menu` VALUES (1651217423560343554, '页面管理', 'P', 1647951751875133441, 'page', 'website/page/index', 0, 0, 0, 1, 'documentation', 3, '2023-04-26 21:33:29', '2023-08-03 19:35:06');
+INSERT INTO `tb_menu` VALUES (1651217423560343555, '角色管理', 'P', 1652313423859417088, 'role', 'system/role/index', 0, 0, 0, 1, 'role', 4, '2023-04-26 21:33:29', '2023-08-03 19:35:04');
+INSERT INTO `tb_menu` VALUES (1651217423560343556, '友链管理', 'P', 1647951751875133441, 'link', 'website/link/index', 0, 0, 0, 1, 'personnel', 5, '2023-04-26 21:33:29', '2023-08-03 19:35:05');
+INSERT INTO `tb_menu` VALUES (1651217423560343557, '用户管理', 'P', 1652313423859417088, 'user', 'system/user/index', 0, 0, 0, 1, 'personnel-manage', 6, '2023-04-26 21:33:29', '2023-08-03 19:35:11');
+INSERT INTO `tb_menu` VALUES (1651217423560343558, '公告管理', 'P', 1647951751875133441, 'notice', 'website/notice/index', 0, 0, 0, 1, 'email', 7, '2023-04-26 21:33:29', '2023-08-03 19:35:12');
+INSERT INTO `tb_menu` VALUES (1651217423560343559, '接口管理', 'P', 1652313423859417088, 'interface', 'system/interface/index', 0, 0, 0, 1, 'dict', 8, '2023-04-26 21:33:29', '2023-08-03 19:35:12');
+INSERT INTO `tb_menu` VALUES (1651217423560343560, '菜单管理', 'P', 1652313423859417088, 'menu', 'system/menu/index', 0, 0, 0, 1, 'menu', 9, '2023-04-26 21:33:29', '2023-08-03 19:35:13');
+INSERT INTO `tb_menu` VALUES (1651217423560343561, '网站配置', 'P', 1647951751875133441, 'config', 'website/config/index', 0, 0, 0, 1, 'edit', 10, '2023-04-26 21:33:29', '2023-08-03 19:35:14');
+INSERT INTO `tb_menu` VALUES (1651227500568641536, '系统监控', 'D', 0, 'monitor', NULL, 0, 0, 0, 1, 'monitor', 4, '2023-04-26 22:15:11', '2023-08-03 19:35:16');
+INSERT INTO `tb_menu` VALUES (1651227500568641537, '在线用户', 'P', 1651227500568641536, 'online', 'monitor/online/index', 0, 0, 0, 1, 'online', 1, '2023-04-26 22:15:55', '2023-08-03 19:35:19');
+INSERT INTO `tb_menu` VALUES (1651227500568641538, '服务监控', 'P', 1651227500568641536, 'server', 'monitor/server/index', 0, 0, 0, 1, 'server', 2, '2023-04-26 22:16:24', '2023-08-03 19:35:20');
+INSERT INTO `tb_menu` VALUES (1651227500568641539, '缓存管理', 'P', 1651227500568641536, 'cache', 'monitor/cache/index', 0, 0, 0, 1, 'redis', 3, '2023-04-26 22:16:59', '2023-08-03 19:35:21');
+INSERT INTO `tb_menu` VALUES (1651227500568641540, '操作日志', 'P', 1651227500568641536, 'operate-log', 'monitor/operate-log/index', 0, 0, 0, 1, 'form', 4, '2023-04-26 22:18:09', '2023-08-03 19:35:21');
+INSERT INTO `tb_menu` VALUES (1651227500568641541, '登录日志', 'P', 1651227500568641536, 'login-log', 'monitor/login-log/index', 0, 0, 0, 1, 'logininfor', 5, '2023-04-26 22:18:32', '2023-08-03 19:35:22');
+INSERT INTO `tb_menu` VALUES (1652313423859417088, '系统管理', 'D', 0, 'system', NULL, 0, 0, 0, 1, 'system', 3, '2023-04-29 22:08:18', '2023-08-03 19:35:24');
-- ----------------------------
-- Table structure for tb_menu_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_menu_role`;
-CREATE TABLE `tb_menu_role` (
+CREATE TABLE `tb_menu_role` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
- `menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',
+ `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
+ `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单ID',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='菜单角色关联表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单角色关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_menu_role
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1647963394059272192, 1000000000000000000, 1647951751875133440);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1647963394059272193, 1000000000000000000, 1647951751875133441);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1647963394059272194, 1000000000000000000, 1647951751875133442);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1647963893261139968, 1000000000000000000, 1647952968122630144);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1648539108017963009, 1000000000000000000, 1648539108017963008);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651042040491802624, 1000000000000000000, 1648539108017963008);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651042293655797760, 1000000000000000000, 1651040949146484736);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651042293655797761, 1000000000000000000, 1651040949146484737);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651042293655797762, 1000000000000000000, 1651042040491802625);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840622727168, 1000000000000000000, 1651217423560343552);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840622727169, 1000000000000000000, 1651217423560343553);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840622727170, 1000000000000000000, 1651217423560343554);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840622727171, 1000000000000000000, 1651217423560343555);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921472, 1000000000000000000, 1651217423560343556);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921473, 1000000000000000000, 1651217423560343557);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921474, 1000000000000000000, 1651217423560343558);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921475, 1000000000000000000, 1651217423560343559);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921476, 1000000000000000000, 1651217423560343560);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651218840626921477, 1000000000000000000, 1651217423560343561);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185472, 1000000000000000000, 1651227500568641536);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185473, 1000000000000000000, 1651227500568641537);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185474, 1000000000000000000, 1651227500568641538);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185475, 1000000000000000000, 1651227500568641539);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185476, 1000000000000000000, 1651227500568641540);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1651230337214185477, 1000000000000000000, 1651227500568641541);
-INSERT INTO `tb_menu_role` (`id`, `role_id`, `menu_id`) VALUES (1652313423859417089, 1000000000000000000, 1652313423859417088);
-COMMIT;
+INSERT INTO `tb_menu_role` VALUES (1647963394059272192, 1000000000000000000, 1647951751875133440);
+INSERT INTO `tb_menu_role` VALUES (1647963394059272193, 1000000000000000000, 1647951751875133441);
+INSERT INTO `tb_menu_role` VALUES (1647963394059272194, 1000000000000000000, 1647951751875133442);
+INSERT INTO `tb_menu_role` VALUES (1647963893261139968, 1000000000000000000, 1647952968122630144);
+INSERT INTO `tb_menu_role` VALUES (1648539108017963009, 1000000000000000000, 1648539108017963008);
+INSERT INTO `tb_menu_role` VALUES (1651042040491802624, 1000000000000000000, 1648539108017963008);
+INSERT INTO `tb_menu_role` VALUES (1651042293655797760, 1000000000000000000, 1651040949146484736);
+INSERT INTO `tb_menu_role` VALUES (1651042293655797761, 1000000000000000000, 1651040949146484737);
+INSERT INTO `tb_menu_role` VALUES (1651042293655797762, 1000000000000000000, 1651042040491802625);
+INSERT INTO `tb_menu_role` VALUES (1651218840622727168, 1000000000000000000, 1651217423560343552);
+INSERT INTO `tb_menu_role` VALUES (1651218840622727169, 1000000000000000000, 1651217423560343553);
+INSERT INTO `tb_menu_role` VALUES (1651218840622727170, 1000000000000000000, 1651217423560343554);
+INSERT INTO `tb_menu_role` VALUES (1651218840622727171, 1000000000000000000, 1651217423560343555);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921472, 1000000000000000000, 1651217423560343556);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921473, 1000000000000000000, 1651217423560343557);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921474, 1000000000000000000, 1651217423560343558);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921475, 1000000000000000000, 1651217423560343559);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921476, 1000000000000000000, 1651217423560343560);
+INSERT INTO `tb_menu_role` VALUES (1651218840626921477, 1000000000000000000, 1651217423560343561);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185472, 1000000000000000000, 1651227500568641536);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185473, 1000000000000000000, 1651227500568641537);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185474, 1000000000000000000, 1651227500568641538);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185475, 1000000000000000000, 1651227500568641539);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185476, 1000000000000000000, 1651227500568641540);
+INSERT INTO `tb_menu_role` VALUES (1651230337214185477, 1000000000000000000, 1651227500568641541);
+INSERT INTO `tb_menu_role` VALUES (1652313423859417089, 1000000000000000000, 1652313423859417088);
+INSERT INTO `tb_menu_role` VALUES (1687101637291671552, 1667607066451116032, 1651217423560343560);
+INSERT INTO `tb_menu_role` VALUES (1687101637291671553, 1667607066451116032, 1652313423859417088);
+INSERT INTO `tb_menu_role` VALUES (1687101637291671554, 1667607066451116032, 1651217423560343559);
-- ----------------------------
-- Table structure for tb_module
-- ----------------------------
DROP TABLE IF EXISTS `tb_module`;
-CREATE TABLE `tb_module` (
+CREATE TABLE `tb_module` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '模块名称',
- `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '模块描述',
+ `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模块描述',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='资源模块表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资源模块表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_module
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_module` (`id`, `name`, `description`, `create_time`, `update_time`) VALUES (1636182933754609664, '基本模块', '个人博客系统基本模块,包括用户基本信息编辑、文件上传下载等功能', '2023-03-16 10:04:53', '2023-03-16 10:04:55');
-INSERT INTO `tb_module` (`id`, `name`, `description`, `create_time`, `update_time`) VALUES (1636182933754609665, '系统模块', '主要用于管理用户、角色等信息', '2023-03-16 10:05:44', '2023-07-27 20:59:17');
-INSERT INTO `tb_module` (`id`, `name`, `description`, `create_time`, `update_time`) VALUES (1684552012043124736, '测试模块', '测试模块描述', '2023-07-27 21:11:12', '2023-07-27 21:11:12');
-COMMIT;
+INSERT INTO `tb_module` VALUES (1636182933754609664, '基本模块', '个人博客系统基本模块,包括用户基本信息编辑、文件上传下载等功能', '2023-03-16 10:04:53', '2023-03-16 10:04:55');
+INSERT INTO `tb_module` VALUES (1636182933754609665, '系统模块', '主要用于管理用户、角色等信息', '2023-03-16 10:05:44', '2023-07-27 20:59:17');
+INSERT INTO `tb_module` VALUES (1686716084163444736, '测试模块', '测试模块', '2023-08-02 20:30:27', '2023-08-02 20:30:27');
-- ----------------------------
-- Table structure for tb_module_resource
-- ----------------------------
DROP TABLE IF EXISTS `tb_module_resource`;
-CREATE TABLE `tb_module_resource` (
+CREATE TABLE `tb_module_resource` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `module_id` bigint(20) DEFAULT NULL COMMENT '模块主键',
- `resource_id` bigint(20) DEFAULT NULL COMMENT '资源主键',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='资源模块关联表';
+ `module_id` bigint(20) NULL DEFAULT NULL COMMENT '模块主键',
+ `resource_id` bigint(20) NULL DEFAULT NULL COMMENT '资源主键',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `idx_module_id`(`module_id`) USING BTREE COMMENT '模块ID索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资源模块关联表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_module_resource
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834751128535040, 1636182933754609665, 1636187548919267328, '2023-07-28 15:54:42');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834751996755968, 1636182933754609665, 1636187548919267329, '2023-07-06 15:54:42');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834752411992064, 1636182933754609665, 1647860341062762496, '2023-07-28 15:54:42');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834753401847808, 1636182933754609665, 1647952968122630145, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834753661894656, 1636182933754609665, 1652715951180742656, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834754282651648, 1636182933754609665, 1653929645323583488, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834755020849152, 1636182933754609665, 1654391949517389824, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834755515777024, 1636182933754609665, 1654642840078123008, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834755863904256, 1636182933754609665, 1656679330433990656, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834756245585920, 1636182933754609665, 1661030954518446080, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834756589518848, 1636182933754609665, 1662978940790112256, '2023-07-28 15:54:43');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834757847810048, 1636182933754609665, 1663469788107636736, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834758242074624, 1636182933754609665, 1663579937522581504, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834758602784768, 1636182933754609665, 1664296403540639744, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834759282262016, 1636182933754609665, 1664914212519936000, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834759978516480, 1636182933754609665, 1664914212519936001, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834760532164608, 1636182933754609665, 1667050222783561728, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834760813182976, 1636182933754609665, 1667578577488445440, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834761253584896, 1636182933754609665, 1667598029198196736, '2023-07-28 15:54:44');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834762373464064, 1636182933754609665, 1671394657394753536, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834762851614720, 1636182933754609665, 1671394657394753537, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834763195547648, 1636182933754609665, 1671394657394753538, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834763963105280, 1636182933754609665, 1671394657394753539, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834764328009728, 1636182933754609665, 1675800348175892480, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834764755828736, 1636182933754609665, 1675800348175892481, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834765091373056, 1636182933754609665, 1675800348175892482, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834765393362944, 1636182933754609665, 1675800348175892483, '2023-07-28 15:54:45');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834766425161728, 1636182933754609665, 1676236928191561728, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834766815232000, 1636182933754609665, 1676421084687106050, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834767121416192, 1636182933754609665, 1676421084687106051, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834767599566848, 1636182933754609665, 1676421084687106052, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834768350347264, 1636182933754609665, 1677234418973933568, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834768820109312, 1636182933754609665, 1678704512069533696, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834769168236544, 1636182933754609665, 1679151716034936832, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834769470226432, 1636182933754609665, 1679512161577074688, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834769713496064, 1636182933754609665, 1679675931226013696, '2023-07-28 15:54:46');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834770090983424, 1636182933754609665, 1679732738346713088, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834771022118912, 1636182933754609665, 1680179775546589184, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834771315720192, 1636182933754609665, 1680179775546589185, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834771793870848, 1636182933754609665, 1681231793782521856, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834772477542400, 1636182933754609665, 1682422693888000001, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834772775337984, 1636182933754609665, 1683094177929232384, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834773052162048, 1636182933754609665, 1683131008930545664, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834773404483584, 1636182933754609665, 1683471580354576384, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834773874245632, 1636182933754609665, 1683471580354576385, '2023-07-28 15:54:47');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834774234955776, 1636182933754609665, 1683841299993591808, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834775229005824, 1636182933754609665, 1683841299993591809, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834775623270400, 1636182933754609665, 1683841299993591810, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834776101421056, 1636182933754609665, 1684082256563404800, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834776407605248, 1636182933754609665, 1684128046551924736, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834777338740736, 1636182933754609665, 1684216181440905216, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834777712033792, 1636182933754609665, 1684541750435119104, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834778106298368, 1636182933754609665, 1684541750435119105, '2023-07-28 15:54:48');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834778404093952, 1636182933754609665, 1684548449283866624, '2023-07-28 15:54:49');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834778924187648, 1636182933754609665, 1684548449283866625, '2023-07-28 15:54:49');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834780157313024, 1636182933754609665, 1684568413176856576, '2023-07-28 15:54:49');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834780580937728, 1636182933754609665, 1684568413176856577, '2023-07-28 15:54:49');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834781289775104, 1636182933754609665, 1684568413176856578, '2023-07-28 15:54:49');
-INSERT INTO `tb_module_resource` (`id`, `module_id`, `resource_id`, `create_time`) VALUES (1684834781616930816, 1636182933754609665, 1684832097144930304, '2023-07-28 15:54:49');
-COMMIT;
+INSERT INTO `tb_module_resource` VALUES (1688092093198630912, 1686716084163444736, 1686025120788774912, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630913, 1686716084163444736, 1675800348175892482, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630914, 1686716084163444736, 1684541750435119104, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630915, 1686716084163444736, 1684541750435119105, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630916, 1686716084163444736, 1647952968122630145, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630917, 1686716084163444736, 1686722622882054144, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630918, 1686716084163444736, 1688037885271343104, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630919, 1686716084163444736, 1688049564466020352, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630920, 1686716084163444736, 1636187548919267328, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630921, 1686716084163444736, 1647860341062762496, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630922, 1686716084163444736, 1675800348175892480, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1688092093198630923, 1686716084163444736, 1652715951180742656, '2023-08-06 15:38:13');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199488, 1636182933754609664, 1686025120788774912, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199489, 1636182933754609664, 1675800348175892482, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199490, 1636182933754609664, 1684541750435119104, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199491, 1636182933754609664, 1684541750435119105, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199492, 1636182933754609664, 1682422693888000001, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199493, 1636182933754609664, 1647952968122630145, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199494, 1636182933754609664, 1686722622882054144, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199495, 1636182933754609664, 1688037885271343104, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021051199496, 1636182933754609664, 1688049564466020352, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393792, 1636182933754609664, 1671394657394753536, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393793, 1636182933754609664, 1671394657394753538, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393794, 1636182933754609664, 1677234418973933568, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393795, 1636182933754609664, 1694706666030759936, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393796, 1636182933754609664, 1684568413176856576, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393797, 1636182933754609664, 1684568413176856578, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393798, 1636182933754609664, 1678704512069533696, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393799, 1636182933754609664, 1679512161577074688, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393800, 1636182933754609664, 1679675931226013696, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393801, 1636182933754609664, 1679732738346713088, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393802, 1636182933754609664, 1656679330433990656, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393803, 1636182933754609664, 1664296403540639744, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393804, 1636182933754609664, 1661030954518446080, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393805, 1636182933754609664, 1684832097144930304, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393806, 1636182933754609664, 1685590302728912896, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393807, 1636182933754609664, 1676421084687106050, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393808, 1636182933754609664, 1683131008930545664, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393809, 1636182933754609664, 1636187548919267329, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393810, 1636182933754609664, 1667578577488445440, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393811, 1636182933754609664, 1684082256563404800, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393812, 1636182933754609664, 1636187548919267328, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393813, 1636182933754609664, 1647860341062762496, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393814, 1636182933754609664, 1675800348175892483, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393815, 1636182933754609664, 1675800348175892480, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393816, 1636182933754609664, 1652715951180742656, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1694739021055393817, 1636182933754609664, 1681231793782521856, '2023-08-24 23:50:44');
+INSERT INTO `tb_module_resource` VALUES (1704895996992946176, 1636182933754609665, 1686025120788774912, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306304, 1636182933754609665, 1686370540320718848, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306305, 1636182933754609665, 1698715961391054848, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306306, 1636182933754609665, 1698715961395249152, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306307, 1636182933754609665, 1698715961395249153, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306308, 1636182933754609665, 1698715961395249154, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306309, 1636182933754609665, 1654391949517389824, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306310, 1636182933754609665, 1677234418973933568, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306311, 1636182933754609665, 1671394657394753536, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306312, 1636182933754609665, 1671394657394753537, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306313, 1636182933754609665, 1671394657394753538, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306314, 1636182933754609665, 1671394657394753539, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306315, 1636182933754609665, 1647952968122630145, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306316, 1636182933754609665, 1686722622882054144, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306317, 1636182933754609665, 1688037885271343104, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306318, 1636182933754609665, 1688049564466020352, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306319, 1636182933754609665, 1688106647613865984, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306320, 1636182933754609665, 1688106647613865993, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306321, 1636182933754609665, 1694706666026565632, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306322, 1636182933754609665, 1694706666030759936, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306323, 1636182933754609665, 1704132386586886144, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306324, 1636182933754609665, 1704132386586886145, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306325, 1636182933754609665, 1704132386586886146, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306326, 1636182933754609665, 1704132386586886147, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306327, 1636182933754609665, 1704894548829798400, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306328, 1636182933754609665, 1678704512069533696, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306329, 1636182933754609665, 1679151716034936832, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306330, 1636182933754609665, 1679512161577074688, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306331, 1636182933754609665, 1679675931226013696, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306332, 1636182933754609665, 1679732738346713088, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306333, 1636182933754609665, 1680179775546589184, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306334, 1636182933754609665, 1680179775546589185, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306335, 1636182933754609665, 1684832097144930304, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306336, 1636182933754609665, 1685590302728912896, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306337, 1636182933754609665, 1685641090620719104, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306338, 1636182933754609665, 1685664653591445512, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306339, 1636182933754609665, 1676421084687106050, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306340, 1636182933754609665, 1676421084687106051, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306341, 1636182933754609665, 1676421084687106052, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306342, 1636182933754609665, 1636187548919267329, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306343, 1636182933754609665, 1667050222783561728, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306344, 1636182933754609665, 1667578577488445440, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306345, 1636182933754609665, 1667598029198196736, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306346, 1636182933754609665, 1684082256563404800, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306347, 1636182933754609665, 1683131008930545664, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306348, 1636182933754609665, 1675800348175892480, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306349, 1636182933754609665, 1675800348175892481, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306350, 1636182933754609665, 1676236928191561728, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306351, 1636182933754609665, 1675800348175892482, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306352, 1636182933754609665, 1684541750435119104, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306353, 1636182933754609665, 1684541750435119105, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306354, 1636182933754609665, 1684548449283866624, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306355, 1636182933754609665, 1684548449283866625, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306356, 1636182933754609665, 1682422693888000001, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306357, 1636182933754609665, 1683094177929232384, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306358, 1636182933754609665, 1684568413176856576, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306359, 1636182933754609665, 1684568413176856577, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306360, 1636182933754609665, 1684568413176856578, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306361, 1636182933754609665, 1684128046551924736, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306362, 1636182933754609665, 1699069650102386688, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306363, 1636182933754609665, 1699069650102386689, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306364, 1636182933754609665, 1699069650102386690, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306365, 1636182933754609665, 1699069650102386691, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306366, 1636182933754609665, 1656679330433990656, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306367, 1636182933754609665, 1664296403540639744, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306368, 1636182933754609665, 1664914212519936000, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306369, 1636182933754609665, 1664914212519936001, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306370, 1636182933754609665, 1661030954518446080, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306371, 1636182933754609665, 1662978940790112256, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306372, 1636182933754609665, 1663469788107636736, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306373, 1636182933754609665, 1683471580354576384, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306374, 1636182933754609665, 1700868600539119616, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306375, 1636182933754609665, 1700868600543313920, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306376, 1636182933754609665, 1636187548919267328, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306377, 1636182933754609665, 1647860341062762496, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306378, 1636182933754609665, 1653929645323583488, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306379, 1636182933754609665, 1654642840078123008, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306380, 1636182933754609665, 1663579937522581504, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306381, 1636182933754609665, 1675800348175892483, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306382, 1636182933754609665, 1683471580354576385, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997022306383, 1636182933754609665, 1683841299993591808, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997026500608, 1636182933754609665, 1683841299993591809, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997026500609, 1636182933754609665, 1683841299993591810, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997026500610, 1636182933754609665, 1684216181440905216, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997026500611, 1636182933754609665, 1652715951180742656, '2023-09-22 00:30:56');
+INSERT INTO `tb_module_resource` VALUES (1704895997026500612, 1636182933754609665, 1681231793782521856, '2023-09-22 00:30:56');
-- ----------------------------
-- Table structure for tb_module_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_module_role`;
-CREATE TABLE `tb_module_role` (
+CREATE TABLE `tb_module_role` (
`id` bigint(20) NOT NULL COMMENT '主键',
`module_id` bigint(20) NOT NULL COMMENT '模块ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`create_time` datetime NOT NULL COMMENT '创建时间',
- `update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='模块角色表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '模块角色表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_module_role
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_module_role` (`id`, `module_id`, `role_id`, `create_time`, `update_time`) VALUES (1636182933754609666, 1636182933754609665, 1000000000000000000, '2023-03-16 10:06:39', '2023-06-11 02:33:30');
-COMMIT;
+INSERT INTO `tb_module_role` VALUES (1636182933754609666, 1636182933754609665, 1000000000000000000, '2023-03-16 10:06:39');
+INSERT INTO `tb_module_role` VALUES (1686375098224738304, 1636182933754609664, 1633657944153260032, '2023-08-01 21:55:29');
+INSERT INTO `tb_module_role` VALUES (1686716440331157504, 1686716084163444736, 1667607066451116032, '2023-08-02 20:31:52');
-- ----------------------------
-- Table structure for tb_operate_log
-- ----------------------------
DROP TABLE IF EXISTS `tb_operate_log`;
-CREATE TABLE `tb_operate_log` (
+CREATE TABLE `tb_operate_log` (
`id` bigint(20) NOT NULL COMMENT '主键',
- `module_id` bigint(20) NOT NULL COMMENT '模块ID',
- `operate_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作内容',
+ `operate_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作内容',
`type` tinyint(4) NOT NULL COMMENT '操作类型 0 其他操作,1 新增,2 修改, 3 删除, 4 查询',
- `method_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作方法名称',
+ `method_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作方法名称',
`request_method` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '请求方式',
`user_id` bigint(20) NOT NULL COMMENT '操作用户ID',
- `operate_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作IP',
- `operate_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作地址',
- `operate_param` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '操作参数',
- `operate_result` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '操作结果描述',
+ `operate_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作IP',
+ `operate_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作地址',
+ `operate_param` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作参数',
+ `operate_result` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作结果描述',
`status` tinyint(4) NOT NULL COMMENT '操作状态 0 失败 1 成功 ',
- `cost_time` bigint(20) DEFAULT NULL COMMENT '操作消耗时间',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ `cost_time` bigint(20) NULL DEFAULT NULL COMMENT '操作消耗时间',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_module` (`module_id`) USING BTREE COMMENT '模块名称索引',
- KEY `idx_type` (`type`) USING BTREE COMMENT '操作类型索引',
- KEY `idx_request` (`request_method`) USING BTREE COMMENT '操作方法类型索引',
- KEY `idx_user_id` (`user_id`) USING BTREE COMMENT '用户主键索引',
- KEY `idx_status` (`status`) USING BTREE COMMENT '操作状态索引'
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='操作日志表';
+ INDEX `idx_type`(`type`) USING BTREE COMMENT '操作类型索引',
+ INDEX `idx_request`(`request_method`) USING BTREE COMMENT '操作方法类型索引',
+ INDEX `idx_user_id`(`user_id`) USING BTREE COMMENT '用户主键索引',
+ INDEX `idx_status`(`status`) USING BTREE COMMENT '操作状态索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_operate_log
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_operate_log` (`id`, `module_id`, `operate_content`, `type`, `method_name`, `request_method`, `user_id`, `operate_ip`, `operate_location`, `operate_param`, `operate_result`, `status`, `cost_time`, `create_time`, `update_time`) VALUES (1684442544491986944, 1636182933754609665, '更新系统基本配置', 2, 'com.zrkizzy.web.controller.system.ConfigController.saveConfig()', 'POST', 1653794265890816000, '127.0.0.1', '本地登录', '[{\"avatar\":\"https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg\",\"createTime\":\"2023-07-22T22:38:28\",\"id\":1682761996493127680,\"notice\":\"尊敬的用户:
欢迎来到我的个人博客! 我是Dream_飞翔,非常感谢您的来访。这里是我分享自己生活、学习和工作中的一些体验与见解的地方。您可以随意浏览我的文章以及后台的所有页面,也可以在评论区分享您的想法和反馈。如果您有任何问题或建议,请与我联系,祝您生活愉快!
其他:
目前项目的技术栈为SpringBoot2,后续我会向SpringBoot3进行迁移
\",\"updateTime\":\"2023-07-27T13:39:28\",\"upload\":\"oss\"}]', 'Result(code=200, message=请求成功, data=1)', 1, 280, '2023-07-27 13:56:13', NULL);
-INSERT INTO `tb_operate_log` (`id`, `module_id`, `operate_content`, `type`, `method_name`, `request_method`, `user_id`, `operate_ip`, `operate_location`, `operate_param`, `operate_result`, `status`, `cost_time`, `create_time`, `update_time`) VALUES (1684442572354748416, 1636182933754609665, '分页查询友链', 4, 'com.zrkizzy.web.controller.system.LinkController.listLinks()', 'POST', 1653794265890816000, '127.0.0.1', '本地登录', '[{\"currentPage\":1,\"dataRange\":[],\"pageSize\":10}]', 'Result(code=200, message=请求成功, data={list=[{website=https://banq.ink/, introduce=Semisunny, updateTime=1687331851000, createTime=1687330423000, name=半晴Miko, logo=https://www.static.banq.ink/sunnyBlog/avatar/fcc72d35fc928185c3e70773a29a310f.jpg, id=1671411053646315520}], total=1})', 1, 102, '2023-07-27 13:56:19', NULL);
-INSERT INTO `tb_operate_log` (`id`, `module_id`, `operate_content`, `type`, `method_name`, `request_method`, `user_id`, `operate_ip`, `operate_location`, `operate_param`, `operate_result`, `status`, `cost_time`, `create_time`, `update_time`) VALUES (1684539208418459648, 1636182933754609665, '分页查询友链', 4, 'com.zrkizzy.web.controller.system.LinkController.listLinks()', 'POST', 1653794265890816000, '127.0.0.1', '本地登录', '[{\"currentPage\":1,\"dataRange\":[],\"pageSize\":10}]', 'Result(code=200, message=请求成功, data={list=[{website=https://banq.ink/, introduce=Semisunny, updateTime=1687331851000, createTime=1687330423000, name=半晴Miko, logo=https://www.static.banq.ink/sunnyBlog/avatar/fcc72d35fc928185c3e70773a29a310f.jpg, id=1671411053646315520}], total=1})', 1, 34, '2023-07-27 20:20:19', NULL);
-INSERT INTO `tb_operate_log` (`id`, `module_id`, `operate_content`, `type`, `method_name`, `request_method`, `user_id`, `operate_ip`, `operate_location`, `operate_param`, `operate_result`, `status`, `cost_time`, `create_time`, `update_time`) VALUES (1684539244103598080, 1636182933754609665, '分页查询友链', 4, 'com.zrkizzy.web.controller.system.LinkController.listLinks()', 'POST', 1653794265890816000, '127.0.0.1', '本地登录', '[{\"currentPage\":1,\"dataRange\":[],\"pageSize\":10}]', 'Result(code=200, message=请求成功, data={list=[{website=https://banq.ink/, introduce=Semisunny, updateTime=1687331851000, createTime=1687330423000, name=半晴Miko, logo=https://www.static.banq.ink/sunnyBlog/avatar/fcc72d35fc928185c3e70773a29a310f.jpg, id=1671411053646315520}], total=1})', 1, 11, '2023-07-27 20:20:28', NULL);
-COMMIT;
+INSERT INTO `tb_operate_log` VALUES (1707743571928416256, '更新指定用户信息', 2, 'com.zrkizzy.web.controller.core.UserController.updateUser()', 'PUT', 1653794265890816000, '127.0.0.1', '内网IP', '[{\"avatar\":\"https://s1.ax1x.com/2023/04/26/p9K181A.jpg\",\"createTime\":\"2023-03-07T16:52:16\",\"id\":1633027432405532672,\"nickname\":\"世纪末的架构师\",\"updateTime\":\"2023-07-26T23:23:29\",\"username\":\"1072876976@qq.com\"}]', '管理员不可以被编辑', 0, 13, '2023-09-29 21:06:11', NULL);
-- ----------------------------
-- Table structure for tb_resource
-- ----------------------------
DROP TABLE IF EXISTS `tb_resource`;
-CREATE TABLE `tb_resource` (
+CREATE TABLE `tb_resource` (
`id` bigint(20) NOT NULL COMMENT '主键',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资源名称',
- `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '资源描述',
+ `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '资源描述',
`method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资源请求方式',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '资源请求路径',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='资源表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '资源表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_resource
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1636187548919267328, '获取所有用户', '获取当前系统中所有用户信息', 'POST', '/admin/user/list', '2023-03-16 10:17:39', '2023-04-13 07:06:14');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1636187548919267329, '获取所有角色', '获取当前系统中所有角色的信息', 'POST', '/admin/role/list', '2023-03-16 10:24:57', '2023-04-13 07:06:16');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1647860341062762496, '获取当前登录用户', '获取当前系统登录用户', 'GET', '/admin/user/getLoginUser', '2023-04-17 15:12:14', '2023-04-17 21:24:19');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1647952968122630145, '获取菜单列表', '获取菜单列表', 'GET', '/admin/menu/getRoutes', '2023-04-17 21:24:19', '2023-04-19 08:28:04');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1652715951180742656, '获取用户个人信息', '获取用户个人信息', 'GET', '/admin/user-info/getUserInfo', '2023-05-01 00:46:55', '2023-07-18 09:23:14');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1653929645323583488, '更新用户个人信息', '更新用户个人信息', 'PUT', '/admin/user/updateLoginUser', '2023-05-01 00:46:55', '2023-07-25 22:42:51');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1654391949517389824, '修改密码发送邮件验证码', '修改密码发送邮件验证码', 'GET', '/admin/email/password', '2023-05-05 15:46:37', '2023-05-05 07:50:01');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1654642840078123008, '用户更新密码', '用户个人信息更新密码', 'PUT', '/admin/user/updatePassword', '2023-05-06 08:22:27', '2023-07-25 22:42:49');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1656679330433990656, '获取文件列表', '用户获取文件列表', 'GET', '/admin/file-type/list', '2023-05-11 23:15:37', '2023-06-01 13:44:33');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1661030954518446080, '获取文件上传模式', '用户获取文件上传模式', 'GET', '/admin/file/listModes', '2023-05-23 23:26:23', '2023-05-23 15:29:01');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1662978940790112256, '上传文件', '用户进行文件上传', 'POST', '/admin/file/upload', '2023-05-29 08:28:17', '2023-05-29 00:28:26');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1663469788107636736, '批量删除文件', '用户进行批量删除文件操作', 'DELETE', '/admin/file/delete', '2023-05-30 16:58:49', '2023-05-30 08:59:01');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1663579937522581504, '更新用户头像', '更新用户头像', 'PUT', '/admin/user/updateLoginUserAvatar', '2023-05-31 00:16:36', '2023-07-25 22:42:57');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1664296403540639744, '获取指定文件分类对象', '根据文件分类ID获取指定文件分类', 'GET', '/admin/file-type/getFileTypeById/**', '2023-06-01 23:46:32', '2023-06-01 15:47:52');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1664914212519936000, '新增或编辑文件分类', '用户新增或编辑文件分类', 'POST', '/admin/file-type/save', '2023-06-03 16:38:24', '2023-06-03 08:41:48');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1664914212519936001, '删除指定文件分类', '用户删除指定文件分类', 'DELETE', '/admin/file-type/delete/**', '2023-06-03 16:41:39', '2023-06-03 08:41:50');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1667050222783561728, '新增或编辑更新角色信息', '新增或编辑角色信息', 'POST', '/admin/role/save', '2023-06-09 14:05:59', '2023-06-09 06:06:11');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1667578577488445440, '获取指定角色信息', '根据角色ID获取指定角色', 'GET', '/admin/role/getRoleById/**', '2023-06-11 01:05:40', '2023-06-11 01:05:51');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1667598029198196736, '批量删除角色信息', '批量删除角色信息', 'DELETE', '/admin/role/delete', '2023-06-11 02:23:06', '2023-06-13 21:47:51');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1671394657394753536, '获取友链信息', '分页查询友链', 'POST', '/admin/link/list', '2023-06-21 13:49:53', '2023-06-21 05:52:34');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1671394657394753537, '添加-更新友情链接', '编辑友链信息', 'POST', '/admin/link/save', '2023-06-21 13:50:35', '2023-06-21 05:52:36');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1671394657394753538, '获取指定友情链接信息', '根据友情链接ID获取到指定友请链接', 'GET', '/admin/link/getLinkById/**', '2023-06-21 13:51:41', '2023-06-21 05:52:37');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1671394657394753539, '批量删除友情链接数据', '根据友情链接集合批量删除友情链接数据', 'DELETE', '/admin/link/delete', '2023-06-21 13:52:23', '2023-06-21 05:52:39');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1675800348175892480, '获取操作日志信息', '分页查询操作日志信息', 'POST', '/admin/operate-log/list', '2023-07-03 17:36:35', '2023-07-03 09:38:51');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1675800348175892481, '批量删除操作日志信息', '批量删除操作日志信息', 'DELETE', '/admin/operate-log/delete', '2023-06-21 13:50:35', '2023-06-21 05:52:36');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1675800348175892482, '获取模块选项数据', '获取模块选项数据', 'GET', '/admin/module/listModuleOptions', '2023-07-03 22:34:42', '2023-07-03 22:34:53');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1675800348175892483, '获取用户选项数据', '获取用户选项数据集', 'GET', '/admin/user/listUserOptions', '2023-07-03 22:55:11', '2023-07-03 22:55:27');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1676236928191561728, '清空操作日志', '清空操作日志中的所有数据', 'GET', '/admin/operate-log/clear', '2023-07-04 22:31:05', '2023-07-04 22:31:14');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1676421084687106050, '获取登录日志信息', '获取所有登录日志信息', 'POST', '/admin/login-info/list', '2023-07-05 10:43:50', '2023-07-05 02:44:01');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1676421084687106051, '批量删除登录日志信息', '批量删除用户登录日志信息', 'DELETE', '/admin/login-info/delete', '2023-07-05 10:45:47', '2023-07-05 10:45:49');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1676421084687106052, '清空登录日志信息', '清空所有用户登录日志信息', 'GET', '/admin/login-info/clear', '2023-07-05 10:46:30', '2023-07-05 10:46:32');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1677234418973933568, '获取服务监控信息', '获取系统服务监控信息', 'GET', '/admin/service-monitor/getMonitorInfo', '2023-07-07 16:34:54', '2023-07-07 08:35:04');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1678704512069533696, '获取所有在线用户', '获取当前所有在线用户', 'POST', '/admin/online/list', '2023-07-11 17:56:01', '2023-07-12 23:33:21');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1679151716034936832, '下线指定用户', '将指定用户下线', 'DELETE', '/admin/online/offline/**', '2023-07-12 23:33:03', '2023-07-12 23:33:14');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1679512161577074688, '获取所有缓存键类型', '获取所有Redis缓存键类型', 'GET', '/admin/cache/listCacheType', '2023-07-13 23:26:11', '2023-07-14 02:43:40');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1679675931226013696, '获取所有缓存键', '获取所有缓存键', 'GET', '/admin/cache/listCacheKeys/**', '2023-07-14 10:16:09', '2023-07-14 02:16:25');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1679732738346713088, '获取指定缓存', '获取指定缓存', 'GET', '/admin/cache/getCacheInfoByKey/**', '2023-07-14 14:01:49', '2023-07-14 06:01:59');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1680179775546589184, '清除缓存列表', '清除缓存列表', 'DELETE', '/admin/cache/clearCacheKeys/**', '2023-07-15 19:38:03', '2023-07-15 19:44:28');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1680179775546589185, '删除指定缓存', '删除指定缓存', 'DELETE', '/admin/cache/deleteCacheKey/**', '2023-07-15 21:39:56', '2023-07-15 21:40:07');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1681231793782521856, '获取指定用户信息', '根据用户ID获取指定用户信息', 'GET', '/admin/user-info/getUserInfoById/**', '2023-07-18 17:20:09', '2023-07-18 09:23:06');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1682422693888000001, '获取系统配置', '获取系统基本配置', 'GET', '/admin/config/getConfig', '2023-07-22 22:05:04', '2023-07-22 22:07:29');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683094177929232384, '保存系统基本配置', '更新系统基本配置', 'POST', '/admin/config/save', '2023-07-23 20:38:02', '2023-07-23 20:38:05');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683131008930545664, '获取首页内容', '获取系统后台首页信息', 'GET', '/admin/index/getHomeInfo', '2023-07-23 23:04:49', '2023-07-23 23:04:52');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683471580354576384, '富文本上传图片', '富文本上传图片,默认保存到文章图片中', 'POST', '/admin/file/addImage', '2023-07-24 21:38:56', '2023-07-24 21:39:05');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683471580354576385, '新增用户', '新增用户', 'POST', '/admin/user/insert', '2023-07-24 22:47:55', '2023-07-24 22:48:04');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683841299993591808, '更新指定用户信息', '更新指定用户信息', 'PUT', '/admin/user/updateUser', '2023-07-25 22:08:08', '2023-07-26 23:20:41');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683841299993591809, '重置指定用户密码', '重置指定用户密码', 'GET', '/admin/user/resetPassword/**', '2023-07-25 22:28:23', '2023-07-25 23:20:56');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1683841299993591810, '更新指定用户状态', '更新指定用户状态', 'GET', '/admin/user/updateUserStatus/**', '2023-07-25 22:58:29', '2023-07-25 22:58:31');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684082256563404800, '获取角色选项', '获取角色选项', 'GET', '/admin/role/listRoleOptions', '2023-07-26 14:03:37', '2023-07-26 14:03:40');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684128046551924736, '更新用户角色', '更新用户角色', 'PUT', '/admin/user-role/update', '2023-07-26 17:06:18', '2023-07-26 17:06:21');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684216181440905216, '批量删除用户', '批量删除指定用户', 'DELETE', '/admin/user/delete', '2023-07-26 22:57:17', '2023-07-26 22:57:26');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684541750435119104, '分页查询资源模块', '分页查询资源模块', 'POST', '/admin/module/list', '2023-07-27 20:34:10', '2023-07-27 20:34:12');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684541750435119105, '根据ID查询模块内容', '获取指定模块信息', 'GET', '/admin/module/getModuleById/**', '2023-07-27 20:51:12', '2023-07-27 20:51:14');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684548449283866624, '添加-更新资源模块', '添加-更新资源模块', 'POST', '/admin/module/save', '2023-07-27 20:57:44', '2023-07-27 20:57:47');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684548449283866625, '批量删除资源模块数据', '批量删除资源模块数据', 'DELETE', '/admin/module/delete', '2023-07-27 20:58:18', '2023-07-27 20:58:21');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684568413176856576, '分页获取所有资源', '分页获取所有资源', 'POST', '/admin/resource/list', '2023-07-27 22:17:43', '2023-07-27 22:17:45');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684568413176856577, '更新指定请求资源', '更新指定请求资源', 'PUT', '/admin/resource/save', '2023-07-27 22:38:18', '2023-07-27 22:43:58');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684568413176856578, '获取指定资源信息', '根据ID获取指定资源信息', 'GET', '/admin/resource/getResourceById/**', '2023-07-27 22:39:15', '2023-07-27 22:39:17');
-INSERT INTO `tb_resource` (`id`, `name`, `description`, `method`, `url`, `create_time`, `update_time`) VALUES (1684832097144930304, '分页获取指定模块请求资源', '分页获取指定模块请求资源', 'POST', '/admin/module-resource/list', '2023-07-28 15:44:41', '2023-07-28 15:44:44');
-COMMIT;
+INSERT INTO `tb_resource` VALUES (1636187548919267328, '获取所有用户', '获取当前系统中所有用户信息', 'POST', '/admin/user/list', '2023-03-16 10:17:39', '2023-04-13 07:06:14');
+INSERT INTO `tb_resource` VALUES (1636187548919267329, '获取所有角色', '获取当前系统中所有角色的信息', 'POST', '/admin/role/list', '2023-03-16 10:24:57', '2023-04-13 07:06:16');
+INSERT INTO `tb_resource` VALUES (1647860341062762496, '获取当前登录用户', '获取当前系统登录用户', 'GET', '/admin/user/getLoginUser', '2023-04-17 15:12:14', '2023-04-17 21:24:19');
+INSERT INTO `tb_resource` VALUES (1647952968122630145, '获取菜单列表', '获取菜单列表', 'GET', '/admin/menu/getRoutes', '2023-04-17 21:24:19', '2023-04-19 08:28:04');
+INSERT INTO `tb_resource` VALUES (1652715951180742656, '获取用户个人信息', '获取用户个人信息', 'GET', '/admin/user-info/getUserInfo', '2023-05-01 00:46:55', '2023-07-18 09:23:14');
+INSERT INTO `tb_resource` VALUES (1653929645323583488, '更新用户个人信息', '更新用户个人信息', 'PUT', '/admin/user/updateLoginUser', '2023-05-01 00:46:55', '2023-07-25 22:42:51');
+INSERT INTO `tb_resource` VALUES (1654391949517389824, '修改密码发送邮件验证码', '修改密码发送邮件验证码', 'GET', '/admin/email/password', '2023-05-05 15:46:37', '2023-05-05 07:50:01');
+INSERT INTO `tb_resource` VALUES (1654642840078123008, '用户更新密码', '用户个人信息更新密码', 'PUT', '/admin/user/updatePassword', '2023-05-06 08:22:27', '2023-07-25 22:42:49');
+INSERT INTO `tb_resource` VALUES (1656679330433990656, '获取文件列表', '用户获取文件列表', 'GET', '/admin/file-type/list', '2023-05-11 23:15:37', '2023-06-01 13:44:33');
+INSERT INTO `tb_resource` VALUES (1661030954518446080, '获取文件上传模式', '用户获取文件上传模式', 'GET', '/admin/file/listModes', '2023-05-23 23:26:23', '2023-05-23 15:29:01');
+INSERT INTO `tb_resource` VALUES (1662978940790112256, '上传文件', '用户进行文件上传', 'POST', '/admin/file/upload', '2023-05-29 08:28:17', '2023-05-29 00:28:26');
+INSERT INTO `tb_resource` VALUES (1663469788107636736, '批量删除文件', '用户进行批量删除文件操作', 'DELETE', '/admin/file/delete', '2023-05-30 16:58:49', '2023-05-30 08:59:01');
+INSERT INTO `tb_resource` VALUES (1663579937522581504, '更新用户头像', '更新用户头像', 'PUT', '/admin/user/updateLoginUserAvatar', '2023-05-31 00:16:36', '2023-07-25 22:42:57');
+INSERT INTO `tb_resource` VALUES (1664296403540639744, '获取指定文件分类对象', '根据文件分类ID获取指定文件分类', 'GET', '/admin/file-type/getFileTypeById/**', '2023-06-01 23:46:32', '2023-06-01 15:47:52');
+INSERT INTO `tb_resource` VALUES (1664914212519936000, '新增或编辑文件分类', '用户新增或编辑文件分类', 'POST', '/admin/file-type/save', '2023-06-03 16:38:24', '2023-06-03 08:41:48');
+INSERT INTO `tb_resource` VALUES (1664914212519936001, '删除指定文件分类', '用户删除指定文件分类', 'DELETE', '/admin/file-type/delete/**', '2023-06-03 16:41:39', '2023-06-03 08:41:50');
+INSERT INTO `tb_resource` VALUES (1667050222783561728, '新增或编辑更新角色信息', '新增或编辑角色信息', 'POST', '/admin/role/save', '2023-06-09 14:05:59', '2023-06-09 06:06:11');
+INSERT INTO `tb_resource` VALUES (1667578577488445440, '获取指定角色信息', '根据角色ID获取指定角色', 'GET', '/admin/role/getRoleById/**', '2023-06-11 01:05:40', '2023-06-11 01:05:51');
+INSERT INTO `tb_resource` VALUES (1667598029198196736, '批量删除角色信息', '批量删除角色信息', 'DELETE', '/admin/role/delete', '2023-06-11 02:23:06', '2023-06-13 21:47:51');
+INSERT INTO `tb_resource` VALUES (1671394657394753536, '获取友链信息', '分页查询友链', 'POST', '/admin/link/list', '2023-06-21 13:49:53', '2023-06-21 05:52:34');
+INSERT INTO `tb_resource` VALUES (1671394657394753537, '添加-更新友情链接', '编辑友链信息', 'POST', '/admin/link/save', '2023-06-21 13:50:35', '2023-06-21 05:52:36');
+INSERT INTO `tb_resource` VALUES (1671394657394753538, '获取指定友情链接信息', '根据友情链接ID获取到指定友请链接', 'GET', '/admin/link/getLinkById/**', '2023-06-21 13:51:41', '2023-06-21 05:52:37');
+INSERT INTO `tb_resource` VALUES (1671394657394753539, '批量删除友情链接数据', '根据友情链接集合批量删除友情链接数据', 'DELETE', '/admin/link/delete', '2023-06-21 13:52:23', '2023-06-21 05:52:39');
+INSERT INTO `tb_resource` VALUES (1675800348175892480, '获取操作日志信息', '分页查询操作日志信息', 'POST', '/admin/operate-log/list', '2023-07-03 17:36:35', '2023-07-03 09:38:51');
+INSERT INTO `tb_resource` VALUES (1675800348175892481, '批量删除操作日志信息', '批量删除操作日志信息', 'DELETE', '/admin/operate-log/delete', '2023-06-21 13:50:35', '2023-06-21 05:52:36');
+INSERT INTO `tb_resource` VALUES (1675800348175892482, '获取模块选项数据', '获取模块选项数据', 'GET', '/admin/module/listModuleOptions', '2023-07-03 22:34:42', '2023-07-03 22:34:53');
+INSERT INTO `tb_resource` VALUES (1675800348175892483, '获取用户选项数据', '获取用户选项数据集', 'GET', '/admin/user/listUserOptions', '2023-07-03 22:55:11', '2023-07-03 22:55:27');
+INSERT INTO `tb_resource` VALUES (1676236928191561728, '清空操作日志', '清空操作日志中的所有数据', 'GET', '/admin/operate-log/clear', '2023-07-04 22:31:05', '2023-07-04 22:31:14');
+INSERT INTO `tb_resource` VALUES (1676421084687106050, '获取登录日志信息', '获取所有登录日志信息', 'POST', '/admin/login-info/list', '2023-07-05 10:43:50', '2023-07-05 02:44:01');
+INSERT INTO `tb_resource` VALUES (1676421084687106051, '批量删除登录日志信息', '批量删除用户登录日志信息', 'DELETE', '/admin/login-info/delete', '2023-07-05 10:45:47', '2023-07-05 10:45:49');
+INSERT INTO `tb_resource` VALUES (1676421084687106052, '清空登录日志信息', '清空所有用户登录日志信息', 'GET', '/admin/login-info/clear', '2023-07-05 10:46:30', '2023-07-05 10:46:32');
+INSERT INTO `tb_resource` VALUES (1677234418973933568, '获取服务监控信息', '获取系统服务监控信息', 'GET', '/admin/service-monitor/getMonitorInfo', '2023-07-07 16:34:54', '2023-07-07 08:35:04');
+INSERT INTO `tb_resource` VALUES (1678704512069533696, '获取所有在线用户', '获取当前所有在线用户', 'POST', '/admin/online/list', '2023-07-11 17:56:01', '2023-07-12 23:33:21');
+INSERT INTO `tb_resource` VALUES (1679151716034936832, '下线指定用户', '将指定用户下线', 'DELETE', '/admin/online/offline/**', '2023-07-12 23:33:03', '2023-07-12 23:33:14');
+INSERT INTO `tb_resource` VALUES (1679512161577074688, '获取所有缓存键类型', '获取所有Redis缓存键类型', 'GET', '/admin/cache/listCacheType', '2023-07-13 23:26:11', '2023-07-14 02:43:40');
+INSERT INTO `tb_resource` VALUES (1679675931226013696, '获取所有缓存键', '获取所有缓存键', 'GET', '/admin/cache/listCacheKeys/**', '2023-07-14 10:16:09', '2023-07-14 02:16:25');
+INSERT INTO `tb_resource` VALUES (1679732738346713088, '获取指定缓存', '获取指定缓存', 'GET', '/admin/cache/getCacheInfoByKey/**', '2023-07-14 14:01:49', '2023-07-14 06:01:59');
+INSERT INTO `tb_resource` VALUES (1680179775546589184, '清除缓存列表', '清除缓存列表', 'DELETE', '/admin/cache/clearCacheKeys/**', '2023-07-15 19:38:03', '2023-07-15 19:44:28');
+INSERT INTO `tb_resource` VALUES (1680179775546589185, '删除指定缓存', '删除指定缓存', 'DELETE', '/admin/cache/deleteCacheKey/**', '2023-07-15 21:39:56', '2023-07-15 21:40:07');
+INSERT INTO `tb_resource` VALUES (1681231793782521856, '获取指定用户信息', '根据用户ID获取指定用户信息', 'GET', '/admin/user-info/getUserInfoById/**', '2023-07-18 17:20:09', '2023-07-18 09:23:06');
+INSERT INTO `tb_resource` VALUES (1682422693888000001, '获取系统配置', '获取系统基本配置', 'GET', '/admin/config/getConfig', '2023-07-22 22:05:04', '2023-07-22 22:07:29');
+INSERT INTO `tb_resource` VALUES (1683094177929232384, '保存系统基本配置', '更新系统基本配置', 'POST', '/admin/config/save', '2023-07-23 20:38:02', '2023-07-23 20:38:05');
+INSERT INTO `tb_resource` VALUES (1683131008930545664, '获取首页内容', '获取系统后台首页信息', 'GET', '/admin/index/getHomeInfo', '2023-07-23 23:04:49', '2023-07-23 23:04:52');
+INSERT INTO `tb_resource` VALUES (1683471580354576384, '富文本上传图片', '富文本上传图片,默认保存到文章图片中', 'POST', '/admin/file/addImage', '2023-07-24 21:38:56', '2023-07-24 21:39:05');
+INSERT INTO `tb_resource` VALUES (1683471580354576385, '新增用户', '新增用户', 'POST', '/admin/user/insert', '2023-07-24 22:47:55', '2023-07-24 22:48:04');
+INSERT INTO `tb_resource` VALUES (1683841299993591808, '更新指定用户信息', '更新指定用户信息', 'PUT', '/admin/user/updateUser', '2023-07-25 22:08:08', '2023-07-26 23:20:41');
+INSERT INTO `tb_resource` VALUES (1683841299993591809, '重置指定用户密码', '重置指定用户密码', 'GET', '/admin/user/resetPassword/**', '2023-07-25 22:28:23', '2023-07-25 23:20:56');
+INSERT INTO `tb_resource` VALUES (1683841299993591810, '更新指定用户状态', '更新指定用户状态', 'GET', '/admin/user/updateUserStatus/**', '2023-07-25 22:58:29', '2023-07-25 22:58:31');
+INSERT INTO `tb_resource` VALUES (1684082256563404800, '获取角色选项', '获取角色选项', 'GET', '/admin/role/listRoleOptions', '2023-07-26 14:03:37', '2023-07-26 14:03:40');
+INSERT INTO `tb_resource` VALUES (1684128046551924736, '更新用户角色', '更新用户角色', 'PUT', '/admin/user-role/update', '2023-07-26 17:06:18', '2023-07-26 17:06:21');
+INSERT INTO `tb_resource` VALUES (1684216181440905216, '批量删除用户', '批量删除指定用户', 'DELETE', '/admin/user/delete', '2023-07-26 22:57:17', '2023-07-26 22:57:26');
+INSERT INTO `tb_resource` VALUES (1684541750435119104, '分页查询资源模块', '分页查询资源模块', 'POST', '/admin/module/list', '2023-07-27 20:34:10', '2023-07-27 20:34:12');
+INSERT INTO `tb_resource` VALUES (1684541750435119105, '根据ID查询模块内容', '获取指定模块信息', 'GET', '/admin/module/getModuleById/**', '2023-07-27 20:51:12', '2023-07-27 20:51:14');
+INSERT INTO `tb_resource` VALUES (1684548449283866624, '添加-更新资源模块', '添加-更新资源模块', 'POST', '/admin/module/save', '2023-07-27 20:57:44', '2023-07-27 20:57:47');
+INSERT INTO `tb_resource` VALUES (1684548449283866625, '批量删除资源模块数据', '批量删除资源模块数据', 'DELETE', '/admin/module/delete', '2023-07-27 20:58:18', '2023-07-27 20:58:21');
+INSERT INTO `tb_resource` VALUES (1684568413176856576, '分页获取所有资源', '分页获取所有资源', 'POST', '/admin/resource/list', '2023-07-27 22:17:43', '2023-07-27 22:17:45');
+INSERT INTO `tb_resource` VALUES (1684568413176856577, '更新指定请求资源', '更新指定请求资源', 'PUT', '/admin/resource/save', '2023-07-27 22:38:18', '2023-07-27 22:43:58');
+INSERT INTO `tb_resource` VALUES (1684568413176856578, '获取指定资源信息', '根据ID获取指定资源信息', 'GET', '/admin/resource/getResourceById/**', '2023-07-27 22:39:15', '2023-07-27 22:39:17');
+INSERT INTO `tb_resource` VALUES (1684832097144930304, '分页获取指定模块请求资源', '分页获取指定模块请求资源', 'POST', '/admin/module-resource/list', '2023-07-28 15:44:41', '2023-07-28 15:44:44');
+INSERT INTO `tb_resource` VALUES (1685590302728912896, '获取指定模块可以添加的接口', '获取指定模块可以添加的接口', 'GET', '/admin/module-resource/listResourceById/**', '2023-07-30 17:57:37', '2023-07-30 17:57:39');
+INSERT INTO `tb_resource` VALUES (1685641090620719104, '批量删除模块对应请求资源', '批量删除模块对应请求资源', 'DELETE', '/admin/module-resource/delete', '2023-07-30 21:56:44', '2023-07-30 21:56:48');
+INSERT INTO `tb_resource` VALUES (1685664653591445512, '为指定模块分配资源请求', '为指定模块分配资源请求', 'POST', '/admin/module-resource/save', '2023-07-30 23:11:07', '2023-07-30 23:11:10');
+INSERT INTO `tb_resource` VALUES (1686025120788774912, '获取角色对应模块权限', '获取角色对应模块权限', 'GET', '/admin/module-role/listByRoleId/**', '2023-07-31 22:45:26', '2023-07-31 22:45:28');
+INSERT INTO `tb_resource` VALUES (1686370540320718848, '分配角色模块权限', '分配角色模块权限', 'POST', '/admin/module-role/save', '2023-08-01 21:37:38', '2023-08-01 21:38:41');
+INSERT INTO `tb_resource` VALUES (1686722622882054144, '获取菜单数据', '获取菜单数据', 'POST', '/admin/menu/list', '2023-08-02 20:57:14', '2023-08-02 21:33:42');
+INSERT INTO `tb_resource` VALUES (1688037885271343104, '获取菜单选项', '获取菜单选项', 'GET', '/admin/menu/listMenuOptions', '2023-08-06 12:03:44', '2023-08-06 12:03:47');
+INSERT INTO `tb_resource` VALUES (1688049564466020352, '获取指定菜单数据', '获取指定菜单数据', 'GET', '/admin/menu/getMenuById/**', '2023-08-06 12:49:57', '2023-08-06 12:50:00');
+INSERT INTO `tb_resource` VALUES (1688106647613865984, '保存菜单数据', '保存菜单数据', 'POST', '/admin/menu/save', '2023-08-06 16:36:41', '2023-08-06 16:36:44');
+INSERT INTO `tb_resource` VALUES (1688106647613865993, '删除指定菜单', '删除指定菜单', 'DELETE', '/admin/menu/delete/**', '2023-08-06 23:13:27', '2023-08-06 23:13:32');
+INSERT INTO `tb_resource` VALUES (1694706666026565632, '更新博客配置', '更新博客配置', 'POST', '/admin/blog-config/save', '2023-08-24 21:42:45', '2023-08-24 21:42:47');
+INSERT INTO `tb_resource` VALUES (1694706666030759936, '获取博客配置', '获取博客配置', 'GET', '/admin/blog-config/getBlogConfig', '2023-08-24 23:42:42', '2023-08-24 23:42:46');
+INSERT INTO `tb_resource` VALUES (1698715961391054848, '分页获取所有博客分类', '分页获取所有博客分类', 'POST', '/admin/blog-category/list', '2023-09-04 23:14:31', '2023-09-05 22:43:09');
+INSERT INTO `tb_resource` VALUES (1698715961395249152, '编辑博客分类', '编辑博客分类', 'POST', '/admin/blog-category/save', '2023-09-04 23:15:25', '2023-09-05 22:43:13');
+INSERT INTO `tb_resource` VALUES (1698715961395249153, '获取指定博客分类', '获取指定博客分类', 'GET', '/admin/blog-category/getCategoryById/**', '2023-09-04 23:16:34', '2023-09-05 22:43:15');
+INSERT INTO `tb_resource` VALUES (1698715961395249154, '批量删除博客分类', '批量删除博客分类', 'DELETE', '/admin/blog-category/delete', '2023-09-04 23:18:14', '2023-09-05 22:43:17');
+INSERT INTO `tb_resource` VALUES (1699069650102386688, '分页获取所有博客标签', '获取所有博客标签', 'POST', '/admin/blog-tags/list', '2023-09-05 22:42:29', '2023-09-05 22:42:32');
+INSERT INTO `tb_resource` VALUES (1699069650102386689, '编辑博客标签', '编辑博客标签', 'POST', '/admin/blog-tags/save', '2023-09-05 22:47:26', '2023-09-05 22:47:29');
+INSERT INTO `tb_resource` VALUES (1699069650102386690, '获取指定博客标签信息', '获取指定博客标签信息', 'GET', '/admin/blog-tags/getBlogTagsById/**', '2023-09-05 22:48:11', '2023-09-05 22:48:14');
+INSERT INTO `tb_resource` VALUES (1699069650102386691, '批量删除博客标签数据', '批量删除博客标签数据', 'DELETE', '/admin/blog-tags/delete', '2023-09-05 22:48:50', '2023-09-05 22:48:53');
+INSERT INTO `tb_resource` VALUES (1700868600539119616, '获取关于我内容', '获取关于我内容', 'GET', '/admin/about-me/getAboutMe', '2023-09-10 21:50:25', '2023-09-10 21:50:28');
+INSERT INTO `tb_resource` VALUES (1700868600543313920, '更新关于我内容', '更新关于我内容', 'POST', '/admin/about-me/update', '2023-09-10 21:50:55', '2023-09-10 21:50:57');
+INSERT INTO `tb_resource` VALUES (1704132386586886144, '获取所有文章', '获取所有文章', 'POST', '/admin/article/list', '2023-09-19 21:57:44', '2023-09-19 13:58:41');
+INSERT INTO `tb_resource` VALUES (1704132386586886145, '编辑文章', '编辑文章', 'POST', '/admin/article/save', '2023-09-19 21:58:30', '2023-09-19 21:58:32');
+INSERT INTO `tb_resource` VALUES (1704132386586886146, '根据ID获取指定文章', '获取指定文章信息', 'GET', '/admin/article/getArticleById/**', '2023-09-19 22:01:59', '2023-09-19 22:02:01');
+INSERT INTO `tb_resource` VALUES (1704132386586886147, '批量删除文章', '批量删除文章', 'DELETE', '/admin/article/delete', '2023-09-19 22:03:38', '2023-09-19 22:03:40');
+INSERT INTO `tb_resource` VALUES (1704894548829798400, '更新文章状态属性', '更新文章状态属性', 'POST', '/admin/article/updateStatus', '2023-09-22 00:26:30', '2023-09-22 00:26:37');
-- ----------------------------
-- Table structure for tb_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_role`;
-CREATE TABLE `tb_role` (
+CREATE TABLE `tb_role` (
`id` bigint(20) NOT NULL COMMENT '角色ID',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
- `mark` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '角色标识',
- `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '角色描述',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `mark` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '角色标识',
+ `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '角色描述',
+ `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
- KEY `index_01` (`name`,`mark`,`create_time`) USING BTREE,
- KEY `idx_mark_id` (`mark`,`id`) USING BTREE COMMENT '角色标识、ID联合索引',
- KEY `idx_name_id` (`name`,`id`) USING BTREE COMMENT '角色名称、ID联合索引'
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='角色表';
+ INDEX `index_01`(`name`, `mark`, `create_time`) USING BTREE,
+ INDEX `idx_mark_id`(`mark`, `id`) USING BTREE COMMENT '角色标识、ID联合索引',
+ INDEX `idx_name_id`(`name`, `id`) USING BTREE COMMENT '角色名称、ID联合索引'
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_role
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_role` (`id`, `name`, `mark`, `description`, `create_time`, `update_time`) VALUES (1000000000000000000, '超级管理员', 'ROLE_ADMIN', '超级管理员', '2023-03-09 09:50:27', '2023-06-11 02:31:37');
-INSERT INTO `tb_role` (`id`, `name`, `mark`, `description`, `create_time`, `update_time`) VALUES (1633657944153260032, '默认用户', 'ROLE_DEFAULT', '默认用户测试', '2023-03-09 10:36:20', '2023-07-25 22:11:18');
-INSERT INTO `tb_role` (`id`, `name`, `mark`, `description`, `create_time`, `update_time`) VALUES (1667607066451116032, '测试用户', 'ROLE_TEST', '系统测试用户', '2023-06-11 02:58:02', '2023-06-11 02:58:01');
-COMMIT;
+INSERT INTO `tb_role` VALUES (1000000000000000000, '超级管理员', 'ROLE_ADMIN', '超级管理员', '2023-03-09 09:50:27', '2023-06-11 02:31:37');
+INSERT INTO `tb_role` VALUES (1633657944153260032, '默认用户', 'ROLE_DEFAULT', '默认用户测试', '2023-03-09 10:36:20', '2023-07-25 22:11:18');
+INSERT INTO `tb_role` VALUES (1667607066451116032, '测试用户', 'ROLE_TEST', '系统测试用户', '2023-06-11 02:58:02', '2023-06-11 02:58:01');
-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
-CREATE TABLE `tb_user` (
+CREATE TABLE `tb_user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
- `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '昵称',
- `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '头像',
- `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态,0:禁用,1:启用',
- `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
+ `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '昵称',
+ `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
+ `status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态,0:禁用,1:启用',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
- UNIQUE KEY `username` (`username`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='用户表';
+ UNIQUE INDEX `username`(`username`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_user
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_user` (`id`, `username`, `password`, `nickname`, `avatar`, `status`, `remark`, `create_time`, `update_time`) VALUES (1633027432405532672, '1072876976@qq.com', '$2a$10$Kbb.k6umlihAQBRtSxNGiuHaqT5YP4IVP9Cmytfn8xsecp7Z4e50G', '世纪末的架构师', 'https://s1.ax1x.com/2023/04/26/p9K181A.jpg', 1, NULL, '2023-03-07 16:52:16', '2023-07-26 23:23:29');
-INSERT INTO `tb_user` (`id`, `username`, `password`, `nickname`, `avatar`, `status`, `remark`, `create_time`, `update_time`) VALUES (1653794265890816000, '2675525537@qq.com', '$2a$10$INorakGPR9WOUBOSQGh3k.QhZLcbjr..hgALnlgdQ1t3D.hgZKqey', '测试账号', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192556.jpg', 1, '自古英雄出炼狱,破马长枪定乾坤!', '2023-05-03 16:15:23', '2023-07-25 23:33:14');
-INSERT INTO `tb_user` (`id`, `username`, `password`, `nickname`, `avatar`, `status`, `remark`, `create_time`, `update_time`) VALUES (1684221352883519488, '1@qq.com', '$2a$10$JcnvFXeXlcU7YFjHje2n5eaiiVxO/byA0hSBMT.RubSbhjXlcKUve', '123456', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', 1, NULL, '2023-07-26 23:17:17', '2023-07-26 23:23:24');
-COMMIT;
+INSERT INTO `tb_user` VALUES (1633027432405532672, '1072876976@qq.com', '$2a$10$Kbb.k6umlihAQBRtSxNGiuHaqT5YP4IVP9Cmytfn8xsecp7Z4e50G', '世纪末的架构师', 'https://s1.ax1x.com/2023/04/26/p9K181A.jpg', 1, NULL, '2023-03-07 16:52:16', '2023-07-26 23:23:29');
+INSERT INTO `tb_user` VALUES (1653794265890816000, '2675525537@qq.com', '$2a$10$INorakGPR9WOUBOSQGh3k.QhZLcbjr..hgALnlgdQ1t3D.hgZKqey', '测试账号', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192556.jpg', 1, '自古英雄出炼狱,破马长枪定乾坤!', '2023-05-03 16:15:23', '2023-07-25 23:33:14');
+INSERT INTO `tb_user` VALUES (1684221352883519488, '1@qq.com', '$2a$10$JcnvFXeXlcU7YFjHje2n5eaiiVxO/byA0hSBMT.RubSbhjXlcKUve', '123456', 'https://blog-yk0504.oss-cn-hangzhou.aliyuncs.com/avatar/20230529192531.jpg', 1, NULL, '2023-07-26 23:17:17', '2023-07-26 23:23:24');
-- ----------------------------
-- Table structure for tb_user_info
-- ----------------------------
DROP TABLE IF EXISTS `tb_user_info`;
-CREATE TABLE `tb_user_info` (
+CREATE TABLE `tb_user_info` (
`id` bigint(20) NOT NULL COMMENT '主键(同user主键)',
`phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '手机号码',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='用户信息表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_user_info
-- ----------------------------
-BEGIN;
-COMMIT;
-- ----------------------------
-- Table structure for tb_user_role
-- ----------------------------
DROP TABLE IF EXISTS `tb_user_role`;
-CREATE TABLE `tb_user_role` (
+CREATE TABLE `tb_user_role` (
`id` bigint(20) NOT NULL COMMENT '主键',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='用户角色表';
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户角色表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of tb_user_role
-- ----------------------------
-BEGIN;
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1635171865322323968, 1633027432405532672, 1000000000000000000);
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1653794265890816001, 1653794265890816000, 1000000000000000000);
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1683843226475167744, 1683843225900548096, 1633657944153260032);
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1684217316075634688, 1684217315379380224, 1633657944153260032);
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1684217357158842368, 1684217356554862592, 1633657944153260032);
-INSERT INTO `tb_user_role` (`id`, `user_id`, `role_id`) VALUES (1684221353441361920, 1684221352883519488, 1667607066451116032);
-COMMIT;
+INSERT INTO `tb_user_role` VALUES (1635171865322323968, 1633027432405532672, 1000000000000000000);
+INSERT INTO `tb_user_role` VALUES (1653794265890816001, 1653794265890816000, 1000000000000000000);
+INSERT INTO `tb_user_role` VALUES (1683843226475167744, 1683843225900548096, 1633657944153260032);
+INSERT INTO `tb_user_role` VALUES (1684217316075634688, 1684217315379380224, 1633657944153260032);
+INSERT INTO `tb_user_role` VALUES (1684217357158842368, 1684217356554862592, 1633657944153260032);
+INSERT INTO `tb_user_role` VALUES (1684221353441361920, 1684221352883519488, 1667607066451116032);
SET FOREIGN_KEY_CHECKS = 1;