From 03395df7441d809176ce50c48fc8d2987309b521 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B9=90=E8=A7=82=E5=BC=80=E5=8F=91=E8=80=85?=
<908085643@qq.com>
Date: Sat, 20 Jan 2024 23:08:33 +0800
Subject: [PATCH 1/9] =?UTF-8?q?#I8TEM5=20=E4=BF=AE=E6=94=B9bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/admin/api/system/user.go | 2 +-
app/admin/model/system/sysRoles.go | 7 +++----
utils/R/R.go | 7 +++++++
utils/utils.go | 9 +++++++++
4 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/app/admin/api/system/user.go b/app/admin/api/system/user.go
index c0af718..4e3bb34 100644
--- a/app/admin/api/system/user.go
+++ b/app/admin/api/system/user.go
@@ -133,7 +133,7 @@ func LogoutHandler(context *gin.Context) {
fmt.Println(user)
}
// 开始删除缓存
- context.JSON(http.StatusOK, R.ReturnFailMsg("退出成功"))
+ context.JSON(http.StatusOK, R.ReturnSuccessMsg("退出成功"))
}
// CaptchaImageHandler 验证码 输出
diff --git a/app/admin/model/system/sysRoles.go b/app/admin/model/system/sysRoles.go
index 368e84c..b4932ad 100644
--- a/app/admin/model/system/sysRoles.go
+++ b/app/admin/model/system/sysRoles.go
@@ -7,7 +7,6 @@ import (
"ruoyi-go/utils"
"ruoyi-go/utils/R"
"strconv"
- "strings"
"time"
)
@@ -100,18 +99,18 @@ func GetMenuPermission(user SysUser) []string {
if IsAdmin(&user) {
return []string{"*:*:*"}
} else {
- var str string
+ var permissions []string
err := mysql.MysqlDb().Raw("select distinct m.perms "+
"from sys_menu m "+
"left join sys_role_menu rm on m.menu_id = rm.menu_id "+
"left join sys_user_role ur on rm.role_id = ur.role_id "+
"left join sys_role r on r.role_id = ur.role_id "+
"where m.status = '0' and r.status = '0' and ur.user_id = ?", user.UserId).
- Scan(&str).Error
+ Scan(&permissions).Error
if err != nil {
panic(R.ReturnFailMsg(err.Error()))
}
- return strings.Split(str, ",")
+ return utils.RemoveEmpty(permissions)
}
}
diff --git a/utils/R/R.go b/utils/R/R.go
index 1ffece8..e486879 100644
--- a/utils/R/R.go
+++ b/utils/R/R.go
@@ -24,6 +24,13 @@ func ReturnSuccess(data any) Result {
}
}
+func ReturnSuccessMsg(msg string) Result {
+ return Result{
+ Code: http.StatusOK,
+ Msg: msg,
+ }
+}
+
func ReturnFailMsg(msg string) Result {
return Result{
Msg: msg,
diff --git a/utils/utils.go b/utils/utils.go
index a15f6f5..3838e41 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -191,3 +191,12 @@ func GetDbType(dt string) string {
return "string"
}
}
+
+func RemoveEmpty(arr []string) (result []string) {
+ for _, value := range arr {
+ if len(value) > 0 { // 判断字符串长度大于零则添加到结果数组中
+ result = append(result, value)
+ }
+ }
+ return
+}
--
Gitee
From c05cceb0eb79c12575d015c57b140a9a4b1410ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=B2=E4=B9=83=E8=90=8C?= <908085643@qq.com>
Date: Wed, 15 May 2024 21:30:17 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Dockerfile | 2 +-
frontend/ruoyi-ui/README.md | 6 ++++++
routers/routers.go | 3 +++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/Dockerfile b/Dockerfile
index 07ae274..455072d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,6 +9,6 @@ RUN mkdir -p "/data/app" \
WORKDIR "/data/app"
# 拷贝
COPY main /data/app/main
-COPY web /data/app/web
+
# docker run 时执行命令
ENTRYPOINT ["./main"]
diff --git a/frontend/ruoyi-ui/README.md b/frontend/ruoyi-ui/README.md
index 49271bf..53df67b 100644
--- a/frontend/ruoyi-ui/README.md
+++ b/frontend/ruoyi-ui/README.md
@@ -42,3 +42,9 @@ v18.13.0
修改了后台访问路径
https://blog.csdn.net/u012069313/article/details/129530029
+
+
+记录node 版本
+```
+node: '8 || 10 || 12 || 14 || 16 || 17'
+```
\ No newline at end of file
diff --git a/routers/routers.go b/routers/routers.go
index fe0435e..49080eb 100644
--- a/routers/routers.go
+++ b/routers/routers.go
@@ -19,6 +19,9 @@ func Init() *gin.Engine {
gin.SetMode(config.Server.RunMode)
r := gin.New()
+ // 如果URL的路径是固定的,那么重定向到配置的固定路径
+ r.RedirectFixedPath = true
+
r.Use(logs.Logger())
r.Use(gin.Recovery())
/*自定义错误*/
--
Gitee
From a09597d36139f51d53aa7ca4f1dabea636bb73dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=B2=E4=B9=83=E8=90=8C?= <908085643@qq.com>
Date: Fri, 24 May 2024 22:20:37 +0800
Subject: [PATCH 3/9] =?UTF-8?q?#I9K8XU=20=E4=BF=AE=E6=94=B9bug=20#I9PTVU?=
=?UTF-8?q?=20=E9=94=99=E8=AF=AF=E4=BF=AE=E6=94=B9=20=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E6=BC=94=E7=A4=BA=E7=8E=AF=E5=A2=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 11 +++++++++++
app/admin/api/system/dept.go | 2 ++
app/admin/api/system/menu.go | 2 ++
app/admin/api/system/roles.go | 2 ++
frontend/ruoyi-ui/vue.config.js | 2 +-
5 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1ddf66d..599f5e0 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,9 @@
## 在线体验
- admin/admin123
+- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
+
+演示地址:http://ziqijia.cn/admin/login
## 演示图
访问地址:http://127.0.0.1:8080/old#/
@@ -94,6 +97,13 @@
2.拉取依赖
> go mod tidy
+错误信息timeout。
+自动下载
+go env -w GO111MODULE=on
+设置环境为国内代理
+go env -w GOPROXY=https://goproxy.cn,direct
+
+
3.创建.env文件以及配置
> cat config/config.yaml.example > config.yaml
配置用户名和密码以及端口号等信息
@@ -141,6 +151,7 @@ ruoyi-go-code-generator
## docker 打包
```
+
go build main.go
docker-compose up -d
diff --git a/app/admin/api/system/dept.go b/app/admin/api/system/dept.go
index 1542244..6ef888c 100644
--- a/app/admin/api/system/dept.go
+++ b/app/admin/api/system/dept.go
@@ -91,6 +91,8 @@ func SaveDept(context *gin.Context) {
user := system.FindUserById(userId)
deptParam.CreateBy = user.UserName
deptParam.CreateTime = time.Now()
+ deptParam.UpdateBy = user.UserName
+ deptParam.UpdateTime = time.Now()
result := system.SaveDept(deptParam)
context.JSON(http.StatusOK, result)
}
diff --git a/app/admin/api/system/menu.go b/app/admin/api/system/menu.go
index 94c60d5..a27bd4c 100644
--- a/app/admin/api/system/menu.go
+++ b/app/admin/api/system/menu.go
@@ -126,6 +126,8 @@ func SaveMenu(context *gin.Context) {
user := system.FindUserById(userId)
menuParm.CreateBy = user.UserName
menuParm.CreateTime = time.Now()
+ menuParm.UpdateBy = user.UserName
+ menuParm.UpdateTime = time.Now()
result := system.AddMenu(menuParm)
context.JSON(http.StatusOK, result)
}
diff --git a/app/admin/api/system/roles.go b/app/admin/api/system/roles.go
index b2bfb5b..ccbfb97 100644
--- a/app/admin/api/system/roles.go
+++ b/app/admin/api/system/roles.go
@@ -170,6 +170,8 @@ func SaveRole(context *gin.Context) {
user := system.FindUserById(userId)
rolesParam.CreateBy = user.UserName
rolesParam.CreateTime = time.Now()
+ rolesParam.UpdateBy = user.UserName
+ rolesParam.UpdateTime = time.Now()
result := system.SaveRole(rolesParam)
context.JSON(http.StatusOK, result)
}
diff --git a/frontend/ruoyi-ui/vue.config.js b/frontend/ruoyi-ui/vue.config.js
index c78a081..f0afa31 100644
--- a/frontend/ruoyi-ui/vue.config.js
+++ b/frontend/ruoyi-ui/vue.config.js
@@ -35,7 +35,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
- target: `http://localhost:8080`,
+ target: `http://192.168.0.196:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
--
Gitee
From 730aa4f7ce652dcaf264143fc919a60ca35c046a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=B2=E4=B9=83=E8=90=8C?= <908085643@qq.com>
Date: Fri, 24 May 2024 22:42:54 +0800
Subject: [PATCH 4/9] =?UTF-8?q?#I9K8XU=20=E4=BF=AE=E6=94=B9bug=20#I9PTVU?=
=?UTF-8?q?=20=E9=94=99=E8=AF=AF=E4=BF=AE=E6=94=B9=20=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E6=BC=94=E7=A4=BA=E7=8E=AF=E5=A2=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/admin/api/system/dept.go | 10 ++--------
app/admin/api/system/menu.go | 5 -----
app/admin/api/system/roles.go | 4 ----
app/admin/model/monitor/sysOperLog.go | 2 +-
app/admin/model/system/sysConfig.go | 4 ++--
app/admin/model/system/sysDept.go | 4 ++--
app/admin/model/system/sysDictData.go | 4 ++--
app/admin/model/system/sysDictType.go | 4 ++--
app/admin/model/system/sysMenu.go | 4 ++--
app/admin/model/system/sysNotice.go | 4 ++--
app/admin/model/system/sysPosts.go | 4 ++--
app/admin/model/system/sysRoles.go | 4 ++--
app/admin/model/system/sysUser.go | 4 ++--
app/admin/model/tools/genTable.go | 4 ++--
frontend/ruoyi-ui/package.json | 2 ++
frontend/ruoyi-ui/src/views/login.vue | 6 +++---
frontend/ruoyi-ui/src/views/register.vue | 2 +-
frontend/ruoyi-ui/vue.config.js | 2 +-
view/admin/static/js/chunk-70c44212.2bd2dc76.js | 2 +-
view/admin/static/js/chunk-f55d517c.6d6a8a5d.js | 2 +-
20 files changed, 32 insertions(+), 45 deletions(-)
diff --git a/app/admin/api/system/dept.go b/app/admin/api/system/dept.go
index 6ef888c..008d2d5 100644
--- a/app/admin/api/system/dept.go
+++ b/app/admin/api/system/dept.go
@@ -1,16 +1,14 @@
package system
import (
+ "github.com/gin-gonic/gin"
+ "github.com/wxnacy/wgo/arrays"
"net/http"
"ruoyi-go/app/admin/model/system"
"ruoyi-go/app/admin/model/tools"
"ruoyi-go/utils"
"ruoyi-go/utils/R"
"strconv"
- "time"
-
- "github.com/gin-gonic/gin"
- "github.com/wxnacy/wgo/arrays"
)
func ListDept(context *gin.Context) {
@@ -90,9 +88,6 @@ func SaveDept(context *gin.Context) {
}
user := system.FindUserById(userId)
deptParam.CreateBy = user.UserName
- deptParam.CreateTime = time.Now()
- deptParam.UpdateBy = user.UserName
- deptParam.UpdateTime = time.Now()
result := system.SaveDept(deptParam)
context.JSON(http.StatusOK, result)
}
@@ -106,7 +101,6 @@ func UpDataDept(context *gin.Context) {
}
user := system.FindUserById(userId)
deptParam.UpdateBy = user.UserName
- deptParam.UpdateTime = time.Now()
result := system.UpDataDept(deptParam)
context.JSON(http.StatusOK, result)
}
diff --git a/app/admin/api/system/menu.go b/app/admin/api/system/menu.go
index a27bd4c..67be6c0 100644
--- a/app/admin/api/system/menu.go
+++ b/app/admin/api/system/menu.go
@@ -10,7 +10,6 @@ import (
"ruoyi-go/pkg/mysql"
"ruoyi-go/utils"
"ruoyi-go/utils/R"
- "time"
)
// GetRoutersHandler /*
@@ -125,9 +124,6 @@ func SaveMenu(context *gin.Context) {
}
user := system.FindUserById(userId)
menuParm.CreateBy = user.UserName
- menuParm.CreateTime = time.Now()
- menuParm.UpdateBy = user.UserName
- menuParm.UpdateTime = time.Now()
result := system.AddMenu(menuParm)
context.JSON(http.StatusOK, result)
}
@@ -141,7 +137,6 @@ func UploadMenu(context *gin.Context) {
}
user := system.FindUserById(userId)
menuParm.UpdateBy = user.UserName
- menuParm.UpdateTime = time.Now()
result := system.UpdateMenu(menuParm)
context.JSON(http.StatusOK, result)
}
diff --git a/app/admin/api/system/roles.go b/app/admin/api/system/roles.go
index ccbfb97..cce5768 100644
--- a/app/admin/api/system/roles.go
+++ b/app/admin/api/system/roles.go
@@ -169,9 +169,6 @@ func SaveRole(context *gin.Context) {
}
user := system.FindUserById(userId)
rolesParam.CreateBy = user.UserName
- rolesParam.CreateTime = time.Now()
- rolesParam.UpdateBy = user.UserName
- rolesParam.UpdateTime = time.Now()
result := system.SaveRole(rolesParam)
context.JSON(http.StatusOK, result)
}
@@ -186,7 +183,6 @@ func UploadRole(context *gin.Context) {
}
user := system.FindUserById(userId)
rolesParam.UpdateBy = user.UserName
- rolesParam.UpdateTime = time.Now()
result := system.UploadRole(rolesParam, utils.GetInterfaceToInt(userId))
context.JSON(http.StatusOK, result)
}
diff --git a/app/admin/model/monitor/sysOperLog.go b/app/admin/model/monitor/sysOperLog.go
index 9eb3d38..b65bbe2 100644
--- a/app/admin/model/monitor/sysOperLog.go
+++ b/app/admin/model/monitor/sysOperLog.go
@@ -28,7 +28,7 @@ type SysOperLog struct {
JsonResult string `json:"jsonResult" gorm:"json_result"`
Status string `json:"status" gorm:"status"`
ErrorMsg string `json:"errorMsg" gorm:"error_msg"`
- OperTime time.Time `json:"operTime" gorm:"column:oper_time;type:datetime"`
+ OperTime time.Time `json:"operTime" gorm:"column:oper_time;type:datetime;autoCreateTime"`
}
// 表中的状态值
diff --git a/app/admin/model/system/sysConfig.go b/app/admin/model/system/sysConfig.go
index 67a78c8..31fe131 100644
--- a/app/admin/model/system/sysConfig.go
+++ b/app/admin/model/system/sysConfig.go
@@ -16,9 +16,9 @@ type SysConfig struct {
ConfigValue string `json:"configValue" gorm:"config_value"`
ConfigType string `json:"configType" gorm:"config_type"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysDept.go b/app/admin/model/system/sysDept.go
index afc28f3..66d97ee 100644
--- a/app/admin/model/system/sysDept.go
+++ b/app/admin/model/system/sysDept.go
@@ -20,9 +20,9 @@ type SysDept struct {
Status string `json:"status" gorm:"status"`
DelFlag string `json:"delFlag" gorm:"del_flag"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
}
type SysDeptResult struct {
diff --git a/app/admin/model/system/sysDictData.go b/app/admin/model/system/sysDictData.go
index ab48a4c..07fc077 100644
--- a/app/admin/model/system/sysDictData.go
+++ b/app/admin/model/system/sysDictData.go
@@ -21,9 +21,9 @@ type SysDictData struct {
IsDefault string `json:"isDefault" gorm:"is_default"`
Status string `json:"status" gorm:"status"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysDictType.go b/app/admin/model/system/sysDictType.go
index b8eda17..435a54b 100644
--- a/app/admin/model/system/sysDictType.go
+++ b/app/admin/model/system/sysDictType.go
@@ -15,9 +15,9 @@ type SysDictType struct {
DictType string `json:"dictType" gorm:"dict_type"`
Status string `json:"status" gorm:"status"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysMenu.go b/app/admin/model/system/sysMenu.go
index 70cb5f5..6deec02 100644
--- a/app/admin/model/system/sysMenu.go
+++ b/app/admin/model/system/sysMenu.go
@@ -26,9 +26,9 @@ type SysMenu struct {
IsCache string `json:"isCache" gorm:"is_cache"`
Component string `json:"component" gorm:"component"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysNotice.go b/app/admin/model/system/sysNotice.go
index d2ac336..e85a436 100644
--- a/app/admin/model/system/sysNotice.go
+++ b/app/admin/model/system/sysNotice.go
@@ -15,9 +15,9 @@ type SysNotice struct {
NoticeContent string `json:"noticeContent" gorm:"notice_content"`
Status string `json:"status" gorm:"status"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysPosts.go b/app/admin/model/system/sysPosts.go
index 93acdc9..28e9987 100644
--- a/app/admin/model/system/sysPosts.go
+++ b/app/admin/model/system/sysPosts.go
@@ -16,9 +16,9 @@ type SysPost struct {
PostSort int `json:"postSort" gorm:"post_sort"`
Status string `json:"status" gorm:"status"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysRoles.go b/app/admin/model/system/sysRoles.go
index b4932ad..2141cee 100644
--- a/app/admin/model/system/sysRoles.go
+++ b/app/admin/model/system/sysRoles.go
@@ -22,9 +22,9 @@ type SysRoles struct {
DeptCheckStrictly bool `json:"deptCheckStrictly" gorm:"dept_check_strictly"`
DelFlag string `json:"delFlag" gorm:"del_flag"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/system/sysUser.go b/app/admin/model/system/sysUser.go
index 12f4b82..5e37794 100644
--- a/app/admin/model/system/sysUser.go
+++ b/app/admin/model/system/sysUser.go
@@ -27,9 +27,9 @@ type SysUser struct {
LoginIp string `json:"loginIp" gorm:"login_ip"`
LoginDate time.Time `json:"loginDate" gorm:"column:login_date;type:datetime"`
CreateBy string `json:"createBy" gorm:"create_by"`
- CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime time.Time `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"updateBy" gorm:"update_by"`
- UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime time.Time `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/app/admin/model/tools/genTable.go b/app/admin/model/tools/genTable.go
index 751a47d..5e7d36a 100644
--- a/app/admin/model/tools/genTable.go
+++ b/app/admin/model/tools/genTable.go
@@ -21,9 +21,9 @@ type GenTable struct {
GenPath string `json:"genPath" gorm:"gen_path"`
Options string `json:"options" gorm:"options"`
CreateBy string `json:"-" gorm:"create_by"`
- CreateTime utils.JsonTime `json:"createTime" gorm:"column:create_time;type:datetime"`
+ CreateTime utils.JsonTime `json:"createTime" gorm:"column:create_time;type:datetime;autoCreateTime"`
UpdateBy string `json:"-" gorm:"update_by"`
- UpdateTime utils.JsonTime `json:"updateTime" gorm:"column:update_time;type:datetime"`
+ UpdateTime utils.JsonTime `json:"updateTime" gorm:"column:update_time;type:datetime;autoCreateTime"`
Remark string `json:"remark" gorm:"remark"`
}
diff --git a/frontend/ruoyi-ui/package.json b/frontend/ruoyi-ui/package.json
index 8e20cdc..6466e57 100644
--- a/frontend/ruoyi-ui/package.json
+++ b/frontend/ruoyi-ui/package.json
@@ -7,6 +7,8 @@
"scripts": {
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
+ "dev-mac": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+ "build-mac:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
diff --git a/frontend/ruoyi-ui/src/views/login.vue b/frontend/ruoyi-ui/src/views/login.vue
index 8fc2038..0dd064b 100644
--- a/frontend/ruoyi-ui/src/views/login.vue
+++ b/frontend/ruoyi-ui/src/views/login.vue
@@ -56,7 +56,7 @@
@@ -72,8 +72,8 @@ export default {
return {
codeUrl: "",
loginForm: {
- username: "admin",
- password: "admin123",
+ username: "",
+ password: "",
rememberMe: false,
code: "",
uuid: ""
diff --git a/frontend/ruoyi-ui/src/views/register.vue b/frontend/ruoyi-ui/src/views/register.vue
index 164acc9..0dea072 100644
--- a/frontend/ruoyi-ui/src/views/register.vue
+++ b/frontend/ruoyi-ui/src/views/register.vue
@@ -61,7 +61,7 @@
diff --git a/frontend/ruoyi-ui/vue.config.js b/frontend/ruoyi-ui/vue.config.js
index f0afa31..c78a081 100644
--- a/frontend/ruoyi-ui/vue.config.js
+++ b/frontend/ruoyi-ui/vue.config.js
@@ -35,7 +35,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
- target: `http://192.168.0.196:8080`,
+ target: `http://localhost:8080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
diff --git a/view/admin/static/js/chunk-70c44212.2bd2dc76.js b/view/admin/static/js/chunk-70c44212.2bd2dc76.js
index eb60e19..51ec3b7 100644
--- a/view/admin/static/js/chunk-70c44212.2bd2dc76.js
+++ b/view/admin/static/js/chunk-70c44212.2bd2dc76.js
@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-70c44212"],{"6e4d":function(e,t,o){"use strict";o("9cd2")},"9cd2":function(e,t,o){},dd7b:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"login"},[o("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules}},[o("h3",{staticClass:"title"},[e._v("若依Go后台管理系统")]),o("el-form-item",{attrs:{prop:"username"}},[o("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"user"},slot:"prefix"})],1)],1),o("el-form-item",{attrs:{prop:"password"}},[o("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),e.captchaEnabled?o("el-form-item",{attrs:{prop:"code"}},[o("el-input",{staticStyle:{width:"63%"},attrs:{"auto-complete":"off",placeholder:"验证码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.code,callback:function(t){e.$set(e.loginForm,"code",t)},expression:"loginForm.code"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"validCode"},slot:"prefix"})],1),o("div",{staticClass:"login-code"},[o("img",{staticClass:"login-code-img",attrs:{src:e.codeUrl},on:{click:e.getCode}})])],1):e._e(),o("el-checkbox",{staticStyle:{margin:"0px 0px 25px 0px"},model:{value:e.loginForm.rememberMe,callback:function(t){e.$set(e.loginForm,"rememberMe",t)},expression:"loginForm.rememberMe"}},[e._v("记住密码")]),o("el-form-item",{staticStyle:{width:"100%"}},[o("el-button",{staticStyle:{width:"100%"},attrs:{loading:e.loading,size:"medium",type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleLogin(t)}}},[e.loading?o("span",[e._v("登 录 中...")]):o("span",[e._v("登 录")])]),e.register?o("div",{staticStyle:{float:"right"}},[o("router-link",{staticClass:"link-type",attrs:{to:"/register"}},[e._v("立即注册")])],1):e._e()],1)],1),e._m(0)],1)},i=[function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"el-login-footer"},[o("span",[e._v("Copyright © 2018-2023 ruoyi.vip All Rights Reserved.")])])}],n=o("7ded"),a=o("852e"),s=o.n(a),l=o("24e5"),c=o.n(l),d="MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\nnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==",u="MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\nPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\nkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\ncSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\nDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\nYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\nUP8iWi1Qw0Y=";function m(e){var t=new c.a;return t.setPublicKey(d),t.encrypt(e)}function g(e){var t=new c.a;return t.setPrivateKey(u),t.decrypt(e)}var p={name:"Login",data:function(){return{codeUrl:"",loginForm:{username:"admin",password:"admin123",rememberMe:!1,code:"",uuid:""},loginRules:{username:[{required:!0,trigger:"blur",message:"请输入您的账号"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"}],code:[{required:!0,trigger:"change",message:"请输入验证码"}]},loading:!1,captchaEnabled:!0,register:!1,redirect:void 0}},watch:{$route:{handler:function(e){this.redirect=e.query&&e.query.redirect},immediate:!0}},created:function(){this.getCode(),this.getCookie()},methods:{getCode:function(){var e=this;Object(n["a"])().then((function(t){e.captchaEnabled=void 0!==t.captchaEnabled&&t.captchaEnabled,e.captchaEnabled&&(e.codeUrl="data:image/gif;base64,"+t.img,e.loginForm.uuid=t.uuid)}))},getCookie:function(){var e=s.a.get("username"),t=s.a.get("password"),o=s.a.get("rememberMe");this.loginForm={username:void 0===e?this.loginForm.username:e,password:void 0===t?this.loginForm.password:g(t),rememberMe:void 0!==o&&Boolean(o)}},handleLogin:function(){var e=this;this.$refs.loginForm.validate((function(t){t&&(e.loading=!0,e.loginForm.rememberMe?(s.a.set("username",e.loginForm.username,{expires:30}),s.a.set("password",m(e.loginForm.password),{expires:30}),s.a.set("rememberMe",e.loginForm.rememberMe,{expires:30})):(s.a.remove("username"),s.a.remove("password"),s.a.remove("rememberMe")),e.$store.dispatch("Login",e.loginForm).then((function(){e.$router.push({path:e.redirect||"/"}).catch((function(){}))})).catch((function(){e.loading=!1,e.captchaEnabled&&e.getCode()})))}))}}},f=p,h=(o("6e4d"),o("2877")),v=Object(h["a"])(f,r,i,!1,null,null,null);t["default"]=v.exports}}]);
\ No newline at end of file
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-70c44212"],{"6e4d":function(e,t,o){"use strict";o("9cd2")},"9cd2":function(e,t,o){},dd7b:function(e,t,o){"use strict";o.r(t);var r=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"login"},[o("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules}},[o("h3",{staticClass:"title"},[e._v("若依Go后台管理系统")]),o("el-form-item",{attrs:{prop:"username"}},[o("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"user"},slot:"prefix"})],1)],1),o("el-form-item",{attrs:{prop:"password"}},[o("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),e.captchaEnabled?o("el-form-item",{attrs:{prop:"code"}},[o("el-input",{staticStyle:{width:"63%"},attrs:{"auto-complete":"off",placeholder:"验证码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.code,callback:function(t){e.$set(e.loginForm,"code",t)},expression:"loginForm.code"}},[o("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"validCode"},slot:"prefix"})],1),o("div",{staticClass:"login-code"},[o("img",{staticClass:"login-code-img",attrs:{src:e.codeUrl},on:{click:e.getCode}})])],1):e._e(),o("el-checkbox",{staticStyle:{margin:"0px 0px 25px 0px"},model:{value:e.loginForm.rememberMe,callback:function(t){e.$set(e.loginForm,"rememberMe",t)},expression:"loginForm.rememberMe"}},[e._v("记住密码")]),o("el-form-item",{staticStyle:{width:"100%"}},[o("el-button",{staticStyle:{width:"100%"},attrs:{loading:e.loading,size:"medium",type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleLogin(t)}}},[e.loading?o("span",[e._v("登 录 中...")]):o("span",[e._v("登 录")])]),e.register?o("div",{staticStyle:{float:"right"}},[o("router-link",{staticClass:"link-type",attrs:{to:"/register"}},[e._v("立即注册")])],1):e._e()],1)],1),e._m(0)],1)},i=[function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"el-login-footer"},[o("span",[e._v("Copyright © 2018-2024 ruoyi.vip All Rights Reserved.")])])}],n=o("7ded"),a=o("852e"),s=o.n(a),l=o("24e5"),c=o.n(l),d="MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\nnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==",u="MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\nPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\nkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\ncSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\nDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\nYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\nUP8iWi1Qw0Y=";function m(e){var t=new c.a;return t.setPublicKey(d),t.encrypt(e)}function g(e){var t=new c.a;return t.setPrivateKey(u),t.decrypt(e)}var p={name:"Login",data:function(){return{codeUrl:"",loginForm:{username:"admin",password:"admin123",rememberMe:!1,code:"",uuid:""},loginRules:{username:[{required:!0,trigger:"blur",message:"请输入您的账号"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"}],code:[{required:!0,trigger:"change",message:"请输入验证码"}]},loading:!1,captchaEnabled:!0,register:!1,redirect:void 0}},watch:{$route:{handler:function(e){this.redirect=e.query&&e.query.redirect},immediate:!0}},created:function(){this.getCode(),this.getCookie()},methods:{getCode:function(){var e=this;Object(n["a"])().then((function(t){e.captchaEnabled=void 0!==t.captchaEnabled&&t.captchaEnabled,e.captchaEnabled&&(e.codeUrl="data:image/gif;base64,"+t.img,e.loginForm.uuid=t.uuid)}))},getCookie:function(){var e=s.a.get("username"),t=s.a.get("password"),o=s.a.get("rememberMe");this.loginForm={username:void 0===e?this.loginForm.username:e,password:void 0===t?this.loginForm.password:g(t),rememberMe:void 0!==o&&Boolean(o)}},handleLogin:function(){var e=this;this.$refs.loginForm.validate((function(t){t&&(e.loading=!0,e.loginForm.rememberMe?(s.a.set("username",e.loginForm.username,{expires:30}),s.a.set("password",m(e.loginForm.password),{expires:30}),s.a.set("rememberMe",e.loginForm.rememberMe,{expires:30})):(s.a.remove("username"),s.a.remove("password"),s.a.remove("rememberMe")),e.$store.dispatch("Login",e.loginForm).then((function(){e.$router.push({path:e.redirect||"/"}).catch((function(){}))})).catch((function(){e.loading=!1,e.captchaEnabled&&e.getCode()})))}))}}},f=p,h=(o("6e4d"),o("2877")),v=Object(h["a"])(f,r,i,!1,null,null,null);t["default"]=v.exports}}]);
\ No newline at end of file
diff --git a/view/admin/static/js/chunk-f55d517c.6d6a8a5d.js b/view/admin/static/js/chunk-f55d517c.6d6a8a5d.js
index 2ee8142..4b9ac6f 100644
--- a/view/admin/static/js/chunk-f55d517c.6d6a8a5d.js
+++ b/view/admin/static/js/chunk-f55d517c.6d6a8a5d.js
@@ -1 +1 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f55d517c"],{7803:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"register"},[r("el-form",{ref:"registerForm",staticClass:"register-form",attrs:{model:e.registerForm,rules:e.registerRules}},[r("h3",{staticClass:"title"},[e._v("若依Go后台管理系统")]),r("el-form-item",{attrs:{prop:"username"}},[r("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.registerForm.username,callback:function(t){e.$set(e.registerForm,"username",t)},expression:"registerForm.username"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"user"},slot:"prefix"})],1)],1),r("el-form-item",{attrs:{prop:"password"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.password,callback:function(t){e.$set(e.registerForm,"password",t)},expression:"registerForm.password"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),r("el-form-item",{attrs:{prop:"confirmPassword"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"确认密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.confirmPassword,callback:function(t){e.$set(e.registerForm,"confirmPassword",t)},expression:"registerForm.confirmPassword"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),e.captchaEnabled?r("el-form-item",{attrs:{prop:"code"}},[r("el-input",{staticStyle:{width:"63%"},attrs:{"auto-complete":"off",placeholder:"验证码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.code,callback:function(t){e.$set(e.registerForm,"code",t)},expression:"registerForm.code"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"validCode"},slot:"prefix"})],1),r("div",{staticClass:"register-code"},[r("img",{staticClass:"register-code-img",attrs:{src:e.codeUrl},on:{click:e.getCode}})])],1):e._e(),r("el-form-item",{staticStyle:{width:"100%"}},[r("el-button",{staticStyle:{width:"100%"},attrs:{loading:e.loading,size:"medium",type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleRegister(t)}}},[e.loading?r("span",[e._v("注 册 中...")]):r("span",[e._v("注 册")])]),r("div",{staticStyle:{float:"right"}},[r("router-link",{staticClass:"link-type",attrs:{to:"/login"}},[e._v("使用已有账户登录")])],1)],1)],1),e._m(0)],1)},i=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"el-register-footer"},[r("span",[e._v("Copyright © 2018-2023 ruoyi.vip All Rights Reserved.")])])}],o=r("7ded"),a={name:"Register",data:function(){var e=this,t=function(t,r,s){e.registerForm.password!==r?s(new Error("两次输入的密码不一致")):s()};return{codeUrl:"",registerForm:{username:"",password:"",confirmPassword:"",code:"",uuid:""},registerRules:{username:[{required:!0,trigger:"blur",message:"请输入您的账号"},{min:2,max:20,message:"用户账号长度必须介于 2 和 20 之间",trigger:"blur"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"},{min:5,max:20,message:"用户密码长度必须介于 5 和 20 之间",trigger:"blur"}],confirmPassword:[{required:!0,trigger:"blur",message:"请再次输入您的密码"},{required:!0,validator:t,trigger:"blur"}],code:[{required:!0,trigger:"change",message:"请输入验证码"}]},loading:!1,captchaEnabled:!0}},created:function(){this.getCode()},methods:{getCode:function(){var e=this;Object(o["a"])().then((function(t){e.captchaEnabled=void 0===t.captchaEnabled||t.captchaEnabled,e.captchaEnabled&&(e.codeUrl="data:image/gif;base64,"+t.img,e.registerForm.uuid=t.uuid)}))},handleRegister:function(){var e=this;this.$refs.registerForm.validate((function(t){t&&(e.loading=!0,Object(o["e"])(e.registerForm).then((function(t){var r=e.registerForm.username;e.$alert("恭喜你,您的账号 "+r+" 注册成功!","系统提示",{dangerouslyUseHTMLString:!0,type:"success"}).then((function(){e.$router.push("/login")})).catch((function(){}))})).catch((function(){e.loading=!1,e.captchaEnabled&&e.getCode()})))}))}}},n=a,l=(r("8de9"),r("2877")),c=Object(l["a"])(n,s,i,!1,null,null,null);t["default"]=c.exports},"8de9":function(e,t,r){"use strict";r("9413")},9413:function(e,t,r){}}]);
\ No newline at end of file
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f55d517c"],{7803:function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"register"},[r("el-form",{ref:"registerForm",staticClass:"register-form",attrs:{model:e.registerForm,rules:e.registerRules}},[r("h3",{staticClass:"title"},[e._v("若依Go后台管理系统")]),r("el-form-item",{attrs:{prop:"username"}},[r("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.registerForm.username,callback:function(t){e.$set(e.registerForm,"username",t)},expression:"registerForm.username"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"user"},slot:"prefix"})],1)],1),r("el-form-item",{attrs:{prop:"password"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.password,callback:function(t){e.$set(e.registerForm,"password",t)},expression:"registerForm.password"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),r("el-form-item",{attrs:{prop:"confirmPassword"}},[r("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"确认密码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.confirmPassword,callback:function(t){e.$set(e.registerForm,"confirmPassword",t)},expression:"registerForm.confirmPassword"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"password"},slot:"prefix"})],1)],1),e.captchaEnabled?r("el-form-item",{attrs:{prop:"code"}},[r("el-input",{staticStyle:{width:"63%"},attrs:{"auto-complete":"off",placeholder:"验证码"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleRegister(t)}},model:{value:e.registerForm.code,callback:function(t){e.$set(e.registerForm,"code",t)},expression:"registerForm.code"}},[r("svg-icon",{staticClass:"el-input__icon input-icon",attrs:{slot:"prefix","icon-class":"validCode"},slot:"prefix"})],1),r("div",{staticClass:"register-code"},[r("img",{staticClass:"register-code-img",attrs:{src:e.codeUrl},on:{click:e.getCode}})])],1):e._e(),r("el-form-item",{staticStyle:{width:"100%"}},[r("el-button",{staticStyle:{width:"100%"},attrs:{loading:e.loading,size:"medium",type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleRegister(t)}}},[e.loading?r("span",[e._v("注 册 中...")]):r("span",[e._v("注 册")])]),r("div",{staticStyle:{float:"right"}},[r("router-link",{staticClass:"link-type",attrs:{to:"/login"}},[e._v("使用已有账户登录")])],1)],1)],1),e._m(0)],1)},i=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"el-register-footer"},[r("span",[e._v("Copyright © 2018-2024 ruoyi.vip All Rights Reserved.")])])}],o=r("7ded"),a={name:"Register",data:function(){var e=this,t=function(t,r,s){e.registerForm.password!==r?s(new Error("两次输入的密码不一致")):s()};return{codeUrl:"",registerForm:{username:"",password:"",confirmPassword:"",code:"",uuid:""},registerRules:{username:[{required:!0,trigger:"blur",message:"请输入您的账号"},{min:2,max:20,message:"用户账号长度必须介于 2 和 20 之间",trigger:"blur"}],password:[{required:!0,trigger:"blur",message:"请输入您的密码"},{min:5,max:20,message:"用户密码长度必须介于 5 和 20 之间",trigger:"blur"}],confirmPassword:[{required:!0,trigger:"blur",message:"请再次输入您的密码"},{required:!0,validator:t,trigger:"blur"}],code:[{required:!0,trigger:"change",message:"请输入验证码"}]},loading:!1,captchaEnabled:!0}},created:function(){this.getCode()},methods:{getCode:function(){var e=this;Object(o["a"])().then((function(t){e.captchaEnabled=void 0===t.captchaEnabled||t.captchaEnabled,e.captchaEnabled&&(e.codeUrl="data:image/gif;base64,"+t.img,e.registerForm.uuid=t.uuid)}))},handleRegister:function(){var e=this;this.$refs.registerForm.validate((function(t){t&&(e.loading=!0,Object(o["e"])(e.registerForm).then((function(t){var r=e.registerForm.username;e.$alert("恭喜你,您的账号 "+r+" 注册成功!","系统提示",{dangerouslyUseHTMLString:!0,type:"success"}).then((function(){e.$router.push("/login")})).catch((function(){}))})).catch((function(){e.loading=!1,e.captchaEnabled&&e.getCode()})))}))}}},n=a,l=(r("8de9"),r("2877")),c=Object(l["a"])(n,s,i,!1,null,null,null);t["default"]=c.exports},"8de9":function(e,t,r){"use strict";r("9413")},9413:function(e,t,r){}}]);
\ No newline at end of file
--
Gitee
From a82467c778fe706c3f009b86ea6a00a71281fce1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=B2=E4=B9=83=E8=90=8C?= <908085643@qq.com>
Date: Tue, 25 Jun 2024 22:35:22 +0800
Subject: [PATCH 5/9] =?UTF-8?q?ip=E8=8E=B7=E5=8F=96=E9=83=A8=E5=88=86?=
=?UTF-8?q?=E3=80=82=20index=20=E6=96=B9=E6=B3=95=E9=94=99=E8=AF=AFdemo?=
=?UTF-8?q?=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/admin/api/system/index.go | 3 ++-
app/admin/api/system/user.go | 1 +
app/admin/model/monitor/sysLogininfor.go | 6 +++---
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/app/admin/api/system/index.go b/app/admin/api/system/index.go
index 49f1d45..4e002bd 100644
--- a/app/admin/api/system/index.go
+++ b/app/admin/api/system/index.go
@@ -2,6 +2,7 @@ package system
import (
"github.com/gin-gonic/gin"
+ "net/http"
"ruoyi-go/utils/R"
)
@@ -13,5 +14,5 @@ func IndexData() {
// IndexHandler 测试代码
func IndexHandler(context *gin.Context) {
- R.ReturnSuccess("Hello ruoyi go")
+ context.JSON(http.StatusOK, R.ReturnSuccess("Hello ruoyi go"))
}
diff --git a/app/admin/api/system/user.go b/app/admin/api/system/user.go
index 4e3bb34..1f1e4d4 100644
--- a/app/admin/api/system/user.go
+++ b/app/admin/api/system/user.go
@@ -80,6 +80,7 @@ func findUser(param system.LoginParam, context *gin.Context) {
context.JSON(http.StatusOK, R.ReturnFailMsg("登录失败"))
return
}
+ // 登录日志
monitor.LoginInfoAdd(context, param, "登录成功", true)
context.JSON(http.StatusOK, gin.H{
"msg": "登录成功",
diff --git a/app/admin/model/monitor/sysLogininfor.go b/app/admin/model/monitor/sysLogininfor.go
index f9377b5..0996802 100644
--- a/app/admin/model/monitor/sysLogininfor.go
+++ b/app/admin/model/monitor/sysLogininfor.go
@@ -103,12 +103,11 @@ func LoginInfoAdd(context *gin.Context, param system.LoginParam, message string,
userAgent := context.Request.Header.Get("User-Agent")
Os := useragent.GetOsName(userAgent)
browser := useragent.GetBrowserName(userAgent)
- ip := utils.GetRemoteClientIp(context.Request)
var info = SysLogininfor{
UserName: param.UserName,
Msg: message,
- Ipaddr: "" + ip,
- LoginLocation: "" + utils.GetRealAddressByIP(ip),
+ Ipaddr: "" + context.ClientIP(),
+ LoginLocation: "" + utils.GetRealAddressByIPText(context.ClientIP()),
Browser: "" + browser,
Os: "" + Os,
Status: status,
@@ -136,4 +135,5 @@ func ClearLoginlog() R.Result {
func UnlockByUserName(userName string) {
/*在redis 里面删除*/
+
}
--
Gitee
From 52cceea02ae77f66708fc86f36a8795c3d4d52b8 Mon Sep 17 00:00:00 2001
From: OptimisticDevelo
Date: Tue, 23 Jul 2024 22:51:22 +0800
Subject: [PATCH 6/9] =?UTF-8?q?=E5=B0=91=E4=BC=A0=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
utils/ipUtils.go | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 utils/ipUtils.go
diff --git a/utils/ipUtils.go b/utils/ipUtils.go
new file mode 100644
index 0000000..b21f677
--- /dev/null
+++ b/utils/ipUtils.go
@@ -0,0 +1,92 @@
+package utils
+
+import (
+ "bytes"
+ "encoding/json"
+ "golang.org/x/text/encoding/simplifiedchinese"
+ "golang.org/x/text/transform"
+ "io/ioutil"
+ "net"
+ "net/http"
+ "time"
+)
+
+func GetRealAddressByIPText(ip string) string {
+ toByteIp := net.ParseIP(ip)
+ if isLocalIp(toByteIp) {
+ return "服务器登录"
+ }
+ if isLANIp(toByteIp) {
+ return "局域网"
+ }
+ return getLocation(ip)
+}
+
+func isLocalIp(IP net.IP) bool {
+ if IP.IsLoopback() || IP.IsLinkLocalMulticast() || IP.IsLinkLocalUnicast() {
+ return true
+ }
+ return false
+}
+
+func isLANIp(IP net.IP) bool {
+ if ip4 := IP.To4(); ip4 != nil {
+ switch true {
+ case ip4[0] == 10:
+ return true
+ case ip4[0] == 172 && ip4[1] >= 16 && ip4[1] <= 31:
+ return true
+ case ip4[0] == 192 && ip4[1] == 168:
+ return true
+ default:
+ return false
+ }
+ }
+ return false
+}
+func getLocation(ip string) string {
+ url := "https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + ip
+ client := &http.Client{Timeout: 5 * time.Second}
+ resp, err := client.Get(url)
+ if err != nil {
+ return "未知地址"
+ }
+ defer resp.Body.Close()
+ result, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return "未知地址"
+ }
+ reader := transform.NewReader(bytes.NewReader(result), simplifiedchinese.GBK.NewDecoder())
+ d, err := ioutil.ReadAll(reader)
+ if err != nil {
+ return "未知地址"
+ }
+ m := make(map[string]string)
+ err = json.Unmarshal(d, &m)
+ addr := m["addr"]
+ if addr != "" {
+ return addr
+ } else {
+ return "未知地址"
+ }
+}
+func GetLocalIP() (ip string, err error) {
+ addrs, err := net.InterfaceAddrs()
+ if err != nil {
+ return
+ }
+ for _, addr := range addrs {
+ ipAddr, ok := addr.(*net.IPNet)
+ if !ok {
+ continue
+ }
+ if ipAddr.IP.IsLoopback() {
+ continue
+ }
+ if !ipAddr.IP.IsGlobalUnicast() {
+ continue
+ }
+ return ipAddr.IP.String(), nil
+ }
+ return
+}
--
Gitee
From 8b5390b19030c58c3388c48bf5806ac571f6944e Mon Sep 17 00:00:00 2001
From: OptimisticDevelo
Date: Sat, 3 Aug 2024 12:48:03 +0800
Subject: [PATCH 7/9] =?UTF-8?q?1=E3=80=81=E8=BF=87=E6=BB=A4=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E6=B7=BB=E5=8A=A0=E3=80=82=202=E3=80=81ip=E5=9C=B0?=
=?UTF-8?q?=E5=9D=80=E6=97=A0=E7=94=A8=E5=8E=BB=E6=8E=89=E3=80=82=203?=
=?UTF-8?q?=E3=80=81=E5=90=8E=E5=8F=B0=E8=B7=AF=E5=BE=84=E5=88=B7=E6=96=B0?=
=?UTF-8?q?404=E6=96=87=E4=BB=B6=E8=A7=A3=E5=86=B3=E3=80=82=204=E3=80=81?=
=?UTF-8?q?=E5=BC=80=E5=8F=91=E6=96=87=E6=A1=A3=E5=88=9D=E6=AD=A5=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E9=9B=8F=E5=BD=A2=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 3 +-
README.md | 2 +
app/admin/model/monitor/sysLogininfor.go | 7 +-
go.mod | 2 +-
routers/routers.go | 30 +++-
utils/ipUtils.go | 174 +++++++++++------------
6 files changed, 122 insertions(+), 96 deletions(-)
diff --git a/.gitignore b/.gitignore
index f6b5630..70346de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,4 +20,5 @@
*/.DS_Store
*/*/.DS_Store
config.yaml
-/home
\ No newline at end of file
+/home
+ruoyi-go
\ No newline at end of file
diff --git a/README.md b/README.md
index 599f5e0..1e4d1d7 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,8 @@
演示地址:http://ziqijia.cn/admin/login
+文档地址: https://ruoyi-go.qiqjia.com
+
## 演示图
访问地址:http://127.0.0.1:8080/old#/
diff --git a/app/admin/model/monitor/sysLogininfor.go b/app/admin/model/monitor/sysLogininfor.go
index 0996802..8239a49 100644
--- a/app/admin/model/monitor/sysLogininfor.go
+++ b/app/admin/model/monitor/sysLogininfor.go
@@ -1,14 +1,15 @@
package monitor
import (
- "github.com/gin-gonic/gin"
- useragent "github.com/wenlng/go-user-agent"
"ruoyi-go/app/admin/model/system"
"ruoyi-go/app/admin/model/tools"
"ruoyi-go/pkg/mysql"
"ruoyi-go/utils"
"ruoyi-go/utils/R"
"time"
+
+ "github.com/gin-gonic/gin"
+ useragent "github.com/wenlng/go-user-agent"
)
// SysLogininfor model:数据库字段
@@ -107,7 +108,7 @@ func LoginInfoAdd(context *gin.Context, param system.LoginParam, message string,
UserName: param.UserName,
Msg: message,
Ipaddr: "" + context.ClientIP(),
- LoginLocation: "" + utils.GetRealAddressByIPText(context.ClientIP()),
+ LoginLocation: "" + utils.GetRealAddressByIP(context.ClientIP()),
Browser: "" + browser,
Os: "" + Os,
Status: status,
diff --git a/go.mod b/go.mod
index fc359a4..4d5cee2 100644
--- a/go.mod
+++ b/go.mod
@@ -29,6 +29,7 @@ require (
github.com/xuri/excelize/v2 v2.6.1
github.com/xxl-job/xxl-job-executor-go v0.4.0
golang.org/x/crypto v0.6.0
+ golang.org/x/text v0.8.0
gopkg.in/yaml.v2 v2.4.0
gorm.io/driver/mysql v1.4.1
gorm.io/gorm v1.24.0
@@ -87,7 +88,6 @@ require (
golang.org/x/net v0.8.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.6.0 // indirect
- golang.org/x/text v0.8.0 // indirect
golang.org/x/tools v0.7.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/routers/routers.go b/routers/routers.go
index 49080eb..7485c63 100644
--- a/routers/routers.go
+++ b/routers/routers.go
@@ -1,10 +1,7 @@
package routers
import (
- "github.com/gin-contrib/multitemplate"
- "github.com/gin-gonic/gin"
- swaggerFiles "github.com/swaggo/files"
- ginSwagger "github.com/swaggo/gin-swagger"
+ "io/ioutil"
"ruoyi-go/app/admin"
"ruoyi-go/app/html"
"ruoyi-go/config"
@@ -12,6 +9,12 @@ import (
"ruoyi-go/pkg/logs"
"ruoyi-go/utils"
error2 "ruoyi-go/utils/error"
+ "strings"
+
+ "github.com/gin-contrib/multitemplate"
+ "github.com/gin-gonic/gin"
+ swaggerFiles "github.com/swaggo/files"
+ ginSwagger "github.com/swaggo/gin-swagger"
)
// Init 初始化
@@ -45,6 +48,25 @@ func Init() *gin.Engine {
})
}
+ // 关键点【解决页面刷新404的问题】
+ // 404 NotFound
+ r.NoRoute(func(c *gin.Context) {
+ accept := c.Request.Header.Get("Accept")
+ flag := strings.Contains(accept, "text/html")
+ if flag {
+ content, err := ioutil.ReadFile("view/admin/index.html")
+ if (err) != nil {
+ c.Writer.WriteHeader(404)
+ c.Writer.WriteString("Not Found")
+ return
+ }
+ c.Writer.WriteHeader(200)
+ c.Writer.Header().Add("Accept", "text/html")
+ c.Writer.Write((content))
+ c.Writer.Flush()
+ }
+ })
+
// 加载多个APP的路由配置
html.Routers(r)
admin.Routers(r)
diff --git a/utils/ipUtils.go b/utils/ipUtils.go
index b21f677..12e3a49 100644
--- a/utils/ipUtils.go
+++ b/utils/ipUtils.go
@@ -1,92 +1,92 @@
package utils
-import (
- "bytes"
- "encoding/json"
- "golang.org/x/text/encoding/simplifiedchinese"
- "golang.org/x/text/transform"
- "io/ioutil"
- "net"
- "net/http"
- "time"
-)
+// import (
+// "bytes"
+// "encoding/json"
+// "golang.org/x/text/encoding/simplifiedchinese"
+// "golang.org/x/text/transform"
+// "io/ioutil"
+// "net"
+// "net/http"
+// "time"
+// )
-func GetRealAddressByIPText(ip string) string {
- toByteIp := net.ParseIP(ip)
- if isLocalIp(toByteIp) {
- return "服务器登录"
- }
- if isLANIp(toByteIp) {
- return "局域网"
- }
- return getLocation(ip)
-}
+// func GetRealAddressByIPText(ip string) string {
+// toByteIp := net.ParseIP(ip)
+// if isLocalIp(toByteIp) {
+// return "服务器登录"
+// }
+// if isLANIp(toByteIp) {
+// return "局域网"
+// }
+// return getLocation(ip)
+// }
-func isLocalIp(IP net.IP) bool {
- if IP.IsLoopback() || IP.IsLinkLocalMulticast() || IP.IsLinkLocalUnicast() {
- return true
- }
- return false
-}
+// func isLocalIp(IP net.IP) bool {
+// if IP.IsLoopback() || IP.IsLinkLocalMulticast() || IP.IsLinkLocalUnicast() {
+// return true
+// }
+// return false
+// }
-func isLANIp(IP net.IP) bool {
- if ip4 := IP.To4(); ip4 != nil {
- switch true {
- case ip4[0] == 10:
- return true
- case ip4[0] == 172 && ip4[1] >= 16 && ip4[1] <= 31:
- return true
- case ip4[0] == 192 && ip4[1] == 168:
- return true
- default:
- return false
- }
- }
- return false
-}
-func getLocation(ip string) string {
- url := "https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + ip
- client := &http.Client{Timeout: 5 * time.Second}
- resp, err := client.Get(url)
- if err != nil {
- return "未知地址"
- }
- defer resp.Body.Close()
- result, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return "未知地址"
- }
- reader := transform.NewReader(bytes.NewReader(result), simplifiedchinese.GBK.NewDecoder())
- d, err := ioutil.ReadAll(reader)
- if err != nil {
- return "未知地址"
- }
- m := make(map[string]string)
- err = json.Unmarshal(d, &m)
- addr := m["addr"]
- if addr != "" {
- return addr
- } else {
- return "未知地址"
- }
-}
-func GetLocalIP() (ip string, err error) {
- addrs, err := net.InterfaceAddrs()
- if err != nil {
- return
- }
- for _, addr := range addrs {
- ipAddr, ok := addr.(*net.IPNet)
- if !ok {
- continue
- }
- if ipAddr.IP.IsLoopback() {
- continue
- }
- if !ipAddr.IP.IsGlobalUnicast() {
- continue
- }
- return ipAddr.IP.String(), nil
- }
- return
-}
+// func isLANIp(IP net.IP) bool {
+// if ip4 := IP.To4(); ip4 != nil {
+// switch true {
+// case ip4[0] == 10:
+// return true
+// case ip4[0] == 172 && ip4[1] >= 16 && ip4[1] <= 31:
+// return true
+// case ip4[0] == 192 && ip4[1] == 168:
+// return true
+// default:
+// return false
+// }
+// }
+// return false
+// }
+// func getLocation(ip string) string {
+// url := "https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + ip
+// client := &http.Client{Timeout: 5 * time.Second}
+// resp, err := client.Get(url)
+// if err != nil {
+// return "未知地址"
+// }
+// defer resp.Body.Close()
+// result, err := ioutil.ReadAll(resp.Body)
+// if err != nil {
+// return "未知地址"
+// }
+// reader := transform.NewReader(bytes.NewReader(result), simplifiedchinese.GBK.NewDecoder())
+// d, err := ioutil.ReadAll(reader)
+// if err != nil {
+// return "未知地址"
+// }
+// m := make(map[string]string)
+// err = json.Unmarshal(d, &m)
+// addr := m["addr"]
+// if addr != "" {
+// return addr
+// } else {
+// return "未知地址"
+// }
+// }
+// func GetLocalIP() (ip string, err error) {
+// addrs, err := net.InterfaceAddrs()
+// if err != nil {
+// return
+// }
+// for _, addr := range addrs {
+// ipAddr, ok := addr.(*net.IPNet)
+// if !ok {
+// continue
+// }
+// if ipAddr.IP.IsLoopback() {
+// continue
+// }
+// if !ipAddr.IP.IsGlobalUnicast() {
+// continue
+// }
+// return ipAddr.IP.String(), nil
+// }
+// return
+// }
--
Gitee
From 8f4eb6cb583be7226d862415c8ff4d9c5108b4f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B9=90=E8=A7=82=E5=BC=80=E5=8F=91=E8=80=85?=
<908085643@qq.com>
Date: Sun, 18 Aug 2024 10:34:15 +0800
Subject: [PATCH 8/9] =?UTF-8?q?1=E3=80=81=E6=9B=B4=E6=96=B0=E6=9C=80?=
=?UTF-8?q?=E6=96=B0ruoi-vue=203.8.8=20=E7=9A=84=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=EF=BC=8C=E5=90=8C=E6=AD=A5=E3=80=82=202=E3=80=81=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E7=94=A8=E6=88=B7=E4=B8=AD=E7=9A=84bug.=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E5=AF=86=E7=A0=81=E5=92=8C=E4=BF=AE=E6=94=B9=E6=98=B5?=
=?UTF-8?q?=E7=A7=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/admin/api/system/user.go | 14 +-
app/admin/model/system/sysUser.go | 28 +-
sql/ry-go.sql | 1409 ++++++++++++++---------------
3 files changed, 732 insertions(+), 719 deletions(-)
diff --git a/app/admin/api/system/user.go b/app/admin/api/system/user.go
index 1f1e4d4..8c211b6 100644
--- a/app/admin/api/system/user.go
+++ b/app/admin/api/system/user.go
@@ -165,9 +165,7 @@ func CaptchaImageHandler(context *gin.Context) {
// UpdatePwdHandler 修改密码
func UpdatePwdHandler(context *gin.Context) {
userId, _ := context.Get("userId")
- var user = system.FindUserById(userId)
- var newPassword1, _ = context.GetPostForm("newPassword")
- println(newPassword1)
+ var Password = system.FindUserPassWordById(userId)
// 没有这个,下面的为空很奇怪
context.DefaultPostForm("newPassword", "")
from := context.Request.Form
@@ -185,9 +183,9 @@ func UpdatePwdHandler(context *gin.Context) {
}
// 验证旧密码
- if utils.PasswordVerify(OldPassword, user.Password) {
+ if utils.PasswordVerify(OldPassword, Password) {
// 验证新密码
- if utils.PasswordVerify(NewPassword, user.Password) {
+ if utils.PasswordVerify(NewPassword, Password) {
context.JSON(http.StatusOK, R.ReturnFailMsg("新密码不能与旧密码相同"))
return
}
@@ -198,11 +196,7 @@ func UpdatePwdHandler(context *gin.Context) {
return
}
// 更新 密码
- err2 := mysql.MysqlDb().Model(&user).Update("password", passString)
- if err2.Error != nil {
- context.JSON(http.StatusOK, R.ReturnFailMsg("修改密码失败"))
- return
- }
+ system.UploadUserPassWord(userId, passString)
context.JSON(http.StatusOK, R.ReturnSuccess("修改密码成功"))
} else {
context.JSON(http.StatusOK, R.ReturnFailMsg("旧密码错误"))
diff --git a/app/admin/model/system/sysUser.go b/app/admin/model/system/sysUser.go
index 5e37794..00b334d 100644
--- a/app/admin/model/system/sysUser.go
+++ b/app/admin/model/system/sysUser.go
@@ -172,6 +172,32 @@ func FindUserById(id any) SysUser {
return user
}
+// 查找用户密码
+func FindUserPassWordById(id any) string {
+ userId := utils.GetInterfaceToInt(id)
+ if userId < 1 {
+ panic(R.ReturnFailMsg("获取用户信息失败"))
+ }
+ var user SysUser
+ var db = mysql.MysqlDb().Model(&user).
+ Select("`sys_user`.*")
+ db.Where("`sys_user`.del_flag = 0")
+ err := db.Where("user_id = ?", userId).First(&user).Error
+ if err != nil {
+ panic(R.ReturnFailMsg(err.Error()))
+ }
+ return user.Password
+}
+
+// 更新用户密码
+func UploadUserPassWord(id any, password string) {
+ userId := utils.GetInterfaceToInt(id)
+ err := mysql.MysqlDb().Exec("update sys_user set password = ? where user_id = ?", password, userId).Error
+ if err != nil {
+ panic(R.ReturnFailMsg(err.Error()))
+ }
+}
+
/*校验用户是否有数据权限*/
func CheckUserDataScope(userId int, useridP int) {
if !IsAdminById(userId) {
@@ -416,7 +442,7 @@ func ImportUserData(users []SysUserParm, updateSupport string) (string, string)
func SaveUser(user SysUserParm) string {
var result = ""
var u = SysUser{
- NickName: user.UserName,
+ NickName: user.NickName,
DeptId: user.DeptId,
UserName: user.UserName,
UserType: "00",
diff --git a/sql/ry-go.sql b/sql/ry-go.sql
index ef2ee7f..a8647d2 100644
--- a/sql/ry-go.sql
+++ b/sql/ry-go.sql
@@ -1,708 +1,701 @@
-/*
- Navicat Premium Data Transfer
-
- Source Server : localhost_root
- Source Server Type : MySQL
- Source Server Version : 80012
- Source Host : localhost:3306
- Source Schema : ry-go
-
- Target Server Type : MySQL
- Target Server Version : 80012
- File Encoding : 65001
-
- Date: 08/05/2023 15:57:45
-*/
-
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------
--- Table structure for gen_table
--- ----------------------------
-DROP TABLE IF EXISTS `gen_table`;
-CREATE TABLE `gen_table` (
- `table_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
- `table_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表名称',
- `table_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '表描述',
- `sub_table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关联子表的表名',
- `sub_table_fk_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '子表关联的外键名',
- `class_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '实体类名称',
- `tpl_category` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'crud' COMMENT '使用的模板(crud单表操作 tree树表操作)',
- `package_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成包路径',
- `module_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成模块名',
- `business_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成业务名',
- `function_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能名',
- `function_author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生成功能作者',
- `gen_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '生成代码方式(0zip压缩包 1自定义路径)',
- `gen_path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '/' COMMENT '生成路径(不填默认项目路径)',
- `options` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '其它生成选项',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`table_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of gen_table
--- ----------------------------
-
--- ----------------------------
--- Table structure for gen_table_column
--- ----------------------------
-DROP TABLE IF EXISTS `gen_table_column`;
-CREATE TABLE `gen_table_column` (
- `column_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',
- `table_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '归属表编号',
- `column_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列名称',
- `column_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列描述',
- `column_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '列类型',
- `java_type` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA类型',
- `java_field` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'JAVA字段名',
- `is_pk` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否主键(1是)',
- `is_increment` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否自增(1是)',
- `is_required` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否必填(1是)',
- `is_insert` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否为插入字段(1是)',
- `is_edit` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否编辑字段(1是)',
- `is_list` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否列表字段(1是)',
- `is_query` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '是否查询字段(1是)',
- `query_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'EQ' COMMENT '查询方式(等于、不等于、大于、小于、范围)',
- `html_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
- `dict_type` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型',
- `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`column_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '代码生成业务表字段' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of gen_table_column
--- ----------------------------
-
--- ----------------------------
--- Table structure for sys_config
--- ----------------------------
-DROP TABLE IF EXISTS `sys_config`;
-CREATE TABLE `sys_config` (
- `config_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数主键',
- `config_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数名称',
- `config_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数键名',
- `config_value` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '参数键值',
- `config_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`config_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_config
--- ----------------------------
-INSERT INTO `sys_config` VALUES (1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', '2023-05-08 15:56:39', '', NULL, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow');
-INSERT INTO `sys_config` VALUES (2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', '2023-05-08 15:56:39', '', NULL, '初始化密码 123456');
-INSERT INTO `sys_config` VALUES (3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', '2023-05-08 15:56:39', '', NULL, '深色主题theme-dark,浅色主题theme-light');
-INSERT INTO `sys_config` VALUES (4, '账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', '2023-05-08 15:56:39', '', NULL, '是否开启验证码功能(true开启,false关闭)');
-INSERT INTO `sys_config` VALUES (5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', '2023-05-08 15:56:39', '', NULL, '是否开启注册用户功能(true开启,false关闭)');
-
--- ----------------------------
--- Table structure for sys_dept
--- ----------------------------
-DROP TABLE IF EXISTS `sys_dept`;
-CREATE TABLE `sys_dept` (
- `dept_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门id',
- `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父部门id',
- `ancestors` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '祖级列表',
- `dept_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '部门名称',
- `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序',
- `leader` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '负责人',
- `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系电话',
- `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '部门状态(0正常 1停用)',
- `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`dept_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_dept
--- ----------------------------
-INSERT INTO `sys_dept` VALUES (100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-INSERT INTO `sys_dept` VALUES (109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', '2023-05-08 15:56:34', '', NULL);
-
--- ----------------------------
--- Table structure for sys_dict_data
--- ----------------------------
-DROP TABLE IF EXISTS `sys_dict_data`;
-CREATE TABLE `sys_dict_data` (
- `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
- `dict_sort` int(4) NULL DEFAULT 0 COMMENT '字典排序',
- `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典标签',
- `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典键值',
- `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型',
- `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)',
- `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '表格回显样式',
- `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`dict_code`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_dict_data
--- ----------------------------
-INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '性别男');
-INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '性别女');
-INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '性别未知');
-INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '显示菜单');
-INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '隐藏菜单');
-INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '正常状态');
-INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '停用状态');
-INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '正常状态');
-INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '停用状态');
-INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '默认分组');
-INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '系统分组');
-INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '系统默认是');
-INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '系统默认否');
-INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '通知');
-INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '公告');
-INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '正常状态');
-INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '关闭状态');
-INSERT INTO `sys_dict_data` VALUES (18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '其他操作');
-INSERT INTO `sys_dict_data` VALUES (19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '新增操作');
-INSERT INTO `sys_dict_data` VALUES (20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '修改操作');
-INSERT INTO `sys_dict_data` VALUES (21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '删除操作');
-INSERT INTO `sys_dict_data` VALUES (22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '授权操作');
-INSERT INTO `sys_dict_data` VALUES (23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '导出操作');
-INSERT INTO `sys_dict_data` VALUES (24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '导入操作');
-INSERT INTO `sys_dict_data` VALUES (25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '强退操作');
-INSERT INTO `sys_dict_data` VALUES (26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '生成操作');
-INSERT INTO `sys_dict_data` VALUES (27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '清空操作');
-INSERT INTO `sys_dict_data` VALUES (28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '正常状态');
-INSERT INTO `sys_dict_data` VALUES (29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2023-05-08 15:56:39', '', NULL, '停用状态');
-
--- ----------------------------
--- Table structure for sys_dict_type
--- ----------------------------
-DROP TABLE IF EXISTS `sys_dict_type`;
-CREATE TABLE `sys_dict_type` (
- `dict_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
- `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典名称',
- `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '字典类型',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`dict_id`) USING BTREE,
- UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_dict_type
--- ----------------------------
-INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '用户性别列表');
-INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '菜单状态列表');
-INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '系统开关列表');
-INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '任务状态列表');
-INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '任务分组列表');
-INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '系统是否列表');
-INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '通知类型列表');
-INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '通知状态列表');
-INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '操作类型列表');
-INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2023-05-08 15:56:38', '', NULL, '登录状态列表');
-
--- ----------------------------
--- Table structure for sys_job
--- ----------------------------
-DROP TABLE IF EXISTS `sys_job`;
-CREATE TABLE `sys_job` (
- `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
- `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '任务名称',
- `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名',
- `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '调用目标字符串',
- `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT 'cron执行表达式',
- `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '3' COMMENT '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
- `concurrent` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '是否并发执行(0允许 1禁止)',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1暂停)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注信息',
- PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_job
--- ----------------------------
-INSERT INTO `sys_job` VALUES (1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', '2023-05-08 15:56:40', '', NULL, '');
-INSERT INTO `sys_job` VALUES (2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', '2023-05-08 15:56:40', '', NULL, '');
-INSERT INTO `sys_job` VALUES (3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', '2023-05-08 15:56:40', '', NULL, '');
-
--- ----------------------------
--- Table structure for sys_job_log
--- ----------------------------
-DROP TABLE IF EXISTS `sys_job_log`;
-CREATE TABLE `sys_job_log` (
- `job_log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志ID',
- `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务名称',
- `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务组名',
- `invoke_target` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '调用目标字符串',
- `job_message` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '日志信息',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)',
- `exception_info` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '异常信息',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`job_log_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '定时任务调度日志表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_job_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for sys_logininfor
--- ----------------------------
-DROP TABLE IF EXISTS `sys_logininfor`;
-CREATE TABLE `sys_logininfor` (
- `info_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '访问ID',
- `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '用户账号',
- `ipaddr` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '登录IP地址',
- `login_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '登录地点',
- `browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '浏览器类型',
- `os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作系统',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '登录状态(0成功 1失败)',
- `msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '提示消息',
- `login_time` datetime NULL DEFAULT NULL COMMENT '访问时间',
- PRIMARY KEY (`info_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_logininfor
--- ----------------------------
-
--- ----------------------------
--- Table structure for sys_menu
--- ----------------------------
-DROP TABLE IF EXISTS `sys_menu`;
-CREATE TABLE `sys_menu` (
- `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
- `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单名称',
- `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
- `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序',
- `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '路由地址',
- `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '组件路径',
- `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '路由参数',
- `is_frame` int(1) NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)',
- `is_cache` int(1) NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)',
- `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)',
- `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
- `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限标识',
- `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '#' COMMENT '菜单图标',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注',
- PRIMARY KEY (`menu_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 2000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_menu
--- ----------------------------
-INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2023-05-08 15:56:35', '', NULL, '系统管理目录');
-INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2023-05-08 15:56:35', '', NULL, '系统监控目录');
-INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 3, 'tool', NULL, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2023-05-08 15:56:35', '', NULL, '系统工具目录');
-INSERT INTO `sys_menu` VALUES (4, '若依官网', 0, 4, 'http://ruoyi.vip', NULL, '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', '2023-05-08 15:56:35', '', NULL, '若依官网地址');
-INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', '2023-05-08 15:56:35', '', NULL, '用户管理菜单');
-INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2023-05-08 15:56:35', '', NULL, '角色管理菜单');
-INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2023-05-08 15:56:35', '', NULL, '菜单管理菜单');
-INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', '2023-05-08 15:56:35', '', NULL, '部门管理菜单');
-INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', '2023-05-08 15:56:35', '', NULL, '岗位管理菜单');
-INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2023-05-08 15:56:35', '', NULL, '字典管理菜单');
-INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2023-05-08 15:56:35', '', NULL, '参数设置菜单');
-INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2023-05-08 15:56:35', '', NULL, '通知公告菜单');
-INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', '2023-05-08 15:56:35', '', NULL, '日志管理菜单');
-INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2023-05-08 15:56:35', '', NULL, '在线用户菜单');
-INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2023-05-08 15:56:35', '', NULL, '定时任务菜单');
-INSERT INTO `sys_menu` VALUES (111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', '2023-05-08 15:56:35', '', NULL, '数据监控菜单');
-INSERT INTO `sys_menu` VALUES (112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2023-05-08 15:56:35', '', NULL, '服务监控菜单');
-INSERT INTO `sys_menu` VALUES (113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2023-05-08 15:56:35', '', NULL, '缓存监控菜单');
-INSERT INTO `sys_menu` VALUES (114, '缓存列表', 2, 6, 'cacheList', 'monitor/cache/list', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', '2023-05-08 15:56:35', '', NULL, '缓存列表菜单');
-INSERT INTO `sys_menu` VALUES (115, '表单构建', 3, 1, 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2023-05-08 15:56:35', '', NULL, '表单构建菜单');
-INSERT INTO `sys_menu` VALUES (116, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2023-05-08 15:56:35', '', NULL, '代码生成菜单');
-INSERT INTO `sys_menu` VALUES (117, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2023-05-08 15:56:35', '', NULL, '系统接口菜单');
-INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2023-05-08 15:56:35', '', NULL, '操作日志菜单');
-INSERT INTO `sys_menu` VALUES (501, '登录日志', 108, 2, 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2023-05-08 15:56:35', '', NULL, '登录日志菜单');
-INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1003, '用户删除', 100, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1004, '用户导出', 100, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1005, '用户导入', 100, 6, '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1006, '重置密码', 100, 7, '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1007, '角色查询', 101, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1008, '角色新增', 101, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1009, '角色修改', 101, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1010, '角色删除', 101, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1011, '角色导出', 101, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1012, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1013, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1014, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1015, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1016, '部门查询', 103, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1017, '部门新增', 103, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1018, '部门修改', 103, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1019, '部门删除', 103, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1020, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1021, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1022, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1023, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1024, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1025, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1026, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1027, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1028, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1029, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1030, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1031, '参数新增', 106, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1032, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1034, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1035, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1036, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1037, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1038, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1039, '操作查询', 500, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1040, '操作删除', 500, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1041, '日志导出', 500, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1042, '登录查询', 501, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1043, '登录删除', 501, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1044, '日志导出', 501, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1045, '账户解锁', 501, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 6, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1055, '生成查询', 116, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1056, '生成修改', 116, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1057, '生成删除', 116, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1058, '导入代码', 116, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1059, '预览代码', 116, 5, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-INSERT INTO `sys_menu` VALUES (1060, '生成代码', 116, 6, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2023-05-08 15:56:35', '', NULL, '');
-
--- ----------------------------
--- Table structure for sys_notice
--- ----------------------------
-DROP TABLE IF EXISTS `sys_notice`;
-CREATE TABLE `sys_notice` (
- `notice_id` int(4) NOT NULL AUTO_INCREMENT COMMENT '公告ID',
- `notice_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公告标题',
- `notice_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '公告类型(1通知 2公告)',
- `notice_content` longblob NULL COMMENT '公告内容',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`notice_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '通知公告表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_notice
--- ----------------------------
-INSERT INTO `sys_notice` VALUES (1, '温馨提醒:2018-07-01 若依新版本发布啦', '2', 0xE696B0E78988E69CACE58685E5AEB9, '0', 'admin', '2023-05-08 15:56:41', '', NULL, '管理员');
-INSERT INTO `sys_notice` VALUES (2, '维护通知:2018-07-01 若依系统凌晨维护', '1', 0xE7BBB4E68AA4E58685E5AEB9, '0', 'admin', '2023-05-08 15:56:41', '', NULL, '管理员');
-
--- ----------------------------
--- Table structure for sys_oper_log
--- ----------------------------
-DROP TABLE IF EXISTS `sys_oper_log`;
-CREATE TABLE `sys_oper_log` (
- `oper_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键',
- `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '模块标题',
- `business_type` int(2) NULL DEFAULT 0 COMMENT '业务类型(0其它 1新增 2修改 3删除)',
- `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '方法名称',
- `request_method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求方式',
- `operator_type` int(1) NULL DEFAULT 0 COMMENT '操作类别(0其它 1后台用户 2手机端用户)',
- `oper_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作人员',
- `dept_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '部门名称',
- `oper_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求URL',
- `oper_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '主机地址',
- `oper_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '操作地点',
- `oper_param` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '请求参数',
- `json_result` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '返回参数',
- `status` int(1) NULL DEFAULT 0 COMMENT '操作状态(0正常 1异常)',
- `error_msg` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '错误消息',
- `oper_time` datetime NULL DEFAULT NULL COMMENT '操作时间',
- PRIMARY KEY (`oper_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '操作日志记录' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_oper_log
--- ----------------------------
-
--- ----------------------------
--- Table structure for sys_post
--- ----------------------------
-DROP TABLE IF EXISTS `sys_post`;
-CREATE TABLE `sys_post` (
- `post_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '岗位ID',
- `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '岗位编码',
- `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '岗位名称',
- `post_sort` int(4) NOT NULL COMMENT '显示顺序',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '状态(0正常 1停用)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`post_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '岗位信息表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_post
--- ----------------------------
-INSERT INTO `sys_post` VALUES (1, 'ceo', '董事长', 1, '0', 'admin', '2023-05-08 15:56:34', '', NULL, '');
-INSERT INTO `sys_post` VALUES (2, 'se', '项目经理', 2, '0', 'admin', '2023-05-08 15:56:34', '', NULL, '');
-INSERT INTO `sys_post` VALUES (3, 'hr', '人力资源', 3, '0', 'admin', '2023-05-08 15:56:34', '', NULL, '');
-INSERT INTO `sys_post` VALUES (4, 'user', '普通员工', 4, '0', 'admin', '2023-05-08 15:56:34', '', NULL, '');
-
--- ----------------------------
--- Table structure for sys_role
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role`;
-CREATE TABLE `sys_role` (
- `role_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
- `role_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
- `role_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色权限字符串',
- `role_sort` int(4) NOT NULL COMMENT '显示顺序',
- `data_scope` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
- `menu_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '菜单树选择项是否关联显示',
- `dept_check_strictly` tinyint(1) NULL DEFAULT 1 COMMENT '部门树选择项是否关联显示',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色状态(0正常 1停用)',
- `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`role_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_role
--- ----------------------------
-INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 1, '0', '0', 'admin', '2023-05-08 15:56:35', '', NULL, '超级管理员');
-INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, '2', 1, 1, '0', '0', 'admin', '2023-05-08 15:56:35', '', NULL, '普通角色');
-
--- ----------------------------
--- Table structure for sys_role_dept
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role_dept`;
-CREATE TABLE `sys_role_dept` (
- `role_id` bigint(20) NOT NULL COMMENT '角色ID',
- `dept_id` bigint(20) NOT NULL COMMENT '部门ID',
- PRIMARY KEY (`role_id`, `dept_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色和部门关联表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_role_dept
--- ----------------------------
-INSERT INTO `sys_role_dept` VALUES (2, 100);
-INSERT INTO `sys_role_dept` VALUES (2, 101);
-INSERT INTO `sys_role_dept` VALUES (2, 105);
-
--- ----------------------------
--- Table structure for sys_role_menu
--- ----------------------------
-DROP TABLE IF EXISTS `sys_role_menu`;
-CREATE TABLE `sys_role_menu` (
- `role_id` bigint(20) NOT NULL COMMENT '角色ID',
- `menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
- PRIMARY KEY (`role_id`, `menu_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_role_menu
--- ----------------------------
-INSERT INTO `sys_role_menu` VALUES (2, 1);
-INSERT INTO `sys_role_menu` VALUES (2, 2);
-INSERT INTO `sys_role_menu` VALUES (2, 3);
-INSERT INTO `sys_role_menu` VALUES (2, 4);
-INSERT INTO `sys_role_menu` VALUES (2, 100);
-INSERT INTO `sys_role_menu` VALUES (2, 101);
-INSERT INTO `sys_role_menu` VALUES (2, 102);
-INSERT INTO `sys_role_menu` VALUES (2, 103);
-INSERT INTO `sys_role_menu` VALUES (2, 104);
-INSERT INTO `sys_role_menu` VALUES (2, 105);
-INSERT INTO `sys_role_menu` VALUES (2, 106);
-INSERT INTO `sys_role_menu` VALUES (2, 107);
-INSERT INTO `sys_role_menu` VALUES (2, 108);
-INSERT INTO `sys_role_menu` VALUES (2, 109);
-INSERT INTO `sys_role_menu` VALUES (2, 110);
-INSERT INTO `sys_role_menu` VALUES (2, 111);
-INSERT INTO `sys_role_menu` VALUES (2, 112);
-INSERT INTO `sys_role_menu` VALUES (2, 113);
-INSERT INTO `sys_role_menu` VALUES (2, 114);
-INSERT INTO `sys_role_menu` VALUES (2, 115);
-INSERT INTO `sys_role_menu` VALUES (2, 116);
-INSERT INTO `sys_role_menu` VALUES (2, 117);
-INSERT INTO `sys_role_menu` VALUES (2, 500);
-INSERT INTO `sys_role_menu` VALUES (2, 501);
-INSERT INTO `sys_role_menu` VALUES (2, 1000);
-INSERT INTO `sys_role_menu` VALUES (2, 1001);
-INSERT INTO `sys_role_menu` VALUES (2, 1002);
-INSERT INTO `sys_role_menu` VALUES (2, 1003);
-INSERT INTO `sys_role_menu` VALUES (2, 1004);
-INSERT INTO `sys_role_menu` VALUES (2, 1005);
-INSERT INTO `sys_role_menu` VALUES (2, 1006);
-INSERT INTO `sys_role_menu` VALUES (2, 1007);
-INSERT INTO `sys_role_menu` VALUES (2, 1008);
-INSERT INTO `sys_role_menu` VALUES (2, 1009);
-INSERT INTO `sys_role_menu` VALUES (2, 1010);
-INSERT INTO `sys_role_menu` VALUES (2, 1011);
-INSERT INTO `sys_role_menu` VALUES (2, 1012);
-INSERT INTO `sys_role_menu` VALUES (2, 1013);
-INSERT INTO `sys_role_menu` VALUES (2, 1014);
-INSERT INTO `sys_role_menu` VALUES (2, 1015);
-INSERT INTO `sys_role_menu` VALUES (2, 1016);
-INSERT INTO `sys_role_menu` VALUES (2, 1017);
-INSERT INTO `sys_role_menu` VALUES (2, 1018);
-INSERT INTO `sys_role_menu` VALUES (2, 1019);
-INSERT INTO `sys_role_menu` VALUES (2, 1020);
-INSERT INTO `sys_role_menu` VALUES (2, 1021);
-INSERT INTO `sys_role_menu` VALUES (2, 1022);
-INSERT INTO `sys_role_menu` VALUES (2, 1023);
-INSERT INTO `sys_role_menu` VALUES (2, 1024);
-INSERT INTO `sys_role_menu` VALUES (2, 1025);
-INSERT INTO `sys_role_menu` VALUES (2, 1026);
-INSERT INTO `sys_role_menu` VALUES (2, 1027);
-INSERT INTO `sys_role_menu` VALUES (2, 1028);
-INSERT INTO `sys_role_menu` VALUES (2, 1029);
-INSERT INTO `sys_role_menu` VALUES (2, 1030);
-INSERT INTO `sys_role_menu` VALUES (2, 1031);
-INSERT INTO `sys_role_menu` VALUES (2, 1032);
-INSERT INTO `sys_role_menu` VALUES (2, 1033);
-INSERT INTO `sys_role_menu` VALUES (2, 1034);
-INSERT INTO `sys_role_menu` VALUES (2, 1035);
-INSERT INTO `sys_role_menu` VALUES (2, 1036);
-INSERT INTO `sys_role_menu` VALUES (2, 1037);
-INSERT INTO `sys_role_menu` VALUES (2, 1038);
-INSERT INTO `sys_role_menu` VALUES (2, 1039);
-INSERT INTO `sys_role_menu` VALUES (2, 1040);
-INSERT INTO `sys_role_menu` VALUES (2, 1041);
-INSERT INTO `sys_role_menu` VALUES (2, 1042);
-INSERT INTO `sys_role_menu` VALUES (2, 1043);
-INSERT INTO `sys_role_menu` VALUES (2, 1044);
-INSERT INTO `sys_role_menu` VALUES (2, 1045);
-INSERT INTO `sys_role_menu` VALUES (2, 1046);
-INSERT INTO `sys_role_menu` VALUES (2, 1047);
-INSERT INTO `sys_role_menu` VALUES (2, 1048);
-INSERT INTO `sys_role_menu` VALUES (2, 1049);
-INSERT INTO `sys_role_menu` VALUES (2, 1050);
-INSERT INTO `sys_role_menu` VALUES (2, 1051);
-INSERT INTO `sys_role_menu` VALUES (2, 1052);
-INSERT INTO `sys_role_menu` VALUES (2, 1053);
-INSERT INTO `sys_role_menu` VALUES (2, 1054);
-INSERT INTO `sys_role_menu` VALUES (2, 1055);
-INSERT INTO `sys_role_menu` VALUES (2, 1056);
-INSERT INTO `sys_role_menu` VALUES (2, 1057);
-INSERT INTO `sys_role_menu` VALUES (2, 1058);
-INSERT INTO `sys_role_menu` VALUES (2, 1059);
-INSERT INTO `sys_role_menu` VALUES (2, 1060);
-
--- ----------------------------
--- Table structure for sys_user
--- ----------------------------
-DROP TABLE IF EXISTS `sys_user`;
-CREATE TABLE `sys_user` (
- `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
- `dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID',
- `user_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户账号',
- `nick_name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户昵称',
- `user_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '00' COMMENT '用户类型(00系统用户)',
- `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '用户邮箱',
- `phonenumber` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '手机号码',
- `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',
- `avatar` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '头像地址',
- `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '密码',
- `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)',
- `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '最后登录IP',
- `login_date` datetime NULL DEFAULT NULL COMMENT '最后登录时间',
- `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '创建者',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`user_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_user
--- ----------------------------
-INSERT INTO `sys_user` VALUES (1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2023-05-08 15:56:34', 'admin', '2023-05-08 15:56:34', '', NULL, '管理员');
-INSERT INTO `sys_user` VALUES (2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', '2023-05-08 15:56:34', 'admin', '2023-05-08 15:56:34', '', NULL, '测试员');
-
--- ----------------------------
--- Table structure for sys_user_post
--- ----------------------------
-DROP TABLE IF EXISTS `sys_user_post`;
-CREATE TABLE `sys_user_post` (
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `post_id` bigint(20) NOT NULL COMMENT '岗位ID',
- PRIMARY KEY (`user_id`, `post_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户与岗位关联表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_user_post
--- ----------------------------
-INSERT INTO `sys_user_post` VALUES (1, 1);
-INSERT INTO `sys_user_post` VALUES (2, 2);
-
--- ----------------------------
--- Table structure for sys_user_role
--- ----------------------------
-DROP TABLE IF EXISTS `sys_user_role`;
-CREATE TABLE `sys_user_role` (
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `role_id` bigint(20) NOT NULL COMMENT '角色ID',
- PRIMARY KEY (`user_id`, `role_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户和角色关联表' ROW_FORMAT = Dynamic;
-
--- ----------------------------
--- Records of sys_user_role
--- ----------------------------
-INSERT INTO `sys_user_role` VALUES (1, 1);
-INSERT INTO `sys_user_role` VALUES (2, 2);
-
-SET FOREIGN_KEY_CHECKS = 1;
+-- ----------------------------
+-- 1、部门表
+-- ----------------------------
+drop table if exists sys_dept;
+create table sys_dept (
+ dept_id bigint(20) not null auto_increment comment '部门id',
+ parent_id bigint(20) default 0 comment '父部门id',
+ ancestors varchar(50) default '' comment '祖级列表',
+ dept_name varchar(30) default '' comment '部门名称',
+ order_num int(4) default 0 comment '显示顺序',
+ leader varchar(20) default null comment '负责人',
+ phone varchar(11) default null comment '联系电话',
+ email varchar(50) default null comment '邮箱',
+ status char(1) default '0' comment '部门状态(0正常 1停用)',
+ del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ primary key (dept_id)
+) engine=innodb auto_increment=200 comment = '部门表';
+
+-- ----------------------------
+-- 初始化-部门表数据
+-- ----------------------------
+insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+insert into sys_dept values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
+
+
+-- ----------------------------
+-- 2、用户信息表
+-- ----------------------------
+drop table if exists sys_user;
+create table sys_user (
+ user_id bigint(20) not null auto_increment comment '用户ID',
+ dept_id bigint(20) default null comment '部门ID',
+ user_name varchar(30) not null comment '用户账号',
+ nick_name varchar(30) not null comment '用户昵称',
+ user_type varchar(2) default '00' comment '用户类型(00系统用户)',
+ email varchar(50) default '' comment '用户邮箱',
+ phonenumber varchar(11) default '' comment '手机号码',
+ sex char(1) default '0' comment '用户性别(0男 1女 2未知)',
+ avatar varchar(100) default '' comment '头像地址',
+ password varchar(100) default '' comment '密码',
+ status char(1) default '0' comment '帐号状态(0正常 1停用)',
+ del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
+ login_ip varchar(128) default '' comment '最后登录IP',
+ login_date datetime comment '最后登录时间',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (user_id)
+) engine=innodb auto_increment=100 comment = '用户信息表';
+
+-- ----------------------------
+-- 初始化-用户信息表数据
+-- ----------------------------
+insert into sys_user values(1, 103, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '管理员');
+insert into sys_user values(2, 105, 'ry', '若依', '00', 'ry@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate(), 'admin', sysdate(), '', null, '测试员');
+
+
+-- ----------------------------
+-- 3、岗位信息表
+-- ----------------------------
+drop table if exists sys_post;
+create table sys_post
+(
+ post_id bigint(20) not null auto_increment comment '岗位ID',
+ post_code varchar(64) not null comment '岗位编码',
+ post_name varchar(50) not null comment '岗位名称',
+ post_sort int(4) not null comment '显示顺序',
+ status char(1) not null comment '状态(0正常 1停用)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (post_id)
+) engine=innodb comment = '岗位信息表';
+
+-- ----------------------------
+-- 初始化-岗位信息表数据
+-- ----------------------------
+insert into sys_post values(1, 'ceo', '董事长', 1, '0', 'admin', sysdate(), '', null, '');
+insert into sys_post values(2, 'se', '项目经理', 2, '0', 'admin', sysdate(), '', null, '');
+insert into sys_post values(3, 'hr', '人力资源', 3, '0', 'admin', sysdate(), '', null, '');
+insert into sys_post values(4, 'user', '普通员工', 4, '0', 'admin', sysdate(), '', null, '');
+
+
+-- ----------------------------
+-- 4、角色信息表
+-- ----------------------------
+drop table if exists sys_role;
+create table sys_role (
+ role_id bigint(20) not null auto_increment comment '角色ID',
+ role_name varchar(30) not null comment '角色名称',
+ role_key varchar(100) not null comment '角色权限字符串',
+ role_sort int(4) not null comment '显示顺序',
+ data_scope char(1) default '1' comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',
+ menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示',
+ dept_check_strictly tinyint(1) default 1 comment '部门树选择项是否关联显示',
+ status char(1) not null comment '角色状态(0正常 1停用)',
+ del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (role_id)
+) engine=innodb auto_increment=100 comment = '角色信息表';
+
+-- ----------------------------
+-- 初始化-角色信息表数据
+-- ----------------------------
+insert into sys_role values('1', '超级管理员', 'admin', 1, 1, 1, 1, '0', '0', 'admin', sysdate(), '', null, '超级管理员');
+insert into sys_role values('2', '普通角色', 'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate(), '', null, '普通角色');
+
+
+-- ----------------------------
+-- 5、菜单权限表
+-- ----------------------------
+drop table if exists sys_menu;
+create table sys_menu (
+ menu_id bigint(20) not null auto_increment comment '菜单ID',
+ menu_name varchar(50) not null comment '菜单名称',
+ parent_id bigint(20) default 0 comment '父菜单ID',
+ order_num int(4) default 0 comment '显示顺序',
+ path varchar(200) default '' comment '路由地址',
+ component varchar(255) default null comment '组件路径',
+ query varchar(255) default null comment '路由参数',
+ route_name varchar(50) default '' comment '路由名称',
+ is_frame int(1) default 1 comment '是否为外链(0是 1否)',
+ is_cache int(1) default 0 comment '是否缓存(0缓存 1不缓存)',
+ menu_type char(1) default '' comment '菜单类型(M目录 C菜单 F按钮)',
+ visible char(1) default 0 comment '菜单状态(0显示 1隐藏)',
+ status char(1) default 0 comment '菜单状态(0正常 1停用)',
+ perms varchar(100) default null comment '权限标识',
+ icon varchar(100) default '#' comment '菜单图标',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default '' comment '备注',
+ primary key (menu_id)
+) engine=innodb auto_increment=2000 comment = '菜单权限表';
+
+-- ----------------------------
+-- 初始化-菜单信息表数据
+-- ----------------------------
+-- 一级菜单
+insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate(), '', null, '系统管理目录');
+insert into sys_menu values('2', '系统监控', '0', '2', 'monitor', null, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', null, '系统监控目录');
+insert into sys_menu values('3', '系统工具', '0', '3', 'tool', null, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', null, '系统工具目录');
+insert into sys_menu values('4', '若依官网', '0', '4', 'http://ruoyi.vip', null, '', '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址');
+-- 二级菜单
+insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate(), '', null, '用户管理菜单');
+insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate(), '', null, '角色管理菜单');
+insert into sys_menu values('102', '菜单管理', '1', '3', 'menu', 'system/menu/index', '', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', sysdate(), '', null, '菜单管理菜单');
+insert into sys_menu values('103', '部门管理', '1', '4', 'dept', 'system/dept/index', '', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', sysdate(), '', null, '部门管理菜单');
+insert into sys_menu values('104', '岗位管理', '1', '5', 'post', 'system/post/index', '', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', sysdate(), '', null, '岗位管理菜单');
+insert into sys_menu values('105', '字典管理', '1', '6', 'dict', 'system/dict/index', '', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', sysdate(), '', null, '字典管理菜单');
+insert into sys_menu values('106', '参数设置', '1', '7', 'config', 'system/config/index', '', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', sysdate(), '', null, '参数设置菜单');
+insert into sys_menu values('107', '通知公告', '1', '8', 'notice', 'system/notice/index', '', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate(), '', null, '通知公告菜单');
+insert into sys_menu values('108', '日志管理', '1', '9', 'log', '', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate(), '', null, '日志管理菜单');
+insert into sys_menu values('109', '在线用户', '2', '1', 'online', 'monitor/online/index', '', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate(), '', null, '在线用户菜单');
+insert into sys_menu values('110', '定时任务', '2', '2', 'job', 'monitor/job/index', '', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', sysdate(), '', null, '定时任务菜单');
+insert into sys_menu values('111', '数据监控', '2', '3', 'druid', 'monitor/druid/index', '', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate(), '', null, '数据监控菜单');
+insert into sys_menu values('112', '服务监控', '2', '4', 'server', 'monitor/server/index', '', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', sysdate(), '', null, '服务监控菜单');
+insert into sys_menu values('113', '缓存监控', '2', '5', 'cache', 'monitor/cache/index', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate(), '', null, '缓存监控菜单');
+insert into sys_menu values('114', '缓存列表', '2', '6', 'cacheList', 'monitor/cache/list', '', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis-list', 'admin', sysdate(), '', null, '缓存列表菜单');
+insert into sys_menu values('115', '表单构建', '3', '1', 'build', 'tool/build/index', '', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate(), '', null, '表单构建菜单');
+insert into sys_menu values('116', '代码生成', '3', '2', 'gen', 'tool/gen/index', '', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate(), '', null, '代码生成菜单');
+insert into sys_menu values('117', '系统接口', '3', '3', 'swagger', 'tool/swagger/index', '', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate(), '', null, '系统接口菜单');
+-- 三级菜单
+insert into sys_menu values('500', '操作日志', '108', '1', 'operlog', 'monitor/operlog/index', '', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', sysdate(), '', null, '操作日志菜单');
+insert into sys_menu values('501', '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', sysdate(), '', null, '登录日志菜单');
+-- 用户管理按钮
+insert into sys_menu values('1000', '用户查询', '100', '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1001', '用户新增', '100', '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1002', '用户修改', '100', '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1003', '用户删除', '100', '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1004', '用户导出', '100', '5', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1005', '用户导入', '100', '6', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1006', '重置密码', '100', '7', '', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', sysdate(), '', null, '');
+-- 角色管理按钮
+insert into sys_menu values('1007', '角色查询', '101', '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1008', '角色新增', '101', '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1009', '角色修改', '101', '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1010', '角色删除', '101', '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1011', '角色导出', '101', '5', '', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', sysdate(), '', null, '');
+-- 菜单管理按钮
+insert into sys_menu values('1012', '菜单查询', '102', '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1013', '菜单新增', '102', '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1014', '菜单修改', '102', '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1015', '菜单删除', '102', '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', sysdate(), '', null, '');
+-- 部门管理按钮
+insert into sys_menu values('1016', '部门查询', '103', '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1017', '部门新增', '103', '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1018', '部门修改', '103', '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1019', '部门删除', '103', '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', sysdate(), '', null, '');
+-- 岗位管理按钮
+insert into sys_menu values('1020', '岗位查询', '104', '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1021', '岗位新增', '104', '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1022', '岗位修改', '104', '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1023', '岗位删除', '104', '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1024', '岗位导出', '104', '5', '', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', sysdate(), '', null, '');
+-- 字典管理按钮
+insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', sysdate(), '', null, '');
+-- 参数设置按钮
+insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', sysdate(), '', null, '');
+-- 通知公告按钮
+insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', sysdate(), '', null, '');
+-- 操作日志按钮
+insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1041', '日志导出', '500', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate(), '', null, '');
+-- 登录日志按钮
+insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1045', '账户解锁', '501', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:unlock', '#', 'admin', sysdate(), '', null, '');
+-- 在线用户按钮
+insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, '');
+-- 定时任务按钮
+insert into sys_menu values('1049', '任务查询', '110', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1050', '任务新增', '110', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1051', '任务修改', '110', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1052', '任务删除', '110', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1053', '状态修改', '110', '5', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1054', '任务导出', '110', '6', '#', '', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', sysdate(), '', null, '');
+-- 代码生成按钮
+insert into sys_menu values('1055', '生成查询', '116', '1', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1056', '生成修改', '116', '2', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1057', '生成删除', '116', '3', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1058', '导入代码', '116', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1059', '预览代码', '116', '5', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values('1060', '生成代码', '116', '6', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, '');
+
+
+-- ----------------------------
+-- 6、用户和角色关联表 用户N-1角色
+-- ----------------------------
+drop table if exists sys_user_role;
+create table sys_user_role (
+ user_id bigint(20) not null comment '用户ID',
+ role_id bigint(20) not null comment '角色ID',
+ primary key(user_id, role_id)
+) engine=innodb comment = '用户和角色关联表';
+
+-- ----------------------------
+-- 初始化-用户和角色关联表数据
+-- ----------------------------
+insert into sys_user_role values ('1', '1');
+insert into sys_user_role values ('2', '2');
+
+
+-- ----------------------------
+-- 7、角色和菜单关联表 角色1-N菜单
+-- ----------------------------
+drop table if exists sys_role_menu;
+create table sys_role_menu (
+ role_id bigint(20) not null comment '角色ID',
+ menu_id bigint(20) not null comment '菜单ID',
+ primary key(role_id, menu_id)
+) engine=innodb comment = '角色和菜单关联表';
+
+-- ----------------------------
+-- 初始化-角色和菜单关联表数据
+-- ----------------------------
+insert into sys_role_menu values ('2', '1');
+insert into sys_role_menu values ('2', '2');
+insert into sys_role_menu values ('2', '3');
+insert into sys_role_menu values ('2', '4');
+insert into sys_role_menu values ('2', '100');
+insert into sys_role_menu values ('2', '101');
+insert into sys_role_menu values ('2', '102');
+insert into sys_role_menu values ('2', '103');
+insert into sys_role_menu values ('2', '104');
+insert into sys_role_menu values ('2', '105');
+insert into sys_role_menu values ('2', '106');
+insert into sys_role_menu values ('2', '107');
+insert into sys_role_menu values ('2', '108');
+insert into sys_role_menu values ('2', '109');
+insert into sys_role_menu values ('2', '110');
+insert into sys_role_menu values ('2', '111');
+insert into sys_role_menu values ('2', '112');
+insert into sys_role_menu values ('2', '113');
+insert into sys_role_menu values ('2', '114');
+insert into sys_role_menu values ('2', '115');
+insert into sys_role_menu values ('2', '116');
+insert into sys_role_menu values ('2', '117');
+insert into sys_role_menu values ('2', '500');
+insert into sys_role_menu values ('2', '501');
+insert into sys_role_menu values ('2', '1000');
+insert into sys_role_menu values ('2', '1001');
+insert into sys_role_menu values ('2', '1002');
+insert into sys_role_menu values ('2', '1003');
+insert into sys_role_menu values ('2', '1004');
+insert into sys_role_menu values ('2', '1005');
+insert into sys_role_menu values ('2', '1006');
+insert into sys_role_menu values ('2', '1007');
+insert into sys_role_menu values ('2', '1008');
+insert into sys_role_menu values ('2', '1009');
+insert into sys_role_menu values ('2', '1010');
+insert into sys_role_menu values ('2', '1011');
+insert into sys_role_menu values ('2', '1012');
+insert into sys_role_menu values ('2', '1013');
+insert into sys_role_menu values ('2', '1014');
+insert into sys_role_menu values ('2', '1015');
+insert into sys_role_menu values ('2', '1016');
+insert into sys_role_menu values ('2', '1017');
+insert into sys_role_menu values ('2', '1018');
+insert into sys_role_menu values ('2', '1019');
+insert into sys_role_menu values ('2', '1020');
+insert into sys_role_menu values ('2', '1021');
+insert into sys_role_menu values ('2', '1022');
+insert into sys_role_menu values ('2', '1023');
+insert into sys_role_menu values ('2', '1024');
+insert into sys_role_menu values ('2', '1025');
+insert into sys_role_menu values ('2', '1026');
+insert into sys_role_menu values ('2', '1027');
+insert into sys_role_menu values ('2', '1028');
+insert into sys_role_menu values ('2', '1029');
+insert into sys_role_menu values ('2', '1030');
+insert into sys_role_menu values ('2', '1031');
+insert into sys_role_menu values ('2', '1032');
+insert into sys_role_menu values ('2', '1033');
+insert into sys_role_menu values ('2', '1034');
+insert into sys_role_menu values ('2', '1035');
+insert into sys_role_menu values ('2', '1036');
+insert into sys_role_menu values ('2', '1037');
+insert into sys_role_menu values ('2', '1038');
+insert into sys_role_menu values ('2', '1039');
+insert into sys_role_menu values ('2', '1040');
+insert into sys_role_menu values ('2', '1041');
+insert into sys_role_menu values ('2', '1042');
+insert into sys_role_menu values ('2', '1043');
+insert into sys_role_menu values ('2', '1044');
+insert into sys_role_menu values ('2', '1045');
+insert into sys_role_menu values ('2', '1046');
+insert into sys_role_menu values ('2', '1047');
+insert into sys_role_menu values ('2', '1048');
+insert into sys_role_menu values ('2', '1049');
+insert into sys_role_menu values ('2', '1050');
+insert into sys_role_menu values ('2', '1051');
+insert into sys_role_menu values ('2', '1052');
+insert into sys_role_menu values ('2', '1053');
+insert into sys_role_menu values ('2', '1054');
+insert into sys_role_menu values ('2', '1055');
+insert into sys_role_menu values ('2', '1056');
+insert into sys_role_menu values ('2', '1057');
+insert into sys_role_menu values ('2', '1058');
+insert into sys_role_menu values ('2', '1059');
+insert into sys_role_menu values ('2', '1060');
+
+-- ----------------------------
+-- 8、角色和部门关联表 角色1-N部门
+-- ----------------------------
+drop table if exists sys_role_dept;
+create table sys_role_dept (
+ role_id bigint(20) not null comment '角色ID',
+ dept_id bigint(20) not null comment '部门ID',
+ primary key(role_id, dept_id)
+) engine=innodb comment = '角色和部门关联表';
+
+-- ----------------------------
+-- 初始化-角色和部门关联表数据
+-- ----------------------------
+insert into sys_role_dept values ('2', '100');
+insert into sys_role_dept values ('2', '101');
+insert into sys_role_dept values ('2', '105');
+
+
+-- ----------------------------
+-- 9、用户与岗位关联表 用户1-N岗位
+-- ----------------------------
+drop table if exists sys_user_post;
+create table sys_user_post
+(
+ user_id bigint(20) not null comment '用户ID',
+ post_id bigint(20) not null comment '岗位ID',
+ primary key (user_id, post_id)
+) engine=innodb comment = '用户与岗位关联表';
+
+-- ----------------------------
+-- 初始化-用户与岗位关联表数据
+-- ----------------------------
+insert into sys_user_post values ('1', '1');
+insert into sys_user_post values ('2', '2');
+
+
+-- ----------------------------
+-- 10、操作日志记录
+-- ----------------------------
+drop table if exists sys_oper_log;
+create table sys_oper_log (
+ oper_id bigint(20) not null auto_increment comment '日志主键',
+ title varchar(50) default '' comment '模块标题',
+ business_type int(2) default 0 comment '业务类型(0其它 1新增 2修改 3删除)',
+ method varchar(200) default '' comment '方法名称',
+ request_method varchar(10) default '' comment '请求方式',
+ operator_type int(1) default 0 comment '操作类别(0其它 1后台用户 2手机端用户)',
+ oper_name varchar(50) default '' comment '操作人员',
+ dept_name varchar(50) default '' comment '部门名称',
+ oper_url varchar(255) default '' comment '请求URL',
+ oper_ip varchar(128) default '' comment '主机地址',
+ oper_location varchar(255) default '' comment '操作地点',
+ oper_param varchar(2000) default '' comment '请求参数',
+ json_result varchar(2000) default '' comment '返回参数',
+ status int(1) default 0 comment '操作状态(0正常 1异常)',
+ error_msg varchar(2000) default '' comment '错误消息',
+ oper_time datetime comment '操作时间',
+ cost_time bigint(20) default 0 comment '消耗时间',
+ primary key (oper_id),
+ key idx_sys_oper_log_bt (business_type),
+ key idx_sys_oper_log_s (status),
+ key idx_sys_oper_log_ot (oper_time)
+) engine=innodb auto_increment=100 comment = '操作日志记录';
+
+
+-- ----------------------------
+-- 11、字典类型表
+-- ----------------------------
+drop table if exists sys_dict_type;
+create table sys_dict_type
+(
+ dict_id bigint(20) not null auto_increment comment '字典主键',
+ dict_name varchar(100) default '' comment '字典名称',
+ dict_type varchar(100) default '' comment '字典类型',
+ status char(1) default '0' comment '状态(0正常 1停用)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (dict_id),
+ unique (dict_type)
+) engine=innodb auto_increment=100 comment = '字典类型表';
+
+insert into sys_dict_type values(1, '用户性别', 'sys_user_sex', '0', 'admin', sysdate(), '', null, '用户性别列表');
+insert into sys_dict_type values(2, '菜单状态', 'sys_show_hide', '0', 'admin', sysdate(), '', null, '菜单状态列表');
+insert into sys_dict_type values(3, '系统开关', 'sys_normal_disable', '0', 'admin', sysdate(), '', null, '系统开关列表');
+insert into sys_dict_type values(4, '任务状态', 'sys_job_status', '0', 'admin', sysdate(), '', null, '任务状态列表');
+insert into sys_dict_type values(5, '任务分组', 'sys_job_group', '0', 'admin', sysdate(), '', null, '任务分组列表');
+insert into sys_dict_type values(6, '系统是否', 'sys_yes_no', '0', 'admin', sysdate(), '', null, '系统是否列表');
+insert into sys_dict_type values(7, '通知类型', 'sys_notice_type', '0', 'admin', sysdate(), '', null, '通知类型列表');
+insert into sys_dict_type values(8, '通知状态', 'sys_notice_status', '0', 'admin', sysdate(), '', null, '通知状态列表');
+insert into sys_dict_type values(9, '操作类型', 'sys_oper_type', '0', 'admin', sysdate(), '', null, '操作类型列表');
+insert into sys_dict_type values(10, '系统状态', 'sys_common_status', '0', 'admin', sysdate(), '', null, '登录状态列表');
+
+
+-- ----------------------------
+-- 12、字典数据表
+-- ----------------------------
+drop table if exists sys_dict_data;
+create table sys_dict_data
+(
+ dict_code bigint(20) not null auto_increment comment '字典编码',
+ dict_sort int(4) default 0 comment '字典排序',
+ dict_label varchar(100) default '' comment '字典标签',
+ dict_value varchar(100) default '' comment '字典键值',
+ dict_type varchar(100) default '' comment '字典类型',
+ css_class varchar(100) default null comment '样式属性(其他样式扩展)',
+ list_class varchar(100) default null comment '表格回显样式',
+ is_default char(1) default 'N' comment '是否默认(Y是 N否)',
+ status char(1) default '0' comment '状态(0正常 1停用)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (dict_code)
+) engine=innodb auto_increment=100 comment = '字典数据表';
+
+insert into sys_dict_data values(1, 1, '男', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate(), '', null, '性别男');
+insert into sys_dict_data values(2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别女');
+insert into sys_dict_data values(3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate(), '', null, '性别未知');
+insert into sys_dict_data values(4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单');
+insert into sys_dict_data values(5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '隐藏菜单');
+insert into sys_dict_data values(6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
+insert into sys_dict_data values(7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态');
+insert into sys_dict_data values(8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
+insert into sys_dict_data values(9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态');
+insert into sys_dict_data values(10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', sysdate(), '', null, '默认分组');
+insert into sys_dict_data values(11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', sysdate(), '', null, '系统分组');
+insert into sys_dict_data values(12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是');
+insert into sys_dict_data values(13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '系统默认否');
+insert into sys_dict_data values(14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知');
+insert into sys_dict_data values(15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate(), '', null, '公告');
+insert into sys_dict_data values(16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
+insert into sys_dict_data values(17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '关闭状态');
+insert into sys_dict_data values(18, 99, '其他', '0', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '其他操作');
+insert into sys_dict_data values(19, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '新增操作');
+insert into sys_dict_data values(20, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate(), '', null, '修改操作');
+insert into sys_dict_data values(21, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '删除操作');
+insert into sys_dict_data values(22, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作');
+insert into sys_dict_data values(23, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作');
+insert into sys_dict_data values(24, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作');
+insert into sys_dict_data values(25, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '强退操作');
+insert into sys_dict_data values(26, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作');
+insert into sys_dict_data values(27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '清空操作');
+insert into sys_dict_data values(28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态');
+insert into sys_dict_data values(29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', sysdate(), '', null, '停用状态');
+
+
+-- ----------------------------
+-- 13、参数配置表
+-- ----------------------------
+drop table if exists sys_config;
+create table sys_config (
+ config_id int(5) not null auto_increment comment '参数主键',
+ config_name varchar(100) default '' comment '参数名称',
+ config_key varchar(100) default '' comment '参数键名',
+ config_value varchar(500) default '' comment '参数键值',
+ config_type char(1) default 'N' comment '系统内置(Y是 N否)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (config_id)
+) engine=innodb auto_increment=100 comment = '参数配置表';
+
+insert into sys_config values(1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow' );
+insert into sys_config values(2, '用户管理-账号初始密码', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '初始化密码 123456' );
+insert into sys_config values(3, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' );
+insert into sys_config values(4, '账号自助-验证码开关', 'sys.account.captchaEnabled', 'true', 'Y', 'admin', sysdate(), '', null, '是否开启验证码功能(true开启,false关闭)');
+insert into sys_config values(5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser', 'false', 'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)');
+insert into sys_config values(6, '用户登录-黑名单列表', 'sys.login.blackIPList', '', 'Y', 'admin', sysdate(), '', null, '设置登录IP黑名单限制,多个匹配项以;分隔,支持匹配(*通配、网段)');
+
+
+-- ----------------------------
+-- 14、系统访问记录
+-- ----------------------------
+drop table if exists sys_logininfor;
+create table sys_logininfor (
+ info_id bigint(20) not null auto_increment comment '访问ID',
+ user_name varchar(50) default '' comment '用户账号',
+ ipaddr varchar(128) default '' comment '登录IP地址',
+ login_location varchar(255) default '' comment '登录地点',
+ browser varchar(50) default '' comment '浏览器类型',
+ os varchar(50) default '' comment '操作系统',
+ status char(1) default '0' comment '登录状态(0成功 1失败)',
+ msg varchar(255) default '' comment '提示消息',
+ login_time datetime comment '访问时间',
+ primary key (info_id),
+ key idx_sys_logininfor_s (status),
+ key idx_sys_logininfor_lt (login_time)
+) engine=innodb auto_increment=100 comment = '系统访问记录';
+
+
+-- ----------------------------
+-- 15、定时任务调度表
+-- ----------------------------
+drop table if exists sys_job;
+create table sys_job (
+ job_id bigint(20) not null auto_increment comment '任务ID',
+ job_name varchar(64) default '' comment '任务名称',
+ job_group varchar(64) default 'DEFAULT' comment '任务组名',
+ invoke_target varchar(500) not null comment '调用目标字符串',
+ cron_expression varchar(255) default '' comment 'cron执行表达式',
+ misfire_policy varchar(20) default '3' comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',
+ concurrent char(1) default '1' comment '是否并发执行(0允许 1禁止)',
+ status char(1) default '0' comment '状态(0正常 1暂停)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default '' comment '备注信息',
+ primary key (job_id, job_name, job_group)
+) engine=innodb auto_increment=100 comment = '定时任务调度表';
+
+insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams', '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
+insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')', '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
+insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)', '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
+
+
+-- ----------------------------
+-- 16、定时任务调度日志表
+-- ----------------------------
+drop table if exists sys_job_log;
+create table sys_job_log (
+ job_log_id bigint(20) not null auto_increment comment '任务日志ID',
+ job_name varchar(64) not null comment '任务名称',
+ job_group varchar(64) not null comment '任务组名',
+ invoke_target varchar(500) not null comment '调用目标字符串',
+ job_message varchar(500) comment '日志信息',
+ status char(1) default '0' comment '执行状态(0正常 1失败)',
+ exception_info varchar(2000) default '' comment '异常信息',
+ create_time datetime comment '创建时间',
+ primary key (job_log_id)
+) engine=innodb comment = '定时任务调度日志表';
+
+
+-- ----------------------------
+-- 17、通知公告表
+-- ----------------------------
+drop table if exists sys_notice;
+create table sys_notice (
+ notice_id int(4) not null auto_increment comment '公告ID',
+ notice_title varchar(50) not null comment '公告标题',
+ notice_type char(1) not null comment '公告类型(1通知 2公告)',
+ notice_content longblob default null comment '公告内容',
+ status char(1) default '0' comment '公告状态(0正常 1关闭)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(255) default null comment '备注',
+ primary key (notice_id)
+) engine=innodb auto_increment=10 comment = '通知公告表';
+
+-- ----------------------------
+-- 初始化-公告信息表数据
+-- ----------------------------
+insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员');
+insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容', '0', 'admin', sysdate(), '', null, '管理员');
+
+
+-- ----------------------------
+-- 18、代码生成业务表
+-- ----------------------------
+drop table if exists gen_table;
+create table gen_table (
+ table_id bigint(20) not null auto_increment comment '编号',
+ table_name varchar(200) default '' comment '表名称',
+ table_comment varchar(500) default '' comment '表描述',
+ sub_table_name varchar(64) default null comment '关联子表的表名',
+ sub_table_fk_name varchar(64) default null comment '子表关联的外键名',
+ class_name varchar(100) default '' comment '实体类名称',
+ tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)',
+ tpl_web_type varchar(30) default '' comment '前端模板类型(element-ui模版 element-plus模版)',
+ package_name varchar(100) comment '生成包路径',
+ module_name varchar(30) comment '生成模块名',
+ business_name varchar(30) comment '生成业务名',
+ function_name varchar(50) comment '生成功能名',
+ function_author varchar(50) comment '生成功能作者',
+ gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)',
+ gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)',
+ options varchar(1000) comment '其它生成选项',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(500) default null comment '备注',
+ primary key (table_id)
+) engine=innodb auto_increment=1 comment = '代码生成业务表';
+
+
+-- ----------------------------
+-- 19、代码生成业务表字段
+-- ----------------------------
+drop table if exists gen_table_column;
+create table gen_table_column (
+ column_id bigint(20) not null auto_increment comment '编号',
+ table_id bigint(20) comment '归属表编号',
+ column_name varchar(200) comment '列名称',
+ column_comment varchar(500) comment '列描述',
+ column_type varchar(100) comment '列类型',
+ java_type varchar(500) comment 'JAVA类型',
+ java_field varchar(200) comment 'JAVA字段名',
+ is_pk char(1) comment '是否主键(1是)',
+ is_increment char(1) comment '是否自增(1是)',
+ is_required char(1) comment '是否必填(1是)',
+ is_insert char(1) comment '是否为插入字段(1是)',
+ is_edit char(1) comment '是否编辑字段(1是)',
+ is_list char(1) comment '是否列表字段(1是)',
+ is_query char(1) comment '是否查询字段(1是)',
+ query_type varchar(200) default 'EQ' comment '查询方式(等于、不等于、大于、小于、范围)',
+ html_type varchar(200) comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',
+ dict_type varchar(200) default '' comment '字典类型',
+ sort int comment '排序',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ primary key (column_id)
+) engine=innodb auto_increment=1 comment = '代码生成业务表字段';
\ No newline at end of file
--
Gitee
From e8ba4769079a2029a9c7ffeadde7971578ee9be5 Mon Sep 17 00:00:00 2001
From: Heir-o
Date: Sun, 18 Aug 2024 10:13:44 +0000
Subject: [PATCH 9/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E6=BA=90=E5=88=87=E6=8D=A2=20=E5=A2=9E=E5=8A=A0=E4=B8=BB?=
=?UTF-8?q?=E4=BB=8E=E6=9C=8D=E5=8A=A1=E5=99=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Heir-o
---
config/app_config.go | 24 ++++++-----
config/config.yaml.example | 20 +++++++---
pkg/mysql/mysql.go | 82 ++++++++++++++++++++++++++++++++------
3 files changed, 96 insertions(+), 30 deletions(-)
diff --git a/config/app_config.go b/config/app_config.go
index d560665..adefb1d 100644
--- a/config/app_config.go
+++ b/config/app_config.go
@@ -31,19 +31,21 @@ type server struct {
LogLevel string `yaml:"logLevel"`
EnabledSwagger bool `yaml:"enabledSwagger"`
}
-
type database struct {
- Type string `yaml:"type"`
- Host string `yaml:"host"`
- Port string `yaml:"port"`
- UserName string `yaml:"username"`
- Password string `yaml:"password"`
- DbName string `yaml:"dbname"`
- MaxIdleConn int `yaml:"max_idle_conn"`
- MaxOpenConn int `yaml:"max_open_conn"`
- ConnMaxLifetime int `yaml:"conn_max_lifetime"`
+ Primary datasource `yaml:"primary"`
+ Secondary datasource `yaml:"secondary"`
+ MaxIdleConn int `yaml:"max_idle_conn"`
+ MaxOpenConn int `yaml:"max_open_conn"`
+ ConnMaxLifetime int `yaml:"conn_max_lifetime"`
+}
+type datasource struct {
+ Type string `yaml:"type"`
+ Host string `yaml:"host"`
+ Port string `yaml:"port"`
+ UserName string `yaml:"username"`
+ Password string `yaml:"password"`
+ DbName string `yaml:"dbname"`
}
-
type redis struct {
Host string `yaml:"host"`
Port string `yaml:"port"`
diff --git a/config/config.yaml.example b/config/config.yaml.example
index 3050b2c..3888c71 100644
--- a/config/config.yaml.example
+++ b/config/config.yaml.example
@@ -7,12 +7,20 @@ server:
swaggerPath: "/swagger/index.html"
database:
- type: mysql
- host: localhost
- port: 3306
- username: root
- password: xxxxx
- dbname: ry-go
+ primary:
+ type: mysql
+ host: localhost
+ port: 3306
+ username: root
+ password: xx
+ dbname: ry-go
+ secondary:
+ type: mysql
+ host: localhost
+ port: 3306
+ username: root
+ password: xx
+ dbname: ry-go
max_idle_conn: 10
max_open_conn: 30
conn_max_lifetime: 300
diff --git a/pkg/mysql/mysql.go b/pkg/mysql/mysql.go
index 99ea9df..b0f0f71 100644
--- a/pkg/mysql/mysql.go
+++ b/pkg/mysql/mysql.go
@@ -1,7 +1,6 @@
package mysql
import (
- "fmt"
"log"
"os"
"ruoyi-go/config"
@@ -13,47 +12,104 @@ import (
"gorm.io/gorm/logger"
)
-var once = sync.Once{}
+var once sync.Once
+// 定义数据库连接结构体
type connect struct {
- client *gorm.DB
+ primaryDB *gorm.DB
+ //secondaryDB *gorm.DB
+ currentDB *gorm.DB
}
-// 设置一个常量
+// 设置一个全局变量保存数据库连接
var _connect *connect
-// 在上一篇文章写过https://blog.csdn.net/bei_FengBoby/article/details/124736603? 查询,直接拿过用
+// 连接 MySQL 数据库
func connectMysql() {
- //启用打印日志
+ // 启用打印日志
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
logger.Config{
SlowThreshold: time.Second, // 慢 SQL 阈值
- LogLevel: logger.Info, // Log level: Silent、Error、Warn、Info
+ LogLevel: logger.Info, // 日志等级: Silent、Error、Warn、Info
Colorful: false, // 禁用彩色打印
},
)
- //换成自己的
- dsn := config.Database.UserName + ":" + config.Database.Password + "@tcp(" + config.Database.Host + ":" + config.Database.Port + ")/" + config.Database.DbName + "?charset=utf8mb4&parseTime=True&loc=Local"
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
+
+ // 从配置文件获取主库的 DSN
+ primary := config.Database.Primary.UserName + ":" + config.Database.Primary.Password + "@tcp(" + config.Database.Primary.Host + ":" + config.Database.Primary.Port + ")/" + config.Database.Primary.DbName + "?charset=utf8mb4&parseTime=True&loc=Local"
+
+ /* // 从配置文件获取从库的 DSN
+ secondary := config.Database.Secondary.UserName + ":" + config.Database.Secondary.Password + "@tcp(" + config.Database.Secondary.Host + ":" + config.Database.Secondary.Port + ")/" + config.Database.Secondary.DbName + "?charset=utf8mb4&parseTime=True&loc=Local"
+ */
+ // 打开主库连接
+ primaryDB, err := gorm.Open(mysql.Open(primary), &gorm.Config{
Logger: newLogger,
})
if err != nil {
- fmt.Println("数据库连接失败")
+ log.Printf("主数据库连接失败:", err)
return
}
+ /*// 打开从库连接
+ secondaryDB, err := gorm.Open(mysql.Open(secondary), &gorm.Config{
+ Logger: newLogger,
+ })
+ if err != nil {
+ log.Println("从数据库连接失败:", err)
+ return
+ }*/
+
+ // 初始化数据库连接结构体,默认使用主数据库
_connect = &connect{
- client: db,
+ primaryDB: primaryDB,
+ //secondaryDB: secondaryDB,
+ currentDB: primaryDB, // 默认连接到主数据库
}
+}
+// SetPrimary 切换到主库
+func SetPrimary() {
+ if _connect != nil {
+ _connect.currentDB = _connect.primaryDB
+ }
}
+/*// SetSecondary 切换到从库
+func SetSecondary() {
+ if _connect != nil {
+ _connect.currentDB = _connect.secondaryDB
+ }
+}*/
+
+/*
+ 默认使用主库
+db := mysql.MysqlDb()
+ 进行数据库操作
+var result interface{}
+db.First(&result)
+fmt.Println(result)
+
+ 切换到从库
+mysql.SetSecondary()
+db = mysql.MysqlDb()
+ 进行数据库操作
+db.First(&result)
+fmt.Println(result)
+
+ 切换回主库
+mysql.SetPrimary()
+db = mysql.MysqlDb()
+ 进行数据库操作
+db.First(&result)
+fmt.Println(result)*/
+
+// MysqlDb 获取当前使用的数据库连接
func MysqlDb() *gorm.DB {
if _connect == nil {
once.Do(func() {
connectMysql()
})
}
- return _connect.client
+ return _connect.currentDB
}
--
Gitee